38 lines
1.7 KiB
Python
38 lines
1.7 KiB
Python
# Step 2 verification — picking a part on the wizard line pre-fills coating + treatments.
|
|
W = env['fp.direct.order.wizard']
|
|
Line = env['fp.direct.order.line']
|
|
Part = env['fp.part.catalog']
|
|
Coating = env['fp.coating.config']
|
|
Treat = env['fp.treatment']
|
|
P = env['res.partner']
|
|
|
|
target = P.browse(2529)
|
|
# Pick a part that has a default coating + treatments configured.
|
|
part = Part.search([('x_fc_default_coating_config_id', '!=', False)], limit=1)
|
|
if not part:
|
|
# Build a synthetic one for the test.
|
|
coating = Coating.search([], limit=1)
|
|
treats = Treat.search([], limit=2)
|
|
part = Part.search([], limit=1)
|
|
part.x_fc_default_coating_config_id = coating.id
|
|
part.x_fc_default_treatment_ids = [(6, 0, treats.ids)]
|
|
print(f'Set up part {part.part_number}: default coating={coating.name}, treatments={treats.mapped("name")}')
|
|
|
|
print(f'Part: {part.part_number} rev {part.revision}')
|
|
print(f' default coating: {part.x_fc_default_coating_config_id.name if part.x_fc_default_coating_config_id else None}')
|
|
print(f' default treatments: {part.x_fc_default_treatment_ids.mapped("name") if part.x_fc_default_treatment_ids else None}')
|
|
|
|
# Build a wizard, add an empty line, simulate Sarah picking the part.
|
|
w = W.create({'partner_id': target.id})
|
|
w._onchange_partner_id()
|
|
ln = Line.new({'wizard_id': w.id})
|
|
ln.part_catalog_id = part
|
|
ln._onchange_part_clears_variant()
|
|
print()
|
|
print(f'After picking part on line:')
|
|
print(f' coating_config_id: {ln.coating_config_id.name if ln.coating_config_id else None}')
|
|
print(f' treatment_ids: {ln.treatment_ids.mapped("name") if ln.treatment_ids else None}')
|
|
print(f' Pre-fill worked? {bool(ln.coating_config_id) and bool(ln.treatment_ids)}')
|
|
|
|
env.cr.commit()
|