Skip to content

[16.0][MIG] web_diagram#3492

Draft
mathben wants to merge 12 commits intoOCA:16.0from
TechnoLibre:16.0_mig_web_diagram
Draft

[16.0][MIG] web_diagram#3492
mathben wants to merge 12 commits intoOCA:16.0from
TechnoLibre:16.0_mig_web_diagram

Conversation

@mathben
Copy link
Copy Markdown

@mathben mathben commented Mar 27, 2026

Migrate from #3491
Overview : #3489

mathben added 12 commits March 26, 2026 18:00
- apply OCA script migration with OpenUpgrade
In Odoo 14, the test bundle was renamed from web.qunit_suite to
web.qunit_suite_tests. The old xpath also referenced kanban_tests.js
which no longer exists at the expected path, causing an install
error. Use expr="." position="inside" for a stable injection.

Generated by Claude Code 2.1.84 model claude-sonnet-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
Odoo 14 validates the type field of ir.ui.view against a selection
list. Without extending the model to add ("diagram", "Diagram"),
installing any module with a diagram view raises:
"Wrong value for ir.ui.view.type: 'diagram'".
Follows the same pattern as OCA web_timeline.

Generated by Claude Code 2.1.84 model claude-sonnet-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
Odoo 14's view postprocessor validates all <field> elements against
the main diagram model via NameManager. Since <node> and <arrow>
each declare their own 'object' model, their child fields must be
validated against that model instead. Without this, installing any
module with a diagram view raises a field-not-found error on the
connector's source/destination fields.

Generated by Claude Code 2.1.84 model claude-sonnet-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
BasicView._processNode traverses all <field> elements in the arch
and looks them up in fv.viewFields (the main model's fields). For
diagram views, <node> and <arrow> fields belong to their own object
models, causing field to be undefined and crashing _getFieldWidgetClass
at field.type. Stop traversal into those tags and guard field lookups
in init against undefined.

Generated by Claude Code 2.1.84 model claude-sonnet-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
ir.ui.view.graph_get() was dropped from Odoo core when the diagram
view was removed in v14. The diagram controller still calls it to
compute node positions and transitions. Port the Odoo 13 implementation
into the module's own ir.ui.view override so the method is available.

Generated by Claude Code 2.1.84 model claude-sonnet-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
odoo.tools.graph was dropped in Odoo 14 along with the diagram view.
Port the Odoo 13 implementation into the module under tools/graph.py
and update the import to use the local copy.

Generated by Claude Code 2.1.84 model claude-sonnet-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
Odoo 15 dropped the `qweb` manifest key and the XML template
inheritance pattern for assets. Assets must now be declared under
the `assets` key in __manifest__.py using named bundles
(web.assets_backend, web.assets_qweb, web.qunit_suite_tests).
Remove the now-obsolete views/web_diagram_templates.xml.

Generated by Claude Code 2.1.84 model claude-sonnet-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
In Odoo 15, NameManager.__init__ no longer accepts a validate flag,
postprocess() was removed in favour of a stack loop inside
_postprocess_view(), and check_view_fields() was renamed to check().
Replace the manual NameManager/postprocess pattern with a wrapper
element passed to _postprocess_view() against the node/arrow object
model, which handles the full processing pipeline correctly.

Generated by Claude Code 2.1.84 model claude-sonnet-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
The legacy web framework (BasicView, AbstractModel, AbstractController,
AbstractRenderer) was removed in Odoo 16. Rewrite all JS files as OWL
components and ES6 classes. Replace web.assets_qweb (dropped in v16)
by including the XML template directly in web.assets_backend. Replace
the deprecated name_get() call with display_name. Bump version to
16.0.1.0.0.

Generated by Claude Code 2.1.84 model claude-sonnet-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
Provides developer and user reference for the diagram view module:
architecture overview, arch attribute reference, Odoo 16 migration
notes, view switcher limitation with recommended workaround, and
JSON-RPC endpoint signature.

Generated by Claude Code 2.1.85 model claude-sonnet-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants