Merge rails_port as of r4613 & fix tests.
This commit is contained in:
commit
cfbdd3f7e1
52 changed files with 696 additions and 256 deletions
|
@ -1,3 +1,8 @@
|
|||
class DiaryEntry < ActiveRecord::Base
|
||||
belongs_to :user
|
||||
|
||||
validates_presence_of :title, :body
|
||||
validates_numericality_of :latitude, :allow_nil => true
|
||||
validates_numericality_of :longitude, :allow_nil => true
|
||||
validates_associated :user
|
||||
end
|
||||
|
|
|
@ -1,4 +1,8 @@
|
|||
class Message < ActiveRecord::Base
|
||||
belongs_to :sender, :class_name => "User", :foreign_key => :from_user_id
|
||||
belongs_to :recipient, :class_name => "User", :foreign_key => :to_user_id
|
||||
|
||||
validates_presence_of :title, :body, :sent_on
|
||||
validates_inclusion_of :message_read, :in => [ true, false ]
|
||||
validates_associated :sender, :recipient
|
||||
end
|
||||
|
|
|
@ -68,18 +68,12 @@ class Node < ActiveRecord::Base
|
|||
return node
|
||||
end
|
||||
|
||||
def save_with_history
|
||||
begin
|
||||
Node.transaction do
|
||||
self.timestamp = Time.now
|
||||
self.save!
|
||||
old_node = OldNode.from_node(self)
|
||||
old_node.save!
|
||||
end
|
||||
|
||||
return true
|
||||
rescue
|
||||
return nil
|
||||
def save_with_history!
|
||||
Node.transaction do
|
||||
self.timestamp = Time.now
|
||||
self.save!
|
||||
old_node = OldNode.from_node(self)
|
||||
old_node.save!
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -37,4 +37,16 @@ class Notifier < ActionMailer::Base
|
|||
@body['trace_name'] = trace.name
|
||||
@body['error'] = error
|
||||
end
|
||||
|
||||
def message_notification(message)
|
||||
@recipients = message.recipient.email
|
||||
@from = 'abuse@openstreetmap.org'
|
||||
@subject = "[OpenStreetMap] #{message.sender.display_name} sent you a new message"
|
||||
@body['to_user'] = message.recipient.display_name
|
||||
@body['from_user'] = message.sender.display_name
|
||||
@body['body'] = message.body
|
||||
@body['subject'] = message.title
|
||||
@body['readurl'] = "http://#{SERVER_URL}/message/read/#{message.id}"
|
||||
@body['replyurl'] = "http://#{SERVER_URL}/message/new/#{message.from_user_id}"
|
||||
end
|
||||
end
|
||||
|
|
|
@ -141,46 +141,40 @@ class Relation < ActiveRecord::Base
|
|||
@tags[k] = v
|
||||
end
|
||||
|
||||
def save_with_history
|
||||
begin
|
||||
Relation.transaction do
|
||||
t = Time.now
|
||||
self.timestamp = t
|
||||
self.save!
|
||||
def save_with_history!
|
||||
Relation.transaction do
|
||||
t = Time.now
|
||||
self.timestamp = t
|
||||
self.save!
|
||||
|
||||
tags = self.tags
|
||||
tags = self.tags
|
||||
|
||||
RelationTag.delete_all(['id = ?', self.id])
|
||||
RelationTag.delete_all(['id = ?', self.id])
|
||||
|
||||
tags.each do |k,v|
|
||||
tag = RelationTag.new
|
||||
tag.k = k
|
||||
tag.v = v
|
||||
tag.id = self.id
|
||||
tag.save!
|
||||
end
|
||||
|
||||
members = self.members
|
||||
|
||||
RelationMember.delete_all(['id = ?', self.id])
|
||||
|
||||
members.each do |n|
|
||||
mem = RelationMember.new
|
||||
mem.id = self.id
|
||||
mem.member_type = n[0];
|
||||
mem.member_id = n[1];
|
||||
mem.member_role = n[2];
|
||||
mem.save!
|
||||
end
|
||||
|
||||
old_relation = OldRelation.from_relation(self)
|
||||
old_relation.timestamp = t
|
||||
old_relation.save_with_dependencies!
|
||||
tags.each do |k,v|
|
||||
tag = RelationTag.new
|
||||
tag.k = k
|
||||
tag.v = v
|
||||
tag.id = self.id
|
||||
tag.save!
|
||||
end
|
||||
|
||||
return true
|
||||
rescue Exception => ex
|
||||
return nil
|
||||
members = self.members
|
||||
|
||||
RelationMember.delete_all(['id = ?', self.id])
|
||||
|
||||
members.each do |n|
|
||||
mem = RelationMember.new
|
||||
mem.id = self.id
|
||||
mem.member_type = n[0];
|
||||
mem.member_id = n[1];
|
||||
mem.member_role = n[2];
|
||||
mem.save!
|
||||
end
|
||||
|
||||
old_relation = OldRelation.from_relation(self)
|
||||
old_relation.timestamp = t
|
||||
old_relation.save_with_dependencies!
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -175,7 +175,12 @@ class Trace < ActiveRecord::Base
|
|||
f_lon = 0
|
||||
first = true
|
||||
|
||||
Tracepoint.delete_all(['gpx_id = ?', self.id])
|
||||
# If there are any existing points for this trace then delete
|
||||
# them - we check for existing points first to avoid locking
|
||||
# the table in the common case where there aren't any.
|
||||
if Tracepoint.exists?(['gpx_id = ?', self.id])
|
||||
Tracepoint.delete_all(['gpx_id = ?', self.id])
|
||||
end
|
||||
|
||||
gpx.points do |point|
|
||||
if first
|
||||
|
@ -199,10 +204,10 @@ class Trace < ActiveRecord::Base
|
|||
max_lon = Tracepoint.maximum('longitude', :conditions => ['gpx_id = ?', id])
|
||||
min_lon = Tracepoint.minimum('longitude', :conditions => ['gpx_id = ?', id])
|
||||
|
||||
max_lat = max_lat.to_f / 1000000
|
||||
min_lat = min_lat.to_f / 1000000
|
||||
max_lon = max_lon.to_f / 1000000
|
||||
min_lon = min_lon.to_f / 1000000
|
||||
max_lat = max_lat.to_f / 10000000
|
||||
min_lat = min_lat.to_f / 10000000
|
||||
max_lon = max_lon.to_f / 10000000
|
||||
min_lon = min_lon.to_f / 10000000
|
||||
|
||||
self.latitude = f_lat
|
||||
self.longitude = f_lon
|
||||
|
|
|
@ -1,26 +1,40 @@
|
|||
class Tracepoint < ActiveRecord::Base
|
||||
set_table_name 'gps_points'
|
||||
set_table_name 'gps_points'
|
||||
|
||||
# validates_numericality_of :latitude
|
||||
# validates_numericality_of :longitude
|
||||
validates_numericality_of :trackid, :only_integer => true
|
||||
validates_numericality_of :latitude, :only_integer => true
|
||||
validates_numericality_of :longitude, :only_integer => true
|
||||
validates_associated :trace
|
||||
validates_presence_of :timestamp
|
||||
|
||||
belongs_to :user
|
||||
belongs_to :trace, :foreign_key => 'gpx_id'
|
||||
|
||||
before_save :update_tile
|
||||
|
||||
def self.find_by_area(minlat, minlon, maxlat, maxlon, options)
|
||||
self.with_scope(:find => {:conditions => OSM.sql_for_area(minlat, minlon, maxlat, maxlon)}) do
|
||||
return self.find(:all, options)
|
||||
end
|
||||
end
|
||||
|
||||
def update_tile
|
||||
self.tile = QuadTile.tile_for_point(lat, lon)
|
||||
end
|
||||
|
||||
def lat=(l)
|
||||
self.latitude = l * 1000000
|
||||
self.latitude = (l * 10000000).round
|
||||
end
|
||||
|
||||
def lng=(l)
|
||||
self.longitude = l * 1000000
|
||||
self.longitude = (l * 10000000).round
|
||||
end
|
||||
|
||||
def lat
|
||||
return self.latitude.to_f / 1000000
|
||||
return self.latitude.to_f / 10000000
|
||||
end
|
||||
|
||||
def lon
|
||||
return self.longitude.to_f / 1000000
|
||||
return self.longitude.to_f / 10000000
|
||||
end
|
||||
|
||||
def to_xml_node
|
||||
|
@ -29,5 +43,4 @@ set_table_name 'gps_points'
|
|||
el1['lon'] = self.lon.to_s
|
||||
return el1
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -142,49 +142,47 @@ class Way < ActiveRecord::Base
|
|||
@tags[k] = v
|
||||
end
|
||||
|
||||
def save_with_history
|
||||
begin
|
||||
Way.transaction do
|
||||
t = Time.now
|
||||
self.timestamp = t
|
||||
self.save!
|
||||
def save_with_history!
|
||||
t = Time.now
|
||||
|
||||
tags = self.tags
|
||||
|
||||
WayTag.delete_all(['id = ?', self.id])
|
||||
|
||||
tags.each do |k,v|
|
||||
tag = WayTag.new
|
||||
tag.k = k
|
||||
tag.v = v
|
||||
tag.id = self.id
|
||||
tag.save!
|
||||
end
|
||||
|
||||
nds = self.nds
|
||||
|
||||
WayNode.delete_all(['id = ?', self.id])
|
||||
|
||||
i = 1
|
||||
nds.each do |n|
|
||||
nd = WayNode.new
|
||||
nd.id = self.id
|
||||
nd.node_id = n
|
||||
nd.sequence_id = i
|
||||
nd.save!
|
||||
i += 1
|
||||
end
|
||||
|
||||
old_way = OldWay.from_way(self)
|
||||
old_way.timestamp = t
|
||||
old_way.save_with_dependencies!
|
||||
end
|
||||
|
||||
return true
|
||||
rescue => ex
|
||||
puts ex
|
||||
return nil
|
||||
Way.transaction do
|
||||
self.timestamp = t
|
||||
self.save!
|
||||
end
|
||||
|
||||
WayTag.transaction do
|
||||
tags = self.tags
|
||||
|
||||
WayTag.delete_all(['id = ?', self.id])
|
||||
|
||||
tags.each do |k,v|
|
||||
tag = WayTag.new
|
||||
tag.k = k
|
||||
tag.v = v
|
||||
tag.id = self.id
|
||||
tag.save!
|
||||
end
|
||||
end
|
||||
|
||||
WayNode.transaction do
|
||||
nds = self.nds
|
||||
|
||||
WayNode.delete_all(['id = ?', self.id])
|
||||
|
||||
i = 1
|
||||
nds.each do |n|
|
||||
nd = WayNode.new
|
||||
nd.id = self.id
|
||||
nd.node_id = n
|
||||
nd.sequence_id = i
|
||||
nd.save!
|
||||
i += 1
|
||||
end
|
||||
end
|
||||
|
||||
old_way = OldWay.from_way(self)
|
||||
old_way.timestamp = t
|
||||
old_way.save_with_dependencies!
|
||||
end
|
||||
|
||||
def preconditions_ok?
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue