X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/322d293007eb75eedae7bd6138dc5abc3143d972..a90be5e69a478e2b49ae676b649a78589f85a50e:/app/models/way.rb diff --git a/app/models/way.rb b/app/models/way.rb index da7b8d733..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 @@ -233,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 @@ -291,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