env = env # noqa co = env.company print('Company unit defaults on', co.name) for f in ('x_fc_default_temp_uom', 'x_fc_default_thickness_uom', 'x_fc_default_volume_uom', 'x_fc_default_mass_uom', 'x_fc_default_pressure_uom', 'x_fc_default_current_density_uom', 'x_fc_default_area_uom'): print(f' {f:<36} {getattr(co, f, "(missing)")}') # Switch company default to Celsius and verify a new WO inherits it print('\\nSwitching company default to °C...') co.sudo().x_fc_default_temp_uom = 'C' mo = env['mrp.production'].sudo().search([], order='id desc', limit=1) if mo: bake_wo = mo.workorder_ids.filtered( lambda w: hasattr(w, '_fp_classify_kind') and w._fp_classify_kind() == 'bake' )[:1] if bake_wo: # Existing WOs keep their stored value print(f'existing bake WO {bake_wo.id}: x_fc_bake_temp_uom = {bake_wo.x_fc_bake_temp_uom}') # New WO should default from current company setting new_wo_vals = { 'production_id': mo.id, 'name': 'Test Bake WO', 'workcenter_id': mo.workorder_ids[0].workcenter_id.id, } new_wo = env['mrp.workorder'].sudo().create(new_wo_vals) print(f'NEW WO {new_wo.id}: x_fc_bake_temp_uom = {new_wo.x_fc_bake_temp_uom} (should be C)') new_wo.sudo().unlink() # Restore F default co.sudo().x_fc_default_temp_uom = 'F' print('Restored to °F.') env.cr.commit()