mirror of
https://github.com/OCA/web.git
synced 2025-02-22 13:21:25 +02:00
2f5ddbfd088bca3be7b7bfccde7544ffe3806775
Description
-----------
This commit fixes incorrect bechavior (error thrown) in case when
additional `domain` provided to action (`ir.actions.act_window`)
that displays view with search panel enabled.
Before this commit
------------------
For example we have following models:
- My Category
- My Model
And in category view, we have stat-button that display number of records
of records in this category. On click, it have to open view for My
Model, with domain like `[('category_id', '=', 42)]`.
In this case, following error will be raised:
```tracaback
Error:
Odoo Server Error
Traceback (most recent call last):
...
File "/opt/odoo/custom_addons/web_view_searchpanel/models/base.py", line 60, in search_panel_select_range
hierarchical_naming=False).search_read(model_domain, fields),
File "/opt/odoo/odoo/odoo/models.py", line 4615, in search_read
records = self.search(domain or [], offset=offset, limit=limit, order=order)
File "/opt/odoo/odoo/odoo/models.py", line 1581, in search
res = self._search(args, offset=offset, limit=limit, order=order, count=count)
File "/opt/odoo/odoo/odoo/models.py", line 4147, in _search
query = self._where_calc(args)
File "/opt/odoo/odoo/odoo/models.py", line 3939, in _where_calc
e = expression.expression(domain, self)
File "/opt/odoo/odoo/odoo/osv/expression.py", line 673, in __init__
self.parse()
File "/opt/odoo/odoo/odoo/osv/expression.py", line 854, in parse
raise ValueError("Invalid field %r in leaf %r" % (left, str(leaf)))
ValueError: Invalid field 'category_id' in leaf "<osv.ExtendedLeaf: ('category_id', '=', 26) on bureaucrat_knowledge_category (ctx: )>"
```
Diagnostics
-----------
It seems that model domain was passed to comodel, thus system cannot
find field related to model in comodel. See code
(web_view_searchpanel/models/base.py", line 60, in
search_panel_select_range)
As tested, the `search_domain` causes this bug.
But if we look at implementation of same method
(`search_panel_select_range`) in Odoo 13.0 (see
[code](https://github.com/odoo/odoo/blob/13.0/addons/web/models/models.py#L214))
then we can see, that there is only empty domain applied for search.
Solution
--------
It seems, that variable `model_domain` could be simply removed, and
we could do the search in comodel without any extra domain in this case.
So, this commit, only makes imlementation of this method look same as in
Odoo 13.0
After this commit
-----------------
Everything is working fine.
Web addons for Odoo
This project aims to deal with modules related to the webclient of Odoo. You'll find modules that:
- Add facilities to the UI
- Add widgets
- Ease the import/export features
- Generally add clientside functionality
Description
Languages
JavaScript
69.3%
HTML
24.2%
Python
3.9%
SCSS
1.8%
CSS
0.8%
