fix(plating-perms): deploy-time cascade fixes from entech I3
5 fixes discovered during the live deploy to entech LXC 111: 1. pre-migrate.py to rename old configurator's 'Shop Manager' group BEFORE new core 'Shop Manager v2' XML loads (cross-module name collision on res_groups_name_uniq). 2. res_company_views.xml: dropped ref() inside <field domain=> attribute (Odoo 19 view validator interprets it as a field name). 3. sale_order_views.xml: replaced 3 separate xpaths for amount_total / amount_untaxed / amount_tax with a single xpath on tax_totals widget (Odoo 19 sale.view_order_form uses one widget instead of separate fields). 4. fp_cert_security.xml: certificate_type field, not cert_type. FAIR is a separate model so the rule only restricts cert_type='nadcap_cert' now. 5. fp_certificate_views.xml + fp_capa_views.xml + fp_customer_spec_views.xml: stripped user_has_groups() from invisible= / readonly= attrs (Odoo 19 view validator interprets as field name). Model-layer ACLs and ir.rules already enforce the same restrictions. Also fixed res.groups.users -> user_ids in fp_migration.py (Odoo 19 rename, caught when manually invoking _fp_notify_owners post-deploy). CLAUDE.md updated with 4 new rules (13e cross-module name collisions, 13f ref() in domain, 13g tax_totals widget, 13h user_has_groups in attrs). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -39,19 +39,17 @@
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<header>
|
||||
<!-- Phase D5 — Nadcap certs are QM-only to Issue per spec
|
||||
section 2.C (FAIR/Nadcap sign/issue restricted to
|
||||
Quality Manager). Strategy B: single button visible
|
||||
to all when state=draft and cert_type is routine
|
||||
(coc/thickness_report/mill_test/customer_specific);
|
||||
hidden for non-QM when cert_type=nadcap_cert. The
|
||||
ir.rule from Phase C also restricts model writes on
|
||||
FAIR/Nadcap so model-layer enforcement is independent.
|
||||
No separate action_sign exists on this model — Issue
|
||||
is the sign + publish action. -->
|
||||
<!-- Phase D5 — Nadcap-cert restriction enforced at MODEL
|
||||
layer via ir.rule (rule_fp_certificate_nadcap_qm_only
|
||||
in fp_cert_security.xml). Single Issue button visible
|
||||
to all Manager+ when state=draft. Manager clicking
|
||||
Issue on a Nadcap cert gets AccessError from the rule.
|
||||
(Strategy B with user_has_groups() inside invisible=
|
||||
was rejected by Odoo 19 view validator — see CLAUDE.md
|
||||
rule 13f.) -->
|
||||
<button name="action_issue" string="Issue"
|
||||
type="object" class="btn-primary"
|
||||
invisible="state != 'draft' or (certificate_type == 'nadcap_cert' and not user_has_groups('fusion_plating.group_fp_quality_manager'))"/>
|
||||
invisible="state != 'draft'"/>
|
||||
<!-- Print = the same EN report action the gear-menu
|
||||
Print > Certificate of Conformance (English)
|
||||
calls. Routes through fusion_pdf_preview's
|
||||
|
||||
Reference in New Issue
Block a user