feat(plating): hide quality smart buttons at zero + order-scope NCR/CAPA counts
On the sale.order and fp.job forms, the Holds/Checks/NCRs/CAPAs/RMAs quality smart buttons (and the SO WO button) now hide when their count is 0, so the row shows only quality work that exists. NCR and CAPA counts are re-scoped from customer-wide to order/job via a shared _fp_quality_ncr_ids() helper (NCRs reached through the order's RMAs + the order/job's holds), so each badge and the list its button opens always agree. Also aligned the job RMA button's list domain to its (already SO-scoped) count. Reverts the Sub-12 Phase D "always-visible (zero is OK)" choice back to the module's documented hide-at-zero convention. - fusion_plating_quality 19.0.8.1.0 -> 19.0.8.2.0 - fusion_plating_jobs 19.0.12.4.0 -> 19.0.12.5.0 Deployed + verified on entech (badge == helper across sampled SOs/jobs). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
# License OPL-1 (Odoo Proprietary License v1.0)
|
||||
{
|
||||
'name': 'Fusion Plating — Native Jobs',
|
||||
'version': '19.0.12.4.0',
|
||||
'version': '19.0.12.5.0',
|
||||
'category': 'Manufacturing/Plating',
|
||||
'summary': 'Native plating job model — replaces mrp.production / mrp.workorder bridge.',
|
||||
'author': 'Nexa Systems Inc.',
|
||||
|
||||
@@ -16,25 +16,32 @@
|
||||
<field name="model">fp.job</field>
|
||||
<field name="inherit_id" ref="view_fp_job_form_jobs_inherit"/>
|
||||
<field name="arch" type="xml">
|
||||
<!-- Hidden at a count of 0 so the row shows only quality work
|
||||
that actually exists on this job (2026-06-04). -->
|
||||
<xpath expr="//div[@name='button_box']" position="inside">
|
||||
<button name="action_view_fp_holds" type="object"
|
||||
class="oe_stat_button" icon="fa-hand-paper-o">
|
||||
class="oe_stat_button" icon="fa-hand-paper-o"
|
||||
invisible="fp_qc_hold_count == 0">
|
||||
<field name="fp_qc_hold_count" widget="statinfo" string="Holds"/>
|
||||
</button>
|
||||
<button name="action_view_fp_checks" type="object"
|
||||
class="oe_stat_button" icon="fa-check-square-o">
|
||||
class="oe_stat_button" icon="fa-check-square-o"
|
||||
invisible="fp_qc_check_count == 0">
|
||||
<field name="fp_qc_check_count" widget="statinfo" string="Checks"/>
|
||||
</button>
|
||||
<button name="action_view_fp_ncrs" type="object"
|
||||
class="oe_stat_button" icon="fa-exclamation-triangle">
|
||||
class="oe_stat_button" icon="fa-exclamation-triangle"
|
||||
invisible="fp_qc_ncr_count == 0">
|
||||
<field name="fp_qc_ncr_count" widget="statinfo" string="NCRs"/>
|
||||
</button>
|
||||
<button name="action_view_fp_capas" type="object"
|
||||
class="oe_stat_button" icon="fa-wrench">
|
||||
class="oe_stat_button" icon="fa-wrench"
|
||||
invisible="fp_qc_capa_count == 0">
|
||||
<field name="fp_qc_capa_count" widget="statinfo" string="CAPAs"/>
|
||||
</button>
|
||||
<button name="action_view_fp_rmas" type="object"
|
||||
class="oe_stat_button" icon="fa-undo">
|
||||
class="oe_stat_button" icon="fa-undo"
|
||||
invisible="fp_qc_rma_count == 0">
|
||||
<field name="fp_qc_rma_count" widget="statinfo" string="RMAs"/>
|
||||
</button>
|
||||
</xpath>
|
||||
|
||||
@@ -15,11 +15,15 @@
|
||||
<field name="inherit_id" ref="sale.view_order_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<!-- After the legacy Manufacturing button (added by bridge_mrp).
|
||||
Always visible (no invisible-on-zero) so users can navigate
|
||||
from the SO even before jobs exist. -->
|
||||
Hidden at a count of 0 (2026-06-04) so the SO button row only
|
||||
shows what has data. A confirmed plating SO always has >=1 WO,
|
||||
so this only hides the button on drafts/quotations with no job
|
||||
yet; the header "Work Order" button below still reaches jobs
|
||||
when one is open. -->
|
||||
<xpath expr="//div[hasclass('oe_button_box')]" position="inside">
|
||||
<button name="action_view_fp_jobs" type="object"
|
||||
class="oe_stat_button" icon="fa-cogs">
|
||||
class="oe_stat_button" icon="fa-cogs"
|
||||
invisible="x_fc_fp_job_count == 0">
|
||||
<field name="x_fc_fp_job_count" widget="statinfo"
|
||||
string="WO"/>
|
||||
</button>
|
||||
|
||||
Reference in New Issue
Block a user