From 9f7337da14b582cc0d3fbd6e51a8d0de5cbbc249 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20=C3=89vrard?= Date: Tue, 29 Mar 2011 16:09:23 +0200 Subject: [PATCH] Check subdivision field when on_changing country --- address.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/address.py b/address.py index 155791a4c4..aeed740fe7 100644 --- a/address.py +++ b/address.py @@ -25,7 +25,7 @@ class Address(ModelSQL, ModelView): states=STATES) city = fields.Char('City', states=STATES) country = fields.Many2One('country.country', 'Country', - states=STATES) + on_change=['country', 'subdivision'], states=STATES) subdivision = fields.Many2One("country.subdivision", 'Subdivision', domain=[('country', '=', Eval('country'))], states=STATES) @@ -109,4 +109,14 @@ class Address(ModelSQL, ModelView): self.raise_user_error('write_party') return super(Address, self).write(ids, vals) + def on_change_country(self, vals): + subdivision_obj = self.pool.get('country.subdivision') + result = dict((k, vals.get(k, False)) + for k in ('country', 'subdivision')) + if vals['subdivision']: + subdivision = subdivision_obj.browse(vals['subdivision']) + if subdivision.country.id != vals['country']: + result['subdivision'] = False + return result + Address()