X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/d07277efba0c0069705bbefa68f2624a9c6c9ff0..182dd045f797c46994c7f9b2e717101752cbb52b:/app/models/trace.rb?ds=sidebyside diff --git a/app/models/trace.rb b/app/models/trace.rb index f74b1d009..2ebf08e85 100644 --- a/app/models/trace.rb +++ b/app/models/trace.rb @@ -1,6 +1,10 @@ class Trace < ActiveRecord::Base set_table_name 'gpx_files' + 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 @@ -10,44 +14,57 @@ class Trace < ActiveRecord::Base tt.tag = tag tt } - end - - def large_picture= (data) - f = File.new(large_picture_name, "wb") - f.syswrite(data) - f.close - end - - def icon_picture= (data) - f = File.new(icon_picture_name, "wb") - f.syswrite(data) - f.close - end - - def large_picture - f = File.new(large_picture_name, "rb") - logger.info "large picture file: '#{f.path}', bytes: #{File.size(f.path)}" - data = f.sysread(File.size(f.path)) - logger.info "have read data, bytes: '#{data.length}'" - f.close - data - end - - def icon_picture - f = File.new(icon_picture_name, "rb") - logger.info "icon picture file: '#{f.path}'" - data = f.sysread(File.size(f.path)) - f.close - data - end - - # FIXME change to permanent filestore area - def large_picture_name - "/tmp/#{id}.gif" - end - - # FIXME change to permanent filestore area - def icon_picture_name - "/tmp/#{id}_icon.gif" - end + end + + def large_picture= (data) + f = File.new(large_picture_name, "wb") + f.syswrite(data) + f.close + end + + def icon_picture= (data) + f = File.new(icon_picture_name, "wb") + f.syswrite(data) + f.close + end + + def large_picture + f = File.new(large_picture_name, "rb") + logger.info "large picture file: '#{f.path}', bytes: #{File.size(f.path)}" + data = f.sysread(File.size(f.path)) + logger.info "have read data, bytes: '#{data.length}'" + f.close + data + end + + def icon_picture + f = File.new(icon_picture_name, "rb") + logger.info "icon picture file: '#{f.path}'" + data = f.sysread(File.size(f.path)) + f.close + data + end + + # FIXME change to permanent filestore area + def large_picture_name + "/tmp/#{id}.gif" + end + + # FIXME change to permanent filestore area + def icon_picture_name + "/tmp/#{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