- node_ids_not_to_delete = way_nodes.collect {|way_node| way_node.node_id}
-
- nodes_to_delete = node_ids - node_ids_not_to_delete
-
- # update the visibility etc on the current nodes
- update_time = Time.now()
-
- Node.update(node_ids_to_delete, {:user_id => user.id, :timestamp => update_time, :visibility => false})
-
- # create old nodes
-
- old_nodes_to_create = []
- OldNode.find(node_ids_to_delete).each do |old_node|
- old_nodes_to_create << {:id => old_node.id, :timestamp => update_time, :latitude => old_node.latitude, :longitude => old_node.longitude, :visible => false}
+ node_ids_to_delete = self.unique_nodes
+
+ # delete the nodes not used by other ways
+ node_ids_to_delete.each do |node_id|
+ n = Node.find(node_id)
+ n.user_id = user.id
+ n.visible = false
+ n.save_with_history!