Skip to content
This repository has been archived by the owner on Apr 28, 2022. It is now read-only.

Commit

Permalink
ENH - Multi call to onchange domain after defaults set.
Browse files Browse the repository at this point in the history
  • Loading branch information
Richard deMeester committed May 5, 2017
1 parent 30fdbb1 commit 996982c
Showing 1 changed file with 24 additions and 0 deletions.
24 changes: 24 additions & 0 deletions product_configurator_wizard/wizard/product_configurator.py
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,30 @@ def onchange(self, values, field_name, field_onchange):

domains = self.get_onchange_domains(values, cfg_val_ids)
vals = self.get_form_vals(dynamic_fields, domains, cfg_step)
modified_dynamics = {k: v
for k, v in vals.iteritems()
if k in dynamic_fields}

while modified_dynamics:
# modified values may change domains!
dynamic_fields.update(modified_dynamics)
for k, v in modified_dynamics.iteritems():
attr_id = int(k.split(self.field_prefix)[1])
view_val_ids -= set(self.env['product.attribute.value'].search(
[('attribute_id', '=', attr_id)]).ids)
if v:
view_val_ids.add(v)

cfg_val_ids = cfg_vals.ids + list(view_val_ids)

domains = self.get_onchange_domains(values, cfg_val_ids)
nvals = self.get_form_vals(dynamic_fields, domains)
# Stop possible recursion by not including values which have
# previously looped
modified_dynamics = {k: v
for k, v in nvals.iteritems()
if k in dynamic_fields and k not in vals}
vals.update(nvals)
return {'value': vals, 'domain': domains}

attribute_line_ids = fields.One2many(
Expand Down

0 comments on commit 996982c

Please sign in to comment.