vrfs-774: fixed infinite loop issue setting lat/lng
This commit is contained in:
parent
b48a298af5
commit
f164a750c3
|
|
@ -978,7 +978,9 @@ module JamRuby
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_lat_lng
|
def check_lat_lng
|
||||||
update_lat_lng if (city_changed? || state_changed? || country_changed?) && !lat_changed?
|
if (city_changed? || state_changed? || country_changed?) && !lat_changed? && !lng_changed?
|
||||||
|
update_lat_lng
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def update_lat_lng(ip_addy=nil)
|
def update_lat_lng(ip_addy=nil)
|
||||||
|
|
@ -988,17 +990,23 @@ module JamRuby
|
||||||
query[:region] = self.state unless self.state.blank?
|
query[:region] = self.state unless self.state.blank?
|
||||||
query[:country] = self.country unless self.country.blank?
|
query[:country] = self.country unless self.country.blank?
|
||||||
if geo = MaxMindGeo.where(query).limit(1).first
|
if geo = MaxMindGeo.where(query).limit(1).first
|
||||||
self.update_attributes({ :lat => geo.lat, :lng => geo.lng })
|
if geo.lat && geo.lng && (self.lat != geo.lat || self.lng != geo.lng)
|
||||||
yn = true
|
self.update_attributes({ :lat => geo.lat, :lng => geo.lng })
|
||||||
|
yn = true
|
||||||
|
end
|
||||||
end
|
end
|
||||||
elsif ip_addy
|
elsif ip_addy
|
||||||
if geo = MaxMindGeo.ip_lookup(ip_addy)
|
if geo = MaxMindGeo.ip_lookup(ip_addy)
|
||||||
self.update_attributes({ :lat => geo.lat, :lng => geo.lng })
|
if self.lat != geo.lat || self.lng != geo.lng
|
||||||
yn = true
|
self.update_attributes({ :lat => geo.lat, :lng => geo.lng })
|
||||||
|
yn = true
|
||||||
|
end
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
self.update_attributes({ :lat => nil, :lng => nil })
|
if self.lat || self.lng
|
||||||
yn = true
|
self.update_attributes({ :lat => nil, :lng => nil })
|
||||||
|
yn = true
|
||||||
|
end
|
||||||
end
|
end
|
||||||
yn
|
yn
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue