This commit is contained in:
gsinghpal
2026-04-28 19:39:37 -04:00
parent 2d42b33d68
commit 13e300d90e
103 changed files with 4959 additions and 331 deletions

View File

@@ -46,9 +46,8 @@
<field name="max_dose"/>
</group>
</group>
<group string="Notes">
<field name="notes" nolabel="1" colspan="2"/>
</group>
<separator string="Notes"/>
<field name="notes" colspan="2"/>
<group>
<field name="active" widget="boolean_toggle"/>
</group>

View File

@@ -82,9 +82,8 @@
<field name="product_id"/>
</group>
</group>
<group string="Notes">
<field name="notes" nolabel="1"/>
</group>
<separator string="Notes"/>
<field name="notes"/>
</sheet>
</form>
</field>

View File

@@ -48,12 +48,10 @@
<field name="training_record_attachment_id"/>
</group>
</group>
<group string="Revocation" invisible="state != 'revoked'">
<field name="revoked_reason" nolabel="1" colspan="2"/>
</group>
<group string="Notes">
<field name="notes" nolabel="1" colspan="2"/>
</group>
<separator string="Revocation"/>
<field name="revoked_reason" colspan="2"/>
<separator string="Notes"/>
<field name="notes" colspan="2"/>
</sheet>
<chatter/>
</form>

View File

@@ -211,21 +211,34 @@
</div>
</div>
<group>
<group>
<group string="Definition">
<field name="parameter_type"/>
<field name="uom"/>
<field name="decimals"/>
</group>
<group>
<field name="target_min"/>
<field name="target_max"/>
<group string="Default Targets (in selected unit)">
<label for="target_min"/>
<div class="o_row">
<field name="target_min" nolabel="1" class="oe_inline"/>
<span class="text-muted ms-2"><field name="uom_display" nolabel="1" readonly="1" class="oe_inline"/></span>
</div>
<label for="target_max"/>
<div class="o_row">
<field name="target_max" nolabel="1" class="oe_inline"/>
<span class="text-muted ms-2"><field name="uom_display" nolabel="1" readonly="1" class="oe_inline"/></span>
</div>
<label for="target_value"/>
<div class="o_row">
<field name="target_value" nolabel="1" class="oe_inline"/>
<span class="text-muted ms-2"><field name="uom_display" nolabel="1" readonly="1" class="oe_inline"/></span>
</div>
<field name="warning_tolerance"/>
<field name="active" widget="boolean_toggle"/>
</group>
</group>
<group string="Description">
<field name="description" nolabel="1"/>
</group>
<separator string="Description"/>
<field name="description" nolabel="1"
placeholder="What is this parameter, how is it measured, why does it matter?"/>
</sheet>
</form>
</field>

View File

@@ -82,9 +82,8 @@
<field name="current_part_count" readonly="1"/>
</group>
</group>
<group string="Notes">
<field name="notes" nolabel="1" colspan="2"/>
</group>
<separator string="Notes"/>
<field name="notes" colspan="2"/>
</sheet>
<chatter/>
</form>

View File

@@ -10,20 +10,24 @@
<field name="name">fp.tank.list</field>
<field name="model">fusion.plating.tank</field>
<field name="arch" type="xml">
<list string="Tanks">
<field name="facility_id"/>
<field name="work_center_id"/>
<list string="Tanks" multi_edit="1" expand="1">
<field name="sequence" widget="handle"/>
<field name="code"/>
<field name="name"/>
<field name="section_id" optional="show"/>
<field name="facility_id" optional="hide"/>
<field name="work_center_id" optional="hide"/>
<field name="current_process_id"/>
<field name="default_temperature" optional="show"/>
<field name="default_temperature_uom" optional="show"/>
<field name="state" widget="badge"
decoration-success="state == 'in_use'"
decoration-info="state == 'filled'"
decoration-warning="state in ('draining', 'maintenance')"
decoration-muted="state in ('empty', 'out_of_service')"/>
<field name="material" optional="hide"/>
<field name="volume" optional="show"/>
<field name="volume_uom" optional="show"/>
<field name="volume" optional="hide"/>
<field name="volume_uom" optional="hide"/>
<field name="active" widget="boolean_toggle" optional="hide"/>
</list>
</field>
@@ -69,12 +73,19 @@
<group>
<group string="Location">
<field name="facility_id"/>
<field name="section_id"
options="{'no_quick_create': False}"/>
<field name="work_center_id"/>
<field name="sequence"/>
</group>
<group string="Current Bath">
<field name="current_bath_id" readonly="1"/>
<field name="current_process_id" readonly="1"/>
<group string="Operating Setpoints">
<field name="current_process_id"
help="Editable. Defaults to the active bath's process."/>
<label for="default_temperature"/>
<div class="o_row">
<field name="default_temperature" nolabel="1" class="oe_inline"/>
<field name="default_temperature_uom" nolabel="1" class="oe_inline"/>
</div>
<field name="qr_code"/>
</group>
</group>
@@ -96,6 +107,62 @@
</group>
</group>
</page>
<page string="Compositions">
<group>
<field name="active_composition_id"
options="{'no_create_edit': True}"/>
</group>
<field name="composition_ids" context="{'default_tank_id': id}">
<list decoration-bf="is_active">
<field name="sequence" widget="handle"/>
<field name="code"/>
<field name="name"/>
<field name="total_percentage"
decoration-warning="total_percentage != 100.0 and total_percentage > 0"/>
<field name="is_active" string="Active"/>
<button name="action_set_active" type="object"
string="Set Active" class="btn-link"
icon="fa-check-circle"
invisible="is_active"/>
</list>
<form string="Composition">
<sheet>
<div class="oe_title">
<label for="name"/>
<h1><field name="name" placeholder="e.g. Composition A"/></h1>
</div>
<group>
<group>
<field name="code"/>
<field name="sequence"/>
</group>
<group>
<field name="total_percentage"/>
<field name="is_active"/>
</group>
</group>
<field name="description" placeholder="Short description..."/>
<notebook>
<page string="Ingredients">
<field name="ingredient_ids">
<list editable="bottom">
<field name="sequence" widget="handle"/>
<field name="name"/>
<field name="percentage"/>
<field name="uom"/>
<field name="notes"/>
</list>
</field>
</page>
<page string="Notes">
<field name="notes"/>
</page>
</notebook>
</sheet>
<chatter/>
</form>
</field>
</page>
<page string="Bath History">
<field name="bath_ids">
<list decoration-muted="state == 'dumped'">
@@ -126,6 +193,7 @@
<field name="state"/>
<field name="current_bath_id"/>
<field name="current_process_id"/>
<field name="section_id"/>
<field name="facility_id"/>
<field name="work_center_id"/>
<templates>
@@ -142,7 +210,7 @@
</div>
<div class="mt-2 small">
<div><i class="fa fa-flask me-1 text-muted"/><field name="current_process_id"/></div>
<div class="text-muted"><field name="work_center_id"/></div>
<div class="text-muted"><field name="section_id"/></div>
</div>
</div>
</t>
@@ -160,6 +228,7 @@
<field name="code"/>
<field name="qr_code"/>
<field name="facility_id"/>
<field name="section_id"/>
<field name="work_center_id"/>
<field name="current_process_id"/>
<separator/>
@@ -170,8 +239,9 @@
<separator/>
<filter string="Archived" name="inactive" domain="[('active','=',False)]"/>
<group>
<filter string="Section" name="group_section" context="{'group_by':'section_id'}"/>
<filter string="Facility" name="group_facility" context="{'group_by':'facility_id'}"/>
<filter string="Work Center" name="group_wc" context="{'group_by':'work_center_id'}"/>
<filter string="Production Line" name="group_wc" context="{'group_by':'work_center_id'}"/>
<filter string="Process" name="group_process" context="{'group_by':'current_process_id'}"/>
<filter string="Status" name="group_state" context="{'group_by':'state'}"/>
</group>
@@ -182,8 +252,70 @@
<record id="action_fp_tank" model="ir.actions.act_window">
<field name="name">Tanks</field>
<field name="res_model">fusion.plating.tank</field>
<field name="view_mode">kanban,list,form</field>
<field name="view_mode">list,kanban,form</field>
<field name="search_view_id" ref="view_fp_tank_search"/>
<field name="context">{'search_default_group_section': 1}</field>
</record>
<!-- ==================================================================
Tank Sections — manageable from Configuration → Shop Setup
================================================================== -->
<record id="view_fp_tank_section_list" model="ir.ui.view">
<field name="name">fp.tank.section.list</field>
<field name="model">fusion.plating.tank.section</field>
<field name="arch" type="xml">
<list string="Tank Sections" editable="bottom">
<field name="sequence" widget="handle"/>
<field name="name"/>
<field name="facility_id"/>
<field name="tank_count"/>
<field name="active" widget="boolean_toggle" optional="hide"/>
</list>
</field>
</record>
<record id="view_fp_tank_section_form" model="ir.ui.view">
<field name="name">fp.tank.section.form</field>
<field name="model">fusion.plating.tank.section</field>
<field name="arch" type="xml">
<form string="Tank Section">
<sheet>
<div class="oe_button_box" name="button_box">
<button name="action_view_tanks" type="object"
class="oe_stat_button" icon="fa-flask">
<field name="tank_count" widget="statinfo" string="Tanks"/>
</button>
</div>
<div class="oe_title">
<label for="name"/>
<h1><field name="name" placeholder="e.g. Steel Line"/></h1>
</div>
<group>
<group>
<field name="facility_id"/>
<field name="sequence"/>
<field name="color" widget="color_picker"/>
</group>
<group>
<field name="active"/>
</group>
</group>
<field name="description" placeholder="What kinds of tanks belong in this section?"/>
</sheet>
</form>
</field>
</record>
<record id="action_fp_tank_section" model="ir.actions.act_window">
<field name="name">Tank Sections</field>
<field name="res_model">fusion.plating.tank.section</field>
<field name="view_mode">list,form</field>
</record>
<menuitem id="menu_fp_tank_sections"
name="Tank Sections"
parent="menu_fp_config_shop_setup"
action="action_fp_tank_section"
sequence="35"/>
</odoo>

View File

@@ -42,10 +42,8 @@
<field name="mastery_required"/>
</group>
</group>
<group>
<field name="description"
<field name="description"
placeholder="Short operator-facing description of what this role covers."/>
</group>
<div class="alert alert-info" role="alert">
<i class="fa fa-info-circle me-1"/>
<strong>Mastery Threshold</strong> controls auto-promotion: when an