Skip to content

[19.0][MIG] web_tree_many2one_clickable: Migration to 19.0#3464

Open
namtnt wants to merge 31 commits intoOCA:19.0from
komit-consulting:19.0-mig-web_tree_many2one_clickable
Open

[19.0][MIG] web_tree_many2one_clickable: Migration to 19.0#3464
namtnt wants to merge 31 commits intoOCA:19.0from
komit-consulting:19.0-mig-web_tree_many2one_clickable

Conversation

@namtnt
Copy link

@namtnt namtnt commented Mar 3, 2026

Limitation:
The web_tree_many2one_clickable module injects the button by patching a single base template web.ListRenderer.RecordRow. However, Odoo 19's Account, Sale, and Purchase modules use specialized list view renderers (account.SectionAndNoteListRenderer.RecordRow, sale.ListRenderer.RecordRow) for their order line fields, which are compiled separately from the base. So the button will be missing from the list view of these form views.

pedrobaeza and others added 30 commits March 3, 2026 13:50
Clickable many2one fields for tree views
========================================

This addon provides a separate widget to allow many2one fields in a tree view
open the linked resource when clicking on their name.

You can also define a system parameter to have this behaviour for all the
existing many2one fields in tree views.

Installation
============

Install it the regular way.

Configuration
=============

If you want to have all many2one fields clickable by default, you have to
define in *Configuration > Technical > Parameters > System parameters*, a new
parameter with name `web_tree_many2one_clickable.default` and with value
`true`.

Usage
=====

For the widget option, you need to add `widget="many2one_clickable"` attribute
in the XML field definition in the tree view.

For example:

`<field name="partner_id" widget="many2one_clickable" />`

will open the linked partner in a form view.

Known issues / Roadmap
======================

* You cannot deactivate clickable behaviour for an specific many2one field if
  you configure the system parameter.
* The value of the system parameter is retrieved for each many2one field
  present in the view instead of only once.
If a list contains a node which is not a field (e.g. a button), it will
not be found in the fields so we'll have an error trying to get 'type'
from undefined.
Includes some manual fixes to silent ESLint warnings.
When for instance a form_view_ref context is defined on a field in a specific tree view, the context should also be passed when opening the form.
Clicking on a field with context like this `{'default_product_id': product_id}` doesn't throws an error.
[MIG] web_tree_many2one_clickable: Migration to 16.0

[MIG] web_tree_many2one_clickable: Migration to 16.0

[MIG] web_tree_many2one_clickable: Migration to 16.0
Copy link
Contributor

@alexey-pelykh alexey-pelykh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the migration!

The code is identical to 18.0 and all CI checks pass -- clean port. The patch(ListRenderer.prototype, ...) pattern, useService hook, and the web.ListRenderer.RecordRow template extension all work correctly in 19.0.

One minor thing (pre-existing, not introduced by this PR): the doAction call uses target: "target", which is not a recognized ir.actions.act_window target value (current, new, inline, fullscreen, main). It works because Odoo silently falls back to the default, but it would be cleaner as target: "current". Not blocking -- can be addressed separately if desired.

LGTM.

@namtnt namtnt force-pushed the 19.0-mig-web_tree_many2one_clickable branch from 172a227 to f392b74 Compare March 6, 2026 13:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.