From: Tom Hughes Date: Fri, 27 Jun 2008 23:09:05 +0000 (+0000) Subject: Merge data browser branch to trunk. X-Git-Tag: live~8438 X-Git-Url: https://git.openstreetmap.org./rails.git/commitdiff_plain/97aefa23d0606edaee71d04cf6c1a2006689b1fa?hp=-c Merge data browser branch to trunk. --- 97aefa23d0606edaee71d04cf6c1a2006689b1fa diff --combined app/models/relation.rb index bdba25f8f,a1dc9f81d..9ee118f6e --- a/app/models/relation.rb +++ b/app/models/relation.rb @@@ -11,7 -11,7 +11,7 @@@ class Relation < ActiveRecord::Bas has_many :relation_tags, :foreign_key => 'id' has_many :containing_relation_members, :class_name => "RelationMember", :as => :member - has_many :containing_relations, :class_name => "Relation", :through => :containing_relation_members, :source => :relation + has_many :containing_relations, :class_name => "Relation", :through => :containing_relation_members, :source => :relation, :extend => ObjectFinder def self.from_xml(xml, create=false) begin @@@ -105,6 -105,29 +105,6 @@@ return el1 end - - # collect relationships. currently done in one big block at the end; - # may need to move this upwards if people want automatic completion of - # relationships, i.e. deliver referenced objects like we do with ways... - # FIXME: rip out the fucking SQL - def self.find_for_nodes_and_ways(node_ids, way_ids) - relations = [] - - if node_ids.length > 0 - relations += Relation.find_by_sql("select e.* from current_relations e,current_relation_members em where " + - "e.visible=1 and " + - "em.id = e.id and em.member_type='node' and em.member_id in (#{node_ids.join(',')})") - end - if way_ids.length > 0 - relations += Relation.find_by_sql("select e.* from current_relations e,current_relation_members em where " + - "e.visible=1 and " + - "em.id = e.id and em.member_type='way' and em.member_id in (#{way_ids.join(',')})") - end - - relations # if you don't do this then it returns nil and not [] - end - - # FIXME is this really needed? def members unless @members @@@ -234,4 -257,8 +234,8 @@@ return false end + # Temporary method to match interface to nodes + def tags_as_hash + return self.tags + end end diff --combined app/models/way.rb index a77f35fe9,b042be59e..64b11cf67 --- a/app/models/way.rb +++ b/app/models/way.rb @@@ -13,7 -13,7 +13,7 @@@ class Way < ActiveRecord::Bas has_many :way_tags, :foreign_key => 'id' has_many :containing_relation_members, :class_name => "RelationMember", :as => :member - has_many :containing_relations, :class_name => "Relation", :through => :containing_relation_members, :source => :relation + has_many :containing_relations, :class_name => "Relation", :through => :containing_relation_members, :source => :relation, :extend => ObjectFinder def self.from_xml(xml, create=false) begin @@@ -257,4 -257,9 +257,9 @@@ self.delete_with_relations_and_history(user) end + + # Temporary method to match interface to nodes + def tags_as_hash + return self.tags + end end