X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/2803612d9db2f89c4eaa57bbf4606b56967caa62..e7c2d2a211e0f5604acc53f4a941067d94d675a9:/app/models/segment.rb?ds=sidebyside diff --git a/app/models/segment.rb b/app/models/segment.rb index 35d6889d2..785701c3d 100644 --- a/app/models/segment.rb +++ b/app/models/segment.rb @@ -4,11 +4,12 @@ class Segment < ActiveRecord::Base validates_numericality_of :node_a validates_numericality_of :node_b - # FIXME validate a nd b exist and are visible has_many :old_segments, :foreign_key => :id belongs_to :user + has_one :from_node, :class_name => 'Node', :foreign_key => 'id' + has_one :to_node, :class_name => 'Node', :foreign_key => 'id' def self.from_xml(xml, create=false) p = XML::Parser.new @@ -26,7 +27,7 @@ class Segment < ActiveRecord::Base segment.id = pt['id'].to_i end - segment.visible = pt['visible'] and pt['visible'] == 'true' + segment.visible = true if create segment.timestamp = Time.now @@ -94,7 +95,7 @@ class Segment < ActiveRecord::Base key = parts[0].strip unless parts[0].nil? val = parts[1].strip unless parts[1].nil? if key != '' && val != '' - el2 = Segment.new('tag') + el2 = XML::Node.new('tag') el2['k'] = key.to_s el2['v'] = val.to_s el << el2 @@ -102,5 +103,8 @@ class Segment < ActiveRecord::Base end end + def preconditions_ok? + from_node and from_node.visible and to_node and to_node.visible + end end