updates from hacking day

This commit is contained in:
Steve Coast 2007-05-06 10:08:00 +00:00
parent e5a5f957ef
commit 89e976c6e5
12 changed files with 150 additions and 45 deletions

View file

@ -78,12 +78,22 @@ class Node < ActiveRecord::Base
return doc
end
def to_xml_node
def to_xml_node(user_display_name_cache = nil)
el1 = XML::Node.new 'node'
el1['id'] = self.id.to_s
el1['lat'] = self.latitude.to_s
el1['lon'] = self.longitude.to_s
el1['user'] = self.user.display_name if self.user.data_public?
# el['user'] = self.user.display_name if self.user.data_public?
if user_display_name_cache and user_display_name_cache[self.user_id]
# use the cache if available
else
user_display_name_cache[self.user_id] = self.user.display_name
end
el1['user'] = user_display_name_cache[self.user_id]
Node.split_tags(el1, self.tags)
el1['visible'] = self.visible.to_s
el1['timestamp'] = self.timestamp.xmlschema

View file

@ -73,12 +73,20 @@ class Segment < ActiveRecord::Base
return doc
end
def to_xml_node
def to_xml_node(user_display_name_cache = nil)
el1 = XML::Node.new 'segment'
el1['id'] = self.id.to_s
el1['from'] = self.node_a.to_s
el1['to'] = self.node_b.to_s
el1['user'] = self.user.display_name if self.user.data_public?
if user_display_name_cache and user_display_name_cache[self.user_id]
# use the cache if available
else
user_display_name_cache[self.user_id] = self.user.display_name
end
#el1['user'] = self.user.display_name if self.user.data_public?
el1['user'] = user_display_name_cache[self.user_id]
Segment.split_tags(el1, self.tags)
el1['visible'] = self.visible.to_s
el1['timestamp'] = self.timestamp.xmlschema

View file

@ -1,9 +1,25 @@
class Tracepoint < ActiveRecord::Base
set_table_name 'gps_points'
set_table_name 'gps_points'
# validates_numericality_of :latitude
# validates_numericality_of :longitude
belongs_to :user
belongs_to :trace, :foreign_key => 'gpx_id'
def lat=(l)
self.latitude = l * 1000000
end
def lng=(l)
self.longitude = l * 1000000
end
def lat
return self.latitude.to_f / 1000000
end
def lon
return self.longitude.to_f / 1000000
end
end

View file

@ -28,8 +28,8 @@ class User < ActiveRecord::Base
write_attribute("pass_crypt_confirm", Digest::MD5.hexdigest(str))
end
def self.authenticate(email, passwd)
find(:first, :conditions => [ "email = ? AND pass_crypt = ?", email, Digest::MD5.hexdigest(passwd)])
def self.authenticate(email, passwd)
find(:first, :conditions => [ "email = ? AND pass_crypt = ? AND active = true", email, Digest::MD5.hexdigest(passwd)])
end
def self.authenticate_token(token)

View file

@ -50,22 +50,44 @@ class Way < ActiveRecord::Base
return doc
end
def to_xml_node
def to_xml_node(visible_segments = nil, user_display_name_cache = nil)
el1 = XML::Node.new 'way'
el1['id'] = self.id.to_s
el1['visible'] = self.visible.to_s
el1['timestamp'] = self.timestamp.xmlschema
el1['user'] = self.user.display_name if self.user.data_public?
# make sure segments are output in sequence_id order
ordered_segments = []
self.way_segments.each do |seg|
ordered_segments[seg.sequence_id] = seg.segment_id.to_s
end
ordered_segments.each do |seg_id|
e = XML::Node.new 'seg'
e['id'] = seg_id
el1 << e
end
if user_display_name_cache and user_display_name_cache[self.user_id]
# use the cache if available
else
user_display_name_cache[self.user_id] = self.user.display_name
end
#el1['user'] = self.user.display_name if self.user.data_public?
el1['user'] = user_display_name_cache[self.user_id]
# make sure segments are output in sequence_id order
ordered_segments = []
self.way_segments.each do |seg|
if visible_segments
# if there is a list of visible segments then use that to weed out deleted segments
if visible_segments[seg.segment_id]
ordered_segments[seg.sequence_id] = seg.segment_id.to_s
end
else
# otherwise, manually go to the db to check things
if seg.segment.visible? and seg.segment.from_node.visible? and seg.segment.to_node.visible?
ordered_segments[seg.sequence_id] = seg.segment_id.to_s
end
end
end
ordered_segments.each do |seg_id|
if seg_id
e = XML::Node.new 'seg'
e['id'] = seg_id
el1 << e
end
end
self.way_tags.each do |tag|
e = XML::Node.new 'tag'
@ -76,7 +98,6 @@ class Way < ActiveRecord::Base
return el1
end
def segs
unless @segs
@segs = Array.new