1. Pulse animation on the active step indicator:
- New @keyframes fp-pulse-teal / fp-pulse-amber in stepper.scss
- Applied to .o_fp_step_active / _warn and .o_fp_timeline_active
.o_fp_timeline_dot so dashboard stepper + detail-page timeline
breathe in sync. 1.8s ease-in-out, ring grows 4px -> 9px and
fades 20% -> 6% opacity. Two color variants so QC (warn) keeps
its amber meaning.
- prefers-reduced-motion: reduce kills the animation for users
who opted out.
2. Repeat Order button on /my/jobs/<id> detail page:
- New POST /my/jobs/<id>/repeat route that creates a draft
fusion.plating.quote.request seeded with the user's contact +
the job's quantity, posts a chatter link back to the original
job, redirects to the new RFQ for review/submit.
- Button placed in the detail footer next to 'Back to all jobs',
CSRF-protected via the form's csrf_token hidden field.
3. Dashboard expanded from 3 secondary panels to 5 (Recent Quote
Requests + Recent Purchase Orders added) so every previously-
designed customer page is reachable from /my/home.
- Auto-fit grid: 3+2 / 2+2+1 / single column depending on width.
- Every panel header gets a 'View all ->' link to its list page
(Quote Requests / POs / Certs / Deliveries / Invoices).
- Empty-state for Quote Requests gets an inline 'Get a quote ->'
CTA so first-time customers know where to start.
Version bump: 19.0.3.4.0 -> 19.0.3.5.0.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
91 lines
3.4 KiB
Python
91 lines
3.4 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 — Customer Portal',
|
|
'version': '19.0.3.5.0',
|
|
'category': 'Manufacturing/Plating',
|
|
'summary': 'Customer-facing portal for plating shops: online RFQ, job status, '
|
|
'CoC downloads, invoice access.',
|
|
'description': """
|
|
Fusion Plating — Customer Portal
|
|
================================
|
|
|
|
Part of the Fusion Plating product family by Nexa Systems Inc.
|
|
|
|
This module extends the Odoo portal with plating-specific customer-facing
|
|
features so a shop's customers can self-serve common requests:
|
|
|
|
* Online Request for Quote (RFQ) submission with drawing uploads
|
|
* Track production job status (received → in process → quality → shipped)
|
|
* Download Certificates of Conformance (CoC) for completed jobs
|
|
* Reference invoice numbers and tracking shipments
|
|
* Submit complaints and follow up on resolution
|
|
|
|
Design principles
|
|
-----------------
|
|
1. Extends, never modifies, the fusion_plating core.
|
|
2. Reuses Odoo's standard portal layout, breadcrumbs, and pager.
|
|
3. Theme-aware: respects portal light/dark theme via Bootstrap CSS variables.
|
|
4. No client-specific strings; all labels are translatable.
|
|
5. Works on both Odoo Community and Enterprise editions.
|
|
|
|
Copyright (c) 2026 Nexa Systems Inc. All rights reserved.
|
|
""",
|
|
'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',
|
|
'fusion_plating_configurator',
|
|
'portal',
|
|
'website',
|
|
'mail',
|
|
'sale_management',
|
|
'account',
|
|
'stock',
|
|
],
|
|
'data': [
|
|
'security/fp_portal_security.xml',
|
|
'security/ir.model.access.csv',
|
|
'data/fp_sequence_data.xml',
|
|
'views/fp_portal_macros.xml',
|
|
'views/fp_quote_request_views.xml',
|
|
'views/fp_portal_dashboard.xml',
|
|
'views/fp_portal_templates.xml',
|
|
'views/fp_portal_configurator_templates.xml',
|
|
'views/fp_portal_breadcrumbs.xml',
|
|
'views/fp_sale_order_portal.xml',
|
|
'views/fp_menu.xml',
|
|
],
|
|
'assets': {
|
|
'web.assets_frontend': [
|
|
# Tokens MUST be first so every later file sees the variables.
|
|
'fusion_plating_portal/static/src/scss/_fp_portal_tokens.scss',
|
|
# Phase 1 — button system
|
|
'fusion_plating_portal/static/src/scss/fp_portal_buttons.scss',
|
|
# Phase 2 — badges, cards, stepper, dashboard layout
|
|
'fusion_plating_portal/static/src/scss/fp_portal_badges.scss',
|
|
'fusion_plating_portal/static/src/scss/fp_portal_cards.scss',
|
|
'fusion_plating_portal/static/src/scss/fp_portal_stepper.scss',
|
|
'fusion_plating_portal/static/src/scss/fp_portal_dashboard.scss',
|
|
'fusion_plating_portal/static/src/scss/fp_portal_timeline.scss',
|
|
# Catch-all legacy rules (last)
|
|
'fusion_plating_portal/static/src/scss/fusion_plating_portal.scss',
|
|
'fusion_plating_portal/static/src/js/fp_rfq_form.js',
|
|
],
|
|
},
|
|
'demo': [
|
|
'data/fp_demo_portal_data.xml',
|
|
],
|
|
'installable': True,
|
|
'application': False,
|
|
'auto_install': False,
|
|
}
|