]> git.openstreetmap.org Git - rails.git/blobdiff - app/models/trace.rb
various gpx bits
[rails.git] / app / models / trace.rb
index aefe78b6000e5a2ab3e198cef3887e9ad0342945..0d9e8861d1d8bbb4c94222a28a835270705626bd 100644 (file)
@@ -1,12 +1,13 @@
 class Trace < ActiveRecord::Base
   set_table_name 'gpx_files'
 
-  validates_presence_of :user_id, :name, :public, :description, :tmpname, :timestamp
-  validates_numericality_of :latitude, :longitude
+  validates_presence_of :user_id, :name, :public, :description, :timestamp
+#  validates_numericality_of :latitude, :longitude
   validates_inclusion_of :inserted, :in => [ true, false]
   
   belongs_to :user
   has_many :tags, :class_name => 'Tracetag', :foreign_key => 'gpx_id', :dependent => :destroy
+  has_many :points, :class_name => 'Tracepoint', :foreign_key => 'gpx_id', :dependent => :destroy
 
   def tagstring=(s)
     self.tags = s.split().collect {|tag|
@@ -47,11 +48,24 @@ class Trace < ActiveRecord::Base
   
   # FIXME change to permanent filestore area
   def large_picture_name
-    "/tmp/#{id}.gif"
+    "/home/osm/icons/#{id}.gif"
   end
 
   # FIXME change to permanent filestore area
   def icon_picture_name
-    "/tmp/#{id}_icon.gif"
+    "/home/osm/icons/#{id}_icon.gif"
+  end
+
+  def to_xml_node
+    el1 = XML::Node.new 'gpx_file'
+    el1['id'] = self.id.to_s
+    el1['name'] = self.name.to_s
+    el1['lat'] = self.latitude.to_s
+    el1['lon'] = self.longitude.to_s
+    el1['user'] = self.user.display_name
+    el1['public'] = self.public.to_s
+    el1['pending'] = (!self.inserted).to_s
+    el1['timestamp'] = self.timestamp.xmlschema
+    return el1
   end
 end