1. Blanket Sales Order — match legacy field shape. Renamed label from
'Blanket SO' to 'Blanket Sales Order' (matches legacy view), removed
the boolean_toggle widget (defaults to checkbox), and added the
sibling 'block_partial_shipments' field inline (only visible when
blanket is checked, with 'Block partial shipments' helper text).
2. Column widths — give roomier columns where data needs space, tighten
numeric columns. Part Number 230px, Specification min 220px,
Internal Notes min 140px, Qty 60px, Price 80px, Subtotal 90px,
Mask 55px, Bake 130px, Action stack 60px.
3. Stacked DWG / OPEN buttons — new OWL widget FpExpressActionBtns
(express_action_btns.js + .xml) renders both buttons vertically in
ONE column to save horizontal space. Widget binds to a new
action_btns_anchor field (related from part_catalog_id) on the
line. Each button shows tooltip + disabled state when no part is
picked; DWG triggers the native file picker, OPEN navigates to the
part record.
4. Field activation — clicking the cell anywhere now focuses the
input, not just clicking the label. Achieved via:
- cursor: text on .o_fp_xpr_cell
- cursor: pointer on labels
- min-height: 30px on all inputs (larger click target)
- width: 100% propagated through Many2One wrappers (.o-dropdown,
.o-autocomplete) so the input genuinely fills the cell
- box-sizing: border-box so widths are predictable
- Background tint on focus for visual feedback
113 lines
5.3 KiB
Python
113 lines
5.3 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Copyright 2026 Nexa Systems Inc.
|
|
# License OPL-1 (Odoo Proprietary License v1.0)
|
|
# Part of the Fusion Plating product family.
|
|
|
|
{
|
|
'name': 'Fusion Plating — Configurator',
|
|
'version': '19.0.22.0.0',
|
|
'category': 'Manufacturing/Plating',
|
|
'summary': 'Quotation configurator with part catalog, coating configs, and formula-based pricing engine.',
|
|
'description': """
|
|
Fusion Plating — Configurator
|
|
==============================
|
|
|
|
Part of the Fusion Plating product family by Nexa Systems Inc.
|
|
|
|
Provides:
|
|
- Customer part catalog with geometry and material data
|
|
- Coating configuration templates (process, thickness, spec)
|
|
- Pre/post treatment library
|
|
- Formula-based pricing engine with complexity surcharges
|
|
- Configurator sessions that generate sale orders
|
|
- Custom sale order views with plating-specific fields
|
|
""",
|
|
'author': 'Nexa Systems Inc.',
|
|
'website': 'https://www.nexasystems.ca',
|
|
'maintainer': 'Nexa Systems Inc.',
|
|
'support': 'support@nexasystems.ca',
|
|
'license': 'OPL-1',
|
|
'price': 0.00,
|
|
'currency': 'CAD',
|
|
'depends': [
|
|
'fusion_plating',
|
|
'sale_management',
|
|
'fusion_pdf_preview',
|
|
],
|
|
'data': [
|
|
'security/fp_configurator_security.xml',
|
|
'security/ir.model.access.csv',
|
|
'data/fp_configurator_sequence_data.xml',
|
|
'data/fp_sub5_sequence_data.xml',
|
|
'data/fp_part_material_data.xml',
|
|
'views/fp_part_material_views.xml',
|
|
'views/fp_part_catalog_views.xml',
|
|
'views/fp_process_node_part_scoped_views.xml',
|
|
'views/fp_pricing_rule_views.xml',
|
|
'views/fp_quote_configurator_views.xml',
|
|
'views/sale_order_views.xml',
|
|
'views/res_partner_views.xml',
|
|
'views/fp_sale_description_template_views.xml',
|
|
'views/fp_serial_views.xml',
|
|
'wizard/fp_direct_order_wizard_views.xml',
|
|
'views/fp_express_order_views.xml',
|
|
'wizard/fp_add_from_so_wizard_views.xml',
|
|
'wizard/fp_add_from_quote_wizard_views.xml',
|
|
'wizard/fp_quote_promote_wizard_views.xml',
|
|
'wizard/fp_part_catalog_import_wizard_views.xml',
|
|
'wizard/fp_serial_bulk_add_wizard_views.xml',
|
|
'views/fp_configurator_menu.xml',
|
|
'views/fp_so_job_sort_views.xml',
|
|
'data/fp_sale_description_template_data.xml',
|
|
],
|
|
'assets': {
|
|
'web.assets_backend': [
|
|
'fusion_plating_configurator/static/src/scss/fp_job_status_pill.scss',
|
|
'fusion_plating_configurator/static/src/scss/fp_3d_viewer.scss',
|
|
'fusion_plating_configurator/static/src/xml/fp_3d_viewer.xml',
|
|
'fusion_plating_configurator/static/src/js/fp_3d_viewer.js',
|
|
'fusion_plating_configurator/static/src/xml/fp_drawing_preview.xml',
|
|
'fusion_plating_configurator/static/src/js/fp_drawing_preview.js',
|
|
'fusion_plating_configurator/static/src/xml/fp_pdf_inline_preview.xml',
|
|
'fusion_plating_configurator/static/src/js/fp_pdf_inline_preview.js',
|
|
# Sub 3 — part-scoped Process Composer
|
|
'fusion_plating_configurator/static/src/scss/fp_part_process_composer.scss',
|
|
'fusion_plating_configurator/static/src/xml/fp_part_process_composer.xml',
|
|
'fusion_plating_configurator/static/src/js/fp_part_process_composer.js',
|
|
# Express Orders (2026-05-26) — tokens MUST load FIRST so
|
|
# $xpr-* vars are in scope for the consumer SCSS below.
|
|
'fusion_plating_configurator/static/src/scss/_express_tokens.scss',
|
|
'fusion_plating_configurator/static/src/scss/express_order.scss',
|
|
# OWL widgets — multi-row Part cell + click-to-edit Bake pill
|
|
# + stacked DWG/OPEN action buttons
|
|
'fusion_plating_configurator/static/src/js/express_part_cell.js',
|
|
'fusion_plating_configurator/static/src/js/express_bake_pill.js',
|
|
'fusion_plating_configurator/static/src/js/express_action_btns.js',
|
|
'fusion_plating_configurator/static/src/xml/express_part_cell.xml',
|
|
'fusion_plating_configurator/static/src/xml/express_bake_pill.xml',
|
|
'fusion_plating_configurator/static/src/xml/express_action_btns.xml',
|
|
],
|
|
# Register colour-aware SCSS in both bundles so the
|
|
# `@if $o-webclient-color-scheme == dark` branch compiles for
|
|
# the dark variant (see CLAUDE.md "Dark Mode" — Odoo 19 has no
|
|
# runtime DOM toggle, two pre-built bundles).
|
|
'web.assets_web_dark': [
|
|
'fusion_plating_configurator/static/src/scss/fp_job_status_pill.scss',
|
|
'fusion_plating_configurator/static/src/scss/_express_tokens.scss',
|
|
'fusion_plating_configurator/static/src/scss/express_order.scss',
|
|
'fusion_plating_configurator/static/src/js/express_part_cell.js',
|
|
'fusion_plating_configurator/static/src/js/express_bake_pill.js',
|
|
'fusion_plating_configurator/static/src/js/express_action_btns.js',
|
|
'fusion_plating_configurator/static/src/xml/express_part_cell.xml',
|
|
'fusion_plating_configurator/static/src/xml/express_bake_pill.xml',
|
|
'fusion_plating_configurator/static/src/xml/express_action_btns.xml',
|
|
],
|
|
},
|
|
'installable': True,
|
|
'application': False,
|
|
'auto_install': False,
|
|
'post_init_hook': 'post_init_hook',
|
|
'post_load': None,
|
|
'post_upgrade_hook': 'post_upgrade_hook',
|
|
}
|