bemade-addons/qc_partner_default_lang/models/res_partner.py
2025-05-29 21:35:47 -04:00

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'