X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/bf29550db840c97cafffbe1e836750bef6c7942d..a90be5e69a478e2b49ae676b649a78589f85a50e:/app/models/way.rb diff --git a/app/models/way.rb b/app/models/way.rb index c9e695b32..3b3f92432 100644 --- a/app/models/way.rb +++ b/app/models/way.rb @@ -27,7 +27,7 @@ class Way < ActiveRecord::Base doc = p.parse doc.find('//osm/way').each do |pt| - return Way.from_xml_node(pt, create) + return Way.from_xml_node(pt, create) end rescue return nil @@ -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 @@ -230,6 +233,10 @@ class Way < ActiveRecord::Base # update and commit the bounding box, now that way nodes # have been updated and we're in a transaction. changeset.update_bbox!(bbox) unless nodes.empty? + + # tell the changeset we updated one element only + changeset.add_changes! 1 + changeset.save! end end @@ -288,22 +295,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