Skip to Content
Menu
v 14.0 Third Party 498
Download for v 14.0 Deploy on Odoo.sh
Availability
Odoo Online
Odoo.sh
On Premise
Lines of code 112
Technical Name base_search_custom_field_filter
LicenseAGPL-3
Websitehttps://github.com/OCA/server-ux
Versions 12.0 13.0 14.0 15.0 16.0 17.0 18.0
You bought this module and need support? Click here!

Add custom filters for fields via UI

Beta License: AGPL-3 OCA/server-ux Translate me on Weblate Try me on Runboat

This module allows to define custom filters in the search views for an specific field belonging to the document or any other related document.

This nature makes the definition quite technical, but once done, it adds the element in the UI for regular user use.

Table of contents

Configuration

  1. Go to Settings > Technical > User Interface > Custom Field Filters.
  2. Create a new record, and define following information:
    • The Model for which you are defining the filter. It will appear in all the search views of this model.
    • The label you want to see on the search line on the Name field. This field allows translations for proper UI in different languages.
    • The Expression, which is the field chain string with dot notation. Examples: product_id, product_id.seller_ids.name, partner_id.lang.
    • Optionally, you can fill Position After for indicating after which existing field (technical name) the filter will appear. If empty or not found, the filter will be added at the end.
  3. You can reorder records for determining sorting for multiple filters for the same model with the arrow handle in the left part.

Usage

  1. Go to the menu entry for which you have defined the custom field filter.
  2. On the search bar, type anything.
  3. In the filter list, you will see the line for the element you have defined.

As demo data, a custom field filter is included for sample purposes:

https://raw.githubusercontent.com/OCA/server-ux/14.0/base_search_custom_field_filter/static/src/img/ir_ui_custom_field_filter.png

Steps for trying this sample:

  1. Install contacts module.
  2. Go to Contacts.
  3. Type “english” and you’ll find the filter “Language” at the end:
https://raw.githubusercontent.com/OCA/server-ux/14.0/base_search_custom_field_filter/static/src/img/contact_search.png

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed feedback.

Do not contact contributors directly about support or help with technical issues.

Credits

Authors

  • Tecnativa

Contributors

  • Tecnativa:
    • Carlos Dauden
    • Pedro M. Baeza

Maintainers

This module is maintained by the OCA.

Odoo Community Association

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

Current maintainer:

pedrobaeza

This module is part of the OCA/server-ux project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author, please use the developer contact information. They can usually be found in the description.
Please choose a rating from 1 to 5 for this module.
There are no ratings yet!
not work
by
Samuel Martin Martin Quispe Valdivia
on 5/17/21, 7:29 PM

Error:
Odoo Server Error

Traceback (most recent call last):
  File "/opt/odoo/odoo/odoo/addons/base/models/ir_http.py", line 237, in _dispatch
    result = request.dispatch()
  File "/opt/odoo/odoo/odoo/http.py", line 682, in dispatch
    result = self._call_function(**self.params)
  File "/opt/odoo/odoo/odoo/http.py", line 358, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/opt/odoo/odoo/odoo/service/model.py", line 94, in wrapper
    return f(dbname, *args, **kwargs)
  File "/opt/odoo/odoo/odoo/http.py", line 346, in checked_call
    result = self.endpoint(*a, **kw)
  File "/opt/odoo/odoo/odoo/http.py", line 911, in __call__
    return self.method(*args, **kw)
  File "/opt/odoo/odoo/odoo/http.py", line 530, in response_wrap
    response = f(*args, **kw)
  File "/opt/odoo/odoo/addons/web/controllers/main.py", line 1317, in search_read
    return self.do_search_read(model, fields, offset, limit, domain, sort)
  File "/opt/odoo/odoo/addons/web/controllers/main.py", line 1336, in do_search_read
    return Model.web_search_read(domain, fields, offset=offset, limit=limit, order=sort)
  File "/opt/odoo/odoo/addons/web/models/models.py", line 53, in web_search_read
    records = self.search_read(domain, fields, offset=offset, limit=limit, order=order)
  File "/opt/odoo/odoo/odoo/models.py", line 4781, in search_read
    records = self.search(domain or [], offset=offset, limit=limit, order=order)
  File "/opt/odoo/odoo/odoo/models.py", line 1697, in search
    res = self._search(args, offset=offset, limit=limit, order=order, count=count)
  File "/opt/odoo/odoo/odoo/models.py", line 4453, in _search
    query = self._where_calc(args)
  File "/opt/odoo/odoo/odoo/models.py", line 4209, in _where_calc
    return expression.expression(domain, self).query
  File "/opt/odoo/odoo/odoo/osv/expression.py", line 438, in __init__
    self.parse()
  File "/opt/odoo/odoo/odoo/osv/expression.py", line 640, in parse
    raise ValueError("Invalid field %s.%s in leaf %s" % (model._name, path[0], str(leaf)))
Exception

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/opt/odoo/odoo/odoo/http.py", line 638, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/opt/odoo/odoo/odoo/http.py", line 314, in _handle_exception
    raise exception.with_traceback(None) from new_cause
ValueError: Invalid field product.template.ir_ui_custom_filter_1 in leaf ('ir_ui_custom_filter_1', 'ilike', 'Antitusivo')