34 lines
1.2 KiB
Python
34 lines
1.2 KiB
Python
from odoo import api, models
|
|
|
|
|
|
class ResPartner(models.Model):
|
|
_inherit = 'res.partner'
|
|
|
|
@api.model_create_multi
|
|
def create(self, vals_list):
|
|
for vals in vals_list:
|
|
# Only set language if it's not already specified
|
|
if not vals.get('lang'):
|
|
state = vals.get('state_id')
|
|
country = vals.get('country_id')
|
|
|
|
if state:
|
|
state_rec = self.env['res.country.state'].browse(state)
|
|
# Check if the state is Quebec
|
|
if state_rec.code == 'QC' and state_rec.country_id.code == 'CA':
|
|
vals['lang'] = 'fr_CA'
|
|
else:
|
|
vals['lang'] = 'en_US'
|
|
else:
|
|
vals['lang'] = 'en_US'
|
|
|
|
return super().create(vals_list)
|
|
|
|
@api.onchange('state_id', 'country_id')
|
|
def _onchange_location_set_lang(self):
|
|
# Only suggest language change if it's a new record (id not set yet)
|
|
if not self.id and not self.lang:
|
|
if self.state_id and self.state_id.code == 'QC' and self.state_id.country_id.code == 'CA':
|
|
self.lang = 'fr_CA'
|
|
else:
|
|
self.lang = 'en_US'
|