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_m2x_options Migration to 17.0 #2848

Closed
wants to merge 91 commits into from
Closed

Conversation

mohs8421
Copy link

Adding all files from 16.0
Modifications:

  • Updated version to refer to Odoo 17.0
  • Updated calls to patch(…) in js files to be compatible with Odoo 17.0

@mohs8421
Copy link
Author

There are some errors about the extractProps parts, about which I'm not sure how these should be handled.

@pedrobaeza
Copy link
Member

Thanks for the contribution.

Please preserve commit history following technical method explained in https://github.com/OCA/maintainer-tools/wiki/Migration-to-version-17.0.

If the jump is between several versions, you have to modify the source branch in the main command to accommodate it to this circumstance.

Check also pre-commit: https://github.com/OCA/maintainer-tools/wiki/Install-pre-commit

@mohs8421 mohs8421 mentioned this pull request Jun 13, 2024
26 tasks
@mohs8421
Copy link
Author

thanks @pedrobaeza for pointing me into the right direction regarding the general requirements. I hope to have covered everything now.
I also spend some time refactoring to reduce the complexity of a function, which was commented about by the checker.
Nevertheless I still believe this module lacks some general client side testing. However I honestly know too little about it to create reasonable tests.

@mohs8421
Copy link
Author

The client now complains about this optional module existence check.
Obviously the API here has changed too, however I did not find a document telling me how to resolve this instead.

const installed_mass_mailing = await odoo.ready(
            "@mass_mailing/js/mailing_m2o_filter"
        );

@pedrobaeza
Copy link
Member

That one should be added in a glue module depending on both this one and mass_mailing.

@CRogos
Copy link
Contributor

CRogos commented Jun 18, 2024

Hi @mohs8421 , I am not an expert in the odoo frontend code either, and also run into several issues on this module.

The commit history is not correct yet. Beside the history commits, there should be only 2 new commits. This would also make your changes more readable.
[UPD] web_m2x_options: applying style fixes
[MIG] web_m2x_options Migration to 17.0

The yellow marked commits are samples which should be squashed according to:
https://github.com/OCA/maintainer-tools/wiki/Merge-commits-in-pull-requests#mergesquash-the-commits-generated-by-bots-or-weblate

image

@mohs8421 mohs8421 force-pushed the 17.0 branch 2 times, most recently from 69f84e6 to a77afc6 Compare June 18, 2024 11:24
@mohs8421
Copy link
Author

Did as you requested, however now this PR looks a little bit cluttered with seemingly a lot of unrelated changes.

@pedrobaeza
Copy link
Member

You have to do a rebase, not a pull.

Nicolas JEUDY and others added 19 commits June 18, 2024 13:38
- Add static/description/index.html

fix: use include instead of extend in js function inheritance.

fix: not overwriting the existing object references with the result of the include

fix: update name according to new module name.

fix: error when displaying many2many field without options defined.
[ADD] support 'no_open_edit' on many2one
[FIX] typos
…and make the module installable [MIG] adapt form.js to the new API. [FIX] Fix bug mentioned in pull OCA#262. [MIG] Make the module installable.
…th `options={'open': True}` it always open the first element with this fix it will open the right one
* [FIX][web_m2x_options] Fix Qweb templates.

They were trying to replace non-existing elements, and this was being logged to console:

    Can't find "a.oe_m2o_cm_button" when extending template FieldMany2One
    Can't find "span.badge" when extending template FieldMany2ManyTag

* Raise version correctly.

* [FIX] Make many2many_tags tag deletion work again

* Correct replacement of event

Instead of overwriting all events from upstream widget, better just overwrite the one you need and inherit the rest.
* fix unecessary calls

Do check_access_rights and disable_quick_create calls only once per field.
`web_m2x_options` is supposed to render fields in the context of a form or tree view, where domains can safely be applied because there's a main record that includes a context.

However, when installing along with `web_advanced_search_x2x`, they produce an incompatibility when a x2x field's domain is defined and depends on the current record's context, because a search view has no notion of a *current record*.

The fix is simple: try to do as usual, and if it fails, try without the field's domain.

Without this patch, an exception like this would be raised, i.e. when both addons are installed and you are trying to search project tasks by stage:

``` Error: NameError: name 'project_id' is not defined
http://localhost/web/static/lib/py.js/lib/py.js:370# Traceback:# Changes to be committed:
PY_ensurepy@http://localhost/web/static/lib/py.js/lib/py.js:370:19# modified: static/src/js/form.js
py.evaluate@http://localhost/web/static/lib/py.js/lib/py.js:1340:20#
py.evaluate@http://localhost/web/static/lib/py.js/lib/py.js:1397:35
py.evaluate@http://localhost/web/static/lib/py.js/lib/py.js:1409:34
py.eval@http://localhost/web/static/lib/py.js/lib/py.js:1453:16
eval_domains/<@http://localhost/web/static/src/js/framework/pyeval.js:869:39
_.forEach@http://localhost/web/static/lib/underscore/underscore.js:145:9
_.mixin/</_.prototype[name]@http://localhost/web/static/lib/underscore/underscore.js:1484:29
eval_domains@http://localhost/web/static/src/js/framework/pyeval.js:860:5
eval_domains/<@http://localhost/web/static/src/js/framework/pyeval.js:873:39
_.forEach@http://localhost/web/static/lib/underscore/underscore.js:145:9
_.mixin/</_.prototype[name]@http://localhost/web/static/lib/underscore/underscore.js:1484:29
eval_domains@http://localhost/web/static/src/js/framework/pyeval.js:860:5
eval_domains/<@http://localhost/web/static/src/js/framework/pyeval.js:873:39
_.forEach@http://localhost/web/static/lib/underscore/underscore.js:145:9
_.mixin/</_.prototype[name]@http://localhost/web/static/lib/underscore/underscore.js:1484:29
eval_domains@http://localhost/web/static/src/js/framework/pyeval.js:860:5
pyeval@http://localhost/web/static/src/js/framework/pyeval.js:977:16
eval_arg@http://localhost/web/static/src/js/framework/pyeval.js:988:16
ensure_evaluated@http://localhost/web/static/src/js/framework/pyeval.js:1011:21
call@http://localhost/web/static/src/js/framework/data_model.js:56:9
name_search@http://localhost/web/static/src/js/framework/data.js:537:16
get_search_result@http://localhost/web_m2x_options/static/src/js/form.js:130:50
OdooClass.extend/Class.include/</prototype[name]</<@http://localhost/web/static/src/js/framework/class.js:122:35
source@http://localhost/web/static/src/js/views/form_relational_widgets.js:271:17
_search@http://localhost/web/static/lib/jquery.ui/jquery-ui.js:6823:3
$.widget/</proxiedPrototype[prop]</<@http://localhost/web/static/lib/jquery.ui/jquery-ui.js:415:19
search@http://localhost/web/static/lib/jquery.ui/jquery-ui.js:6815:10
$.widget/</proxiedPrototype[prop]</<@http://localhost/web/static/lib/jquery.ui/jquery-ui.js:415:19
$.widget.bridge/$.fn[name]/<@http://localhost/web/static/lib/jquery.ui/jquery-ui.js:508:19
each@http://localhost/web/static/lib/jquery/jquery.js:383:49
each@http://localhost/web/static/lib/jquery/jquery.js:136:24
$.widget.bridge/$.fn[name]@http://localhost/web/static/lib/jquery.ui/jquery-ui.js:494:4
render_editable/<@http://localhost/web/static/src/js/views/form_relational_widgets.js:189:21
dispatch@http://localhost/web/static/lib/jquery/jquery.js:4640:50
add/elemData.handle@http://localhost/web/static/lib/jquery/jquery.js:4309:41
```
web_m2x_options: Fix usage for non-admins

web_m2x_options: Reduce rpc calls

web_m2x_options: Update manifest and readme
nguyenhk and others added 25 commits June 18, 2024 13:38
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: web-15.0/web-15.0-web_m2x_options
Translate-URL: https://translation.odoo-community.org/projects/web-15-0/web-15-0-web_m2x_options/
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: web-16.0/web-16.0-web_m2x_options
Translate-URL: https://translation.odoo-community.org/projects/web-16-0/web-16-0-web_m2x_options/
Currently translated at 100.0% (14 of 14 strings)

Translation: web-16.0/web-16.0-web_m2x_options
Translate-URL: https://translation.odoo-community.org/projects/web-16-0/web-16-0-web_m2x_options/de/
Instead of calling interactively to the server to get the options, they are stored at the beginning of the session.
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: web-16.0/web-16.0-web_m2x_options
Translate-URL: https://translation.odoo-community.org/projects/web-16-0/web-16-0-web_m2x_options/
Currently translated at 100.0% (15 of 15 strings)

Translation: web-16.0/web-16.0-web_m2x_options
Translate-URL: https://translation.odoo-community.org/projects/web-16-0/web-16-0-web_m2x_options/pt_BR/
Adding all files from 16.0
Modifications:
 - Updated version to refer to Odoo 17.0
 - Updated calls to patch(…) in js files to be compatible with Odoo 17.0
 - modified super.. calls
 - resolved a few import issues
Adding web_m2x_options to README.md again
Refactoring relational_utils.esm.js to match with function complexity constraints
Extracting connecting module for mass_mailing code to replace conditional client side manipulation
@CRogos
Copy link
Contributor

CRogos commented Jun 18, 2024

@mohs8421 think this PR is more promising: #2847
Could you make a review and check with your knowledge from the migration?

@mohs8421
Copy link
Author

@mohs8421 think this PR is more promising: #2847 Could you make a review and check with your knowledge from the migration?

thanks for hinting me to this development, I will discontinue my work here, as the other PR looks to be ahead in regards to the necessary changes, and hope that what I have done here might be helpful to @dyngnijs in some way.

@mohs8421 mohs8421 closed this Jun 18, 2024
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.