X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/02fbcf5f06917d7dea546b90932da82b8ed29d2a..995c9df1958a9f2333748179fe276bc9886b8a86:/app/models/way.rb diff --git a/app/models/way.rb b/app/models/way.rb index 4143291c1..7c29a44b3 100644 --- a/app/models/way.rb +++ b/app/models/way.rb @@ -101,7 +101,10 @@ class Way < ActiveRecord::Base user_display_name_cache[self.changeset.user_id] = nil end - el1['user'] = user_display_name_cache[self.changeset.user_id] unless user_display_name_cache[self.changeset.user_id].nil? + if not user_display_name_cache[self.changeset.user_id].nil? + el1['user'] = user_display_name_cache[self.changeset.user_id] + el1['uid'] = self.changeset.user_id.to_s + end # make sure nodes are output in sequence_id order ordered_nodes = [] @@ -113,7 +116,7 @@ class Way < ActiveRecord::Base end else # otherwise, manually go to the db to check things - if nd.node.visible? and nd.node.visible? + if nd.node and nd.node.visible? ordered_nodes[nd.sequence_id] = nd.node_id.to_s end end @@ -274,7 +277,7 @@ class Way < ActiveRecord::Base check_consistency(self, new_way, user) if self.visible if RelationMember.find(:first, :joins => "INNER JOIN current_relations ON current_relations.id=current_relation_members.id", - :conditions => [ "visible = 1 AND member_type='way' and member_id=? ", self.id]) + :conditions => [ "visible = ? AND member_type='way' and member_id=? ", true, self.id]) raise OSM::APIPreconditionFailedError else self.changeset_id = new_way.changeset_id @@ -288,22 +291,24 @@ class Way < ActiveRecord::Base end end - # delete a way and it's nodes that aren't part of other ways, with history + # delete a way and its nodes that aren't part of other ways, with history # FIXME: merge the potlatch code to delete the relations - def delete_with_relations_and_nodes_and_history(user) + # and refactor to use delete_with_history! + def delete_with_relations_and_nodes_and_history(changeset_id) # delete the nodes not used by other ways self.unshared_node_ids.each do |node_id| n = Node.find(node_id) - n.user_id = user.id + n.changeset_id = changeset_id n.visible = false n.save_with_history! end - # FIXME needs more information passed in so that the changeset can be updated - self.user_id = user.id - - self.delete_with_history(user) + self.changeset_id = changeset_id + self.tags = [] + self.nds = [] + self.visible = false + self.save_with_history! end # Find nodes that belong to this way only