diff --git a/models/res_partner.py b/models/res_partner.py index 3268f358fd49148bc45c141e2531a394ef0e8bd5..41bb440ef39ef4919f70fb623824f02d0cbdaabf 100644 --- a/models/res_partner.py +++ b/models/res_partner.py @@ -20,8 +20,11 @@ def geo_find(addr): raise UserError(_('Cannot contact geolocation servers. Please make sure that your Internet connection is up and running (%s).') % e) try: - geo = result[0] - return [float(geo['lat']), float(geo['lon'])] + if result: + geo = result[0] + return [float(geo['lat']), float(geo['lon'])] + else: + return None except (KeyError, ValueError): return None @@ -48,21 +51,23 @@ class ResPartner(models.Model): def geo_localize(self): # We need country names in English below for partner in self.with_context(lang='en_US'): - result = geo_find(geo_query_address(street=partner.street, - zip=partner.zip, - city=partner.city, - country=partner.country_id.name)) + if partner.city: + result = geo_find(geo_query_address(street=partner.street, + zip=partner.zip, + city=partner.city, + country=partner.country_id.name)) - if result is None: - result = geo_find(geo_query_address( - city=partner.city, - country=partner.country_id.name - )) + if result is None: + result = geo_find(geo_query_address( + city=partner.city, + country=partner.country_id.name + )) + + if result: + partner.write({ + 'partner_latitude': result[0], + 'partner_longitude': result[1], + 'date_localization': fields.Date.context_today(partner) + }) - if result: - partner.write({ - 'partner_latitude': result[0], - 'partner_longitude': result[1], - 'date_localization': fields.Date.context_today(partner) - }) return True