This patch makes the subdivision field of party.address a selection widget
Please review this at http://codereview.appspot.com/4281042/ Affected files: M address.py M address.xml Index: address.py =================================================================== --- a/address.py +++ b/address.py @@ -25,10 +25,10 @@ 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) + 'Subdivision', domain=[('country', '=', Eval('country'))], + states=STATES) active = fields.Boolean('Active') sequence = fields.Integer("Sequence") full_address = fields.Function(fields.Text('Full Address'), @@ -109,4 +109,12 @@ 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') + if vals['subdivision']: + subdivision = subdivision_obj.browse(vals['subdivision']) + if subdivision.country.id != vals['country']: + vals['subdivision'] = False + return vals + Address() Index: address.xml =================================================================== --- a/address.xml +++ b/address.xml @@ -52,7 +52,7 @@ <label name="country"/> <field name="country" completion="1"/> <label name="subdivision"/> - <field name="subdivision"/> + <field name="subdivision" widget="selection"/> </form> ]]> </field> -- [email protected] mailing list
