From: Shaun McDonald Date: Thu, 25 Sep 2008 15:06:05 +0000 (+0000) Subject: Doing a resync from mainline 8633:10895. There was one simple to resolve conflict... X-Git-Tag: live~7619^2~305 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/d9e070e06956801aba2378c1b79b4d9f13ae12ee Doing a resync from mainline 8633:10895. There was one simple to resolve conflict on app/models/node.rb. Also moving the migrations for API0.6 to new sequence numbers since there was some new migrations added to mainline, where the migration numbers would conflict if not moved. --- d9e070e06956801aba2378c1b79b4d9f13ae12ee diff --cc app/models/node.rb index c8770922d,cec755f47..677023179 --- a/app/models/node.rb +++ b/app/models/node.rb @@@ -17,8 -17,9 +17,11 @@@ class Node < ActiveRecord::Bas has_many :way_nodes has_many :ways, :through => :way_nodes + has_many :node_tags, :foreign_key => :id + + has_many :old_way_nodes + has_many :ways_via_history, :class_name=> "Way", :through => :old_way_nodes, :source => :way + has_many :containing_relation_members, :class_name => "RelationMember", :as => :member has_many :containing_relations, :class_name => "Relation", :through => :containing_relation_members, :source => :relation, :extend => ObjectFinder diff --cc app/models/way.rb index 34afc6585,958944200..3bc8bcebe --- a/app/models/way.rb +++ b/app/models/way.rb @@@ -249,20 -234,9 +249,11 @@@ class Way < ActiveRecord::Bas end # delete a way and it's 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) - - node_ids = self.nodes.collect {|node| node.id } - node_ids_not_to_delete = [] - way_nodes = WayNode.find(:all, :conditions => "node_id in (#{node_ids.join(',')}) and id != #{self.id}") - - node_ids_not_to_delete = way_nodes.collect {|way_node| way_node.node_id} - - node_ids_to_delete = node_ids - node_ids_not_to_delete - # delete the nodes not used by other ways - node_ids_to_delete.each do |node_id| + self.unshared_node_ids.each do |node_id| n = Node.find(node_id) n.user_id = user.id n.visible = false @@@ -271,8 -245,19 +262,19 @@@ self.user_id = user.id - self.delete_with_relations_and_history(user) + self.delete_with_history(user) + end + + # Find nodes that belong to this way only + def unshared_node_ids + node_ids = self.nodes.collect { |node| node.id } + + unless node_ids.empty? + way_nodes = WayNode.find(:all, :conditions => "node_id in (#{node_ids.join(',')}) and id != #{self.id}") + node_ids = node_ids - way_nodes.collect { |way_node| way_node.node_id } + end + return node_ids end # Temporary method to match interface to nodes diff --cc db/migrate/016_add_timestamp_indexes.rb index c6b3bc7c2,000000000..c6b3bc7c2 mode 100644,000000..100644 --- a/db/migrate/016_add_timestamp_indexes.rb +++ b/db/migrate/016_add_timestamp_indexes.rb diff --cc db/migrate/017_populate_node_tags_and_remove.rb index 29a91c70b,000000000..29a91c70b mode 100644,000000..100644 --- a/db/migrate/017_populate_node_tags_and_remove.rb +++ b/db/migrate/017_populate_node_tags_and_remove.rb diff --cc db/migrate/017_populate_node_tags_and_remove_helper.c index 5a0fbb6cd,000000000..5a0fbb6cd mode 100644,000000..100644 --- a/db/migrate/017_populate_node_tags_and_remove_helper.c +++ b/db/migrate/017_populate_node_tags_and_remove_helper.c diff --cc db/migrate/018_move_to_innodb.rb index c551b0ef8,000000000..c551b0ef8 mode 100644,000000..100644 --- a/db/migrate/018_move_to_innodb.rb +++ b/db/migrate/018_move_to_innodb.rb diff --cc db/migrate/019_key_constraints.rb index 40f98be02,000000000..40f98be02 mode 100644,000000..100644 --- a/db/migrate/019_key_constraints.rb +++ b/db/migrate/019_key_constraints.rb diff --cc db/migrate/020_add_changesets.rb index 40455ec68,000000000..40455ec68 mode 100644,000000..100644 --- a/db/migrate/020_add_changesets.rb +++ b/db/migrate/020_add_changesets.rb diff --cc lib/geo_record.rb index 286ce69e1,f1a923c42..2740eab0c --- a/lib/geo_record.rb +++ b/lib/geo_record.rb @@@ -39,18 -34,9 +39,9 @@@ module GeoRecor # Return WGS84 longitude def lon - return self.longitude.to_f / 10000000 + return self.longitude.to_f / SCALE end - # Potlatch projections - def lon_potlatch(baselong,masterscale) - (self.lon-baselong)*masterscale - end - - def lat_potlatch(basey,masterscale) - -(lat2y(self.lat)-basey)*masterscale - end - private def lat2y(a)