changes
This commit is contained in:
@@ -1,185 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright 2026 Nexa Systems Inc.
|
||||
License OPL-1 (Odoo Proprietary License v1.0)
|
||||
Part of the Fusion Plating product family.
|
||||
-->
|
||||
<odoo>
|
||||
|
||||
<record id="view_fp_first_piece_gate_list" model="ir.ui.view">
|
||||
<field name="name">fp.first.piece.gate.list</field>
|
||||
<field name="model">fusion.plating.first.piece.gate</field>
|
||||
<field name="arch" type="xml">
|
||||
<list string="First-Piece Gates"
|
||||
decoration-success="result == 'pass' and rest_of_lot_released"
|
||||
decoration-warning="result == 'pass' and not rest_of_lot_released"
|
||||
decoration-danger="result == 'fail'"
|
||||
decoration-muted="result == 'pending'">
|
||||
<field name="name"/>
|
||||
<field name="bath_id"/>
|
||||
<field name="part_ref"/>
|
||||
<field name="customer_ref" optional="show"/>
|
||||
<field name="routing_first_run" widget="boolean_toggle" optional="hide"/>
|
||||
<field name="first_piece_produced" optional="show"/>
|
||||
<field name="first_piece_inspected" optional="show"/>
|
||||
<field name="inspector_id" optional="show"/>
|
||||
<field name="result" widget="badge"
|
||||
decoration-success="result == 'pass'"
|
||||
decoration-danger="result == 'fail'"
|
||||
decoration-muted="result == 'pending'"/>
|
||||
<field name="rest_of_lot_released" widget="boolean_toggle"/>
|
||||
</list>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_fp_first_piece_gate_form" model="ir.ui.view">
|
||||
<field name="name">fp.first.piece.gate.form</field>
|
||||
<field name="model">fusion.plating.first.piece.gate</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="First-Piece Gate">
|
||||
<header>
|
||||
<button name="action_mark_pass" string="Mark Pass" type="object"
|
||||
class="oe_highlight" invisible="result != 'pending'"/>
|
||||
<button name="action_mark_fail" string="Mark Fail" type="object"
|
||||
invisible="result != 'pending'"/>
|
||||
<button name="action_release_lot" string="Release Lot" type="object"
|
||||
invisible="result != 'pass' or rest_of_lot_released"/>
|
||||
<field name="result" widget="statusbar"
|
||||
statusbar_visible="pending,pass"/>
|
||||
</header>
|
||||
<sheet>
|
||||
<div class="oe_title">
|
||||
<label for="name"/>
|
||||
<h1><field name="name" readonly="1"/></h1>
|
||||
</div>
|
||||
<group>
|
||||
<group string="Job">
|
||||
<field name="bath_id"/>
|
||||
<field name="facility_id" readonly="1"/>
|
||||
<field name="part_ref"/>
|
||||
<field name="customer_ref"/>
|
||||
<field name="routing_first_run"/>
|
||||
</group>
|
||||
<group string="Inspection">
|
||||
<field name="first_piece_produced"/>
|
||||
<field name="first_piece_inspected"/>
|
||||
<field name="inspector_id"/>
|
||||
<field name="rest_of_lot_released"/>
|
||||
</group>
|
||||
</group>
|
||||
<separator string="Notes"/>
|
||||
<field name="notes"/>
|
||||
</sheet>
|
||||
<chatter/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!--
|
||||
Kanban rebuilt 2026-04 to match the Plant Overview card design.
|
||||
Shared base styles in fp_kanbans.scss (.o_fp_kcard); the
|
||||
wrapping .o_fp_fpg_kanban scopes per-result stripe colours.
|
||||
-->
|
||||
<record id="view_fp_first_piece_gate_kanban" model="ir.ui.view">
|
||||
<field name="name">fp.first.piece.gate.kanban</field>
|
||||
<field name="model">fusion.plating.first.piece.gate</field>
|
||||
<field name="arch" type="xml">
|
||||
<kanban default_group_by="result" class="o_fp_fpg_kanban">
|
||||
<field name="id"/>
|
||||
<field name="name"/>
|
||||
<field name="part_ref"/>
|
||||
<field name="customer_ref"/>
|
||||
<field name="bath_id"/>
|
||||
<field name="first_piece_produced"/>
|
||||
<field name="inspector_id"/>
|
||||
<field name="result"/>
|
||||
<field name="rest_of_lot_released"/>
|
||||
<templates>
|
||||
<t t-name="card">
|
||||
<div class="o_fp_kcard"
|
||||
t-att-data-result="record.result.raw_value">
|
||||
<div class="o_fp_kcard_title">
|
||||
<field name="name"/>
|
||||
</div>
|
||||
<div class="o_fp_kcard_sub" t-if="record.part_ref.raw_value">
|
||||
<field name="part_ref"/>
|
||||
</div>
|
||||
<div class="o_fp_kcard_meta">
|
||||
<span t-if="record.bath_id.raw_value">
|
||||
<i class="fa fa-flask me-1"/><field name="bath_id"/>
|
||||
</span>
|
||||
<span class="o_fp_kcard_meta_sep"
|
||||
t-if="record.bath_id.raw_value and record.customer_ref.raw_value">·</span>
|
||||
<span t-if="record.customer_ref.raw_value">
|
||||
<field name="customer_ref"/>
|
||||
</span>
|
||||
</div>
|
||||
<div class="o_fp_kcard_meta"
|
||||
t-if="record.inspector_id.raw_value or record.first_piece_produced.raw_value">
|
||||
<span t-if="record.inspector_id.raw_value">
|
||||
<i class="fa fa-user me-1"/><field name="inspector_id"/>
|
||||
</span>
|
||||
<span class="o_fp_kcard_meta_sep"
|
||||
t-if="record.inspector_id.raw_value and record.first_piece_produced.raw_value">·</span>
|
||||
<span t-if="record.first_piece_produced.raw_value">
|
||||
<field name="first_piece_produced"/>
|
||||
</span>
|
||||
</div>
|
||||
<div class="o_fp_kcard_footer">
|
||||
<span t-att-class="'o_fp_kcard_chip ' + (
|
||||
record.result.raw_value === 'pass' ? 'tone-success'
|
||||
: record.result.raw_value === 'fail' ? 'tone-danger'
|
||||
: record.result.raw_value === 'pending' ? 'tone-warning'
|
||||
: 'tone-muted')">
|
||||
<field name="result"/>
|
||||
</span>
|
||||
<span class="o_fp_fpg_released"
|
||||
t-if="record.rest_of_lot_released.raw_value">
|
||||
<i class="fa fa-check"/> Released
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
</templates>
|
||||
</kanban>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_fp_first_piece_gate_search" model="ir.ui.view">
|
||||
<field name="name">fp.first.piece.gate.search</field>
|
||||
<field name="model">fusion.plating.first.piece.gate</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="First-Piece Gates">
|
||||
<field name="name"/>
|
||||
<field name="part_ref"/>
|
||||
<field name="customer_ref"/>
|
||||
<field name="bath_id"/>
|
||||
<field name="inspector_id"/>
|
||||
<separator/>
|
||||
<filter string="Pending" name="pending" domain="[('result','=','pending')]"/>
|
||||
<filter string="Passed" name="passed" domain="[('result','=','pass')]"/>
|
||||
<filter string="Failed" name="failed" domain="[('result','=','fail')]"/>
|
||||
<separator/>
|
||||
<filter string="Lot Released" name="released" domain="[('rest_of_lot_released','=',True)]"/>
|
||||
<filter string="Lot On Hold" name="on_hold"
|
||||
domain="[('result','=','pass'),('rest_of_lot_released','=',False)]"/>
|
||||
<separator/>
|
||||
<filter string="Archived" name="inactive" domain="[('active','=',False)]"/>
|
||||
<group>
|
||||
<filter string="Result" name="group_result" context="{'group_by':'result'}"/>
|
||||
<filter string="Customer" name="group_customer" context="{'group_by':'customer_ref'}"/>
|
||||
<filter string="Inspector" name="group_inspector" context="{'group_by':'inspector_id'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_fp_first_piece_gate" model="ir.actions.act_window">
|
||||
<field name="name">First-Piece Gates</field>
|
||||
<field name="res_model">fusion.plating.first.piece.gate</field>
|
||||
<field name="view_mode">kanban,list,form</field>
|
||||
<field name="search_view_id" ref="view_fp_first_piece_gate_search"/>
|
||||
<field name="context">{'search_default_pending': 1}</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
@@ -43,12 +43,6 @@
|
||||
action="action_fp_bake_window"
|
||||
sequence="20"/>
|
||||
|
||||
<menuitem id="menu_fp_shopfloor_first_piece"
|
||||
name="First-Piece Gates"
|
||||
parent="menu_fp_shopfloor"
|
||||
action="action_fp_first_piece_gate"
|
||||
sequence="30"/>
|
||||
|
||||
<!-- Phase 2 — both under Shop Setup. -->
|
||||
<menuitem id="menu_fp_shopfloor_stations_cfg"
|
||||
name="Shopfloor Stations"
|
||||
|
||||
Reference in New Issue
Block a user