IMP sale_planner backport partner specific geo_localize from 11.0

This commit is contained in:
Jared Kipe
2018-09-24 11:27:07 -07:00
parent d8d35953be
commit 40033880f2
3 changed files with 31 additions and 1 deletions

View File

@@ -1,3 +1,4 @@
from . import sale
from . import stock
from . import delivery
from . import partner

View File

@@ -0,0 +1,29 @@
from odoo import api, fields, models
try:
from uszipcode import ZipcodeSearchEngine
except ImportError:
ZipcodeSearchEngine = None
class Partner(models.Model):
_inherit = 'res.partner'
@api.multi
def geo_localize(self):
# We need country names in English below
for partner in self.with_context(lang='en_US'):
if ZipcodeSearchEngine and partner.zip:
with ZipcodeSearchEngine() as search:
zipcode = search.by_zipcode(str(self.zip).split('-')[0])
if zipcode and zipcode['Latitude']:
partner.write({
'partner_latitude': zipcode['Latitude'],
'partner_longitude': zipcode['Longitude'],
'date_localization': fields.Date.context_today(partner),
})
else:
super(Partner, partner).geo_localize()
else:
super(Partner, partner).geo_localize()
return True

View File

@@ -55,7 +55,7 @@ class FakePartner():
@property
def date_localization(self):
if not hasattr(self, 'date_localization'):
if not hasattr(self, 'date_localization') or not self.date_localization:
self.date_localization = 'TODAY!'
# The fast way.
if ZipcodeSearchEngine and self.zip: