Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

17.0 mig web tree many2one clickable mwi #5

Merged

Conversation

maciej-wichowski
Copy link

@maciej-wichowski maciej-wichowski commented Mar 22, 2024

No description provided.

pedrobaeza and others added 30 commits March 22, 2024 12:35
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
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: web-16.0/web-16.0-web_tree_many2one_clickable
Translate-URL: https://translation.odoo-community.org/projects/web-16-0/web-16-0-web_tree_many2one_clickable/
Copy link

codecov bot commented Mar 22, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 100.00%. Comparing base (481ce4e) to head (1f77cf0).
Report is 32 commits behind head on 17.0-versada.

Additional details and impacted files
@@              Coverage Diff               @@
##           17.0-versada        #5   +/-   ##
==============================================
  Coverage        100.00%   100.00%           
==============================================
  Files                11        11           
  Lines                75        75           
  Branches              2         2           
==============================================
  Hits                 75        75           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

}
TreeMany2oneClickableButton.template = "web_tree_many2one_clickable.Button";

Object.assign(ListRenderer.components, {TreeMany2oneClickableButton});

Choose a reason for hiding this comment

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

Was this done originally? Shouldn't we use "patch" to modify existing component?

Copy link
Author

Choose a reason for hiding this comment

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

It is a part of the code included in migration to v16. I will investigate if we can use patch

Copy link
Author

Choose a reason for hiding this comment

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

@oerp-odoo I couldn't find any examples of extending components of existing class via patch. But Object.assign is quite commonly used [example]

Copy link

Choose a reason for hiding this comment

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

suggest not to change if it works, but opportunity to try understand js specifics:

docs have example for static properties,

But js static properties are not propagated to instances (like in python)..

Still class methods can be patched via prototype (in same docs), maybe components property could also...

}
TreeMany2oneClickableButton.template = "web_tree_many2one_clickable.Button";

Object.assign(ListRenderer.components, {TreeMany2oneClickableButton});
Copy link

Choose a reason for hiding this comment

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

suggest not to change if it works, but opportunity to try understand js specifics:

docs have example for static properties,

But js static properties are not propagated to instances (like in python)..

Still class methods can be patched via prototype (in same docs), maybe components property could also...

@maciej-wichowski maciej-wichowski merged commit bbeb295 into 17.0-versada Mar 25, 2024
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.