diff --git a/purchase.py b/purchase.py index 141e90a3fa..e3b360861c 100644 --- a/purchase.py +++ b/purchase.py @@ -1998,6 +1998,9 @@ class ModifyHeaderStateView(StateView): return super(ModifyHeaderStateView, self).get_view( wizard, state_name) + def get_defaults(self, wizard, state_name, fields): + return {} + class ModifyHeader(Wizard): "Modify Header" @@ -2016,9 +2019,9 @@ class ModifyHeader(Wizard): purchase=self.record.rec_name)) return self.record - def default_start(self, fields): + def value_start(self, fields): purchase = self.get_purchase() - defaults = {} + values = {} for fieldname in fields: value = getattr(purchase, fieldname) if isinstance(value, Model): @@ -2028,11 +2031,11 @@ class ModifyHeader(Wizard): value = value.id elif isinstance(value, (list, tuple)): value = [r.id for r in value] - defaults[fieldname] = value + values[fieldname] = value # Mimic an empty sale in draft state to get the fields' states right - defaults['lines'] = [] - return defaults + values['lines'] = [] + return values def transition_modify(self): pool = Pool() diff --git a/tests/scenario_purchase_modify_header.rst b/tests/scenario_purchase_modify_header.rst index 444974fdb0..030e14e665 100644 --- a/tests/scenario_purchase_modify_header.rst +++ b/tests/scenario_purchase_modify_header.rst @@ -88,6 +88,8 @@ Create a sale with a line:: Change the party:: >>> modify_header = Wizard('purchase.modify_header', [purchase]) + >>> modify_header.form.party == supplier + True >>> modify_header.form.party = another >>> modify_header.execute('modify')