diff --git a/address.py b/address.py index fef948c059..9c01d0c1dc 100644 --- a/address.py +++ b/address.py @@ -114,12 +114,14 @@ class Address(ModelSQL, ModelView): return [('party',) + tuple(clause[1:])] @classmethod - def write(cls, addresses, vals): - if 'party' in vals: - for address in addresses: - if address.party.id != vals['party']: - cls.raise_user_error('write_party', (address.rec_name,)) - super(Address, cls).write(addresses, vals) + def write(cls, *args): + actions = iter(args) + for addresses, values in zip(actions, actions): + if 'party' in values: + for address in addresses: + if address.party.id != values['party']: + cls.raise_user_error('write_party', (address.rec_name,)) + super(Address, cls).write(*args) def on_change_country(self): if (self.subdivision diff --git a/contact_mechanism.py b/contact_mechanism.py index 9c979abd9e..3de1e9953a 100644 --- a/contact_mechanism.py +++ b/contact_mechanism.py @@ -171,9 +171,11 @@ class ContactMechanism(ModelSQL, ModelView): return self._change_value(self.other_value) @classmethod - def write(cls, mechanisms, vals): - if 'party' in vals: - for mechanism in mechanisms: - if mechanism.party.id != vals['party']: - cls.raise_user_error('write_party', (mechanism.rec_name,)) - super(ContactMechanism, cls).write(mechanisms, vals) + def write(cls, *args): + actions = iter(args) + for mechanisms, values in zip(actions, actions): + if 'party' in values: + for mechanism in mechanisms: + if mechanism.party.id != values['party']: + cls.raise_user_error('write_party', (mechanism.rec_name,)) + super(ContactMechanism, cls).write(*args) diff --git a/party.py b/party.py index e0c5554a28..207604ca66 100644 --- a/party.py +++ b/party.py @@ -166,11 +166,15 @@ class Party(ModelSQL, ModelView): return super(Party, cls).create(vlist) @classmethod - def write(cls, parties, vals): - if vals.get('code'): - vals = vals.copy() - vals['code_length'] = len(vals['code']) - super(Party, cls).write(parties, vals) + def write(cls, *args): + actions = iter(args) + args = [] + for parties, values in zip(actions, actions): + if values.get('code'): + values = values.copy() + values['code_length'] = len(values['code']) + args.extend((parties, values)) + super(Party, cls).write(*args) @classmethod def copy(cls, parties, default=None):