mirror of
https://gitlab.com/hibou-io/hibou-odoo/suite.git
synced 2025-01-20 12:37:31 +02:00
IMP sale_planner backport partner specific geo_localize from 11.0
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
from . import sale
|
||||
from . import stock
|
||||
from . import delivery
|
||||
from . import partner
|
||||
|
||||
29
sale_planner/models/partner.py
Normal file
29
sale_planner/models/partner.py
Normal 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
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user