return node
end
+ ##
+ # the bounding box around a node
+ def bbox
+ [ longitude, latitude, longitude, latitude ]
+ end
+
def save_with_history!
t = Time.now
Node.transaction do
old_node = OldNode.from_node(self)
old_node.timestamp = t
old_node.save_with_dependencies!
+
+ # save the changeset in case of bounding box updates
+ changeset.save!
end
end
else
self.changeset_id = new_node.changeset_id
self.visible = 0
+
+ # update the changeset with the deleted position
+ changeset.update_bbox!(bbox)
+
save_with_history!
end
else
def update_from(new_node, user)
check_consistency(self, new_node, user)
+ # update changeset with *old* position first
+ changeset.update_bbox!(bbox);
+
# FIXME logic needs to be double checked
self.changeset_id = new_node.changeset_id
self.latitude = new_node.latitude
self.longitude = new_node.longitude
self.tags = new_node.tags
self.visible = true
+
+ # update changeset with *new* position
+ changeset.update_bbox!(bbox);
+
save_with_history!
end
check_create_consistency(self, user)
self.version = 0
self.visible = true
+
+ # update the changeset to include the new location
+ changeset.update_bbox!(bbox)
+
save_with_history!
end