Add custom filters for fields via UI

base_search_custom_field_filter
REPOSITORY
REPOSITORYOCA/server-ux
GIT
GIThttps://github.com/OCA/server-ux.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-ux/tree/19.0/base_search_custom_field_filter
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYUsability
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), Amitaujas
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), Amitaujas
COMMITTERS
COMMITTERSOCA-git-bot, sergio, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/server-ux
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:40:49
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - web
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
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.

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
view_ir_ui_custom_field_filter_form ir.ui.custom.field.filter list New
Models touched (2)

New fields (0)

No new fields.

Public methods (2)
  • get_view(self, view_id=None, view_type='form', **options)
    @api.model
    Inject fields field in search views.
  • get_views(self, views, options=None)
    @api.model
    Inject fake field definition for having custom filters available.

New fields (6)
  • expression Char
    required=True
  • model_id Many2one → ir.model
    comodel_name='ir.model' ondelete='cascade' required=True
  • model_name Char
    index=True readonly=True related='model_id.model' store=True string='Model name'
  • name Char
    required=True translate=True
  • position_after Char
    help='Optional field name for putting the filter after that one. If empty or not found, it will be put at the end.'
  • sequence Integer
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/server-ux
GIT
GIThttps://github.com/OCA/server-ux.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-ux/tree/18.0/base_search_custom_field_filter
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYUsability
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), Amitaujas
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), Amitaujas
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, Carlos Roca, absal-smile, abdessamad salim, Abdessamad SALIM
WEBSITE
WEBSITEhttps://github.com/OCA/server-ux
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:16
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - web
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
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.

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
view_ir_ui_custom_field_filter_form ir.ui.custom.field.filter list New
Models touched (2)

New fields (0)

No new fields.

Public methods (2)
  • get_view(self, view_id=None, view_type='form', **options)
    @api.model
    Inject fields field in search views.
  • get_views(self, views, options=None)
    @api.model
    Inject fake field definition for having custom filters available.

New fields (6)
  • expression Char
    required=True
  • model_id Many2one → ir.model
    comodel_name='ir.model' ondelete='cascade' required=True
  • model_name Char
    index=True readonly=True related='model_id.model' store=True string='Model name'
  • name Char
    required=True translate=True
  • position_after Char
    help='Optional field name for putting the filter after that one. If empty or not found, it will be put at the end.'
  • sequence Integer
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/server-ux
GIT
GIThttps://github.com/OCA/server-ux.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-ux/tree/17.0/base_search_custom_field_filter
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYUsability
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), Amitaujas
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), Amitaujas
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, chien
WEBSITE
WEBSITEhttps://github.com/OCA/server-ux
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:08
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - web
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
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.

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
view_ir_ui_custom_field_filter_form ir.ui.custom.field.filter tree New
Models touched (2)

New fields (0)

No new fields.

Public methods (2)
  • get_view(self, view_id=None, view_type='form', **options)
    @api.model
    Inject fields field in search views.
  • get_views(self, views, options=None)
    @api.model
    Inject fake field definition for having custom filters available.

New fields (6)
  • expression Char
    required=True
  • model_id Many2one → ir.model
    comodel_name='ir.model' ondelete='cascade' required=True
  • model_name Char
    index=True readonly=True related='model_id.model' store=True string='Model name'
  • name Char
    required=True translate=True
  • position_after Char
    help='Optional field name for putting the filter after that one. If empty or not found, it will be put at the end.'
  • sequence Integer
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/server-ux
GIT
GIThttps://github.com/OCA/server-ux.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-ux/tree/16.0/base_search_custom_field_filter
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYUsability
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), Amitaujas
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), Amitaujas
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, CarlosRoca13, AmitaUjas
WEBSITE
WEBSITEhttps://github.com/OCA/server-ux
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:53
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - web
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
view_ir_ui_custom_field_filter_form ir.ui.custom.field.filter tree New
Models touched (2)

New fields (0)

No new fields.

Public methods (2)
  • get_view(self, view_id=None, view_type='form', **options)
    @api.model
    Inject fields field in search views.
  • get_views(self, views, options=None)
    @api.model
    Inject fake field definition for having custom filters available.

New fields (6)
  • expression Char
    required=True
  • model_id Many2one → ir.model
    comodel_name='ir.model' ondelete='cascade' required=True
  • model_name Char
    index=True readonly=True related='model_id.model' store=True string='Model name'
  • name Char
    required=True translate=True
  • position_after Char
    help='Optional field name for putting the filter after that one. If empty or not found, it will be put at the end.'
  • sequence Integer
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/server-ux
GIT
GIThttps://github.com/OCA/server-ux.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-ux/tree/15.0/base_search_custom_field_filter
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYUsability
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, Carlos Roca, Aung Ko Ko Lin
WEBSITE
WEBSITEhttps://github.com/OCA/server-ux
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:39
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - web
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
view_ir_ui_custom_field_filter_form ir.ui.custom.field.filter tree New
Models touched (2)

New fields (0)

No new fields.

Public methods (2)
  • fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
    @api.model
    Inject fields field in search views.
  • load_views(self, views, options=None)
    @api.model
    Inject fake field definition for having custom filters available.

New fields (6)
  • expression Char
    required=True
  • model_id Many2one → ir.model
    comodel_name='ir.model' ondelete='cascade' required=True
  • model_name Char
    index=True readonly=True related='model_id.model' store=True string='Model name'
  • name Char
    required=True translate=True
  • position_after Char
    help='Optional field name for putting the filter after that one. If empty or not found, it will be put at the end.'
  • sequence Integer
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/server-ux
GIT
GIThttps://github.com/OCA/server-ux.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-ux/tree/14.0/base_search_custom_field_filter
VERSION
VERSION 1.1.1
CATEGORY
CATEGORYUsability
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSsbejaoui, OCA Transbot, Víctor Martínez, oca-travis, Weblate, OCA-git-bot, Pierrick Brun
WEBSITE
WEBSITEhttps://github.com/OCA/server-ux
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:41:07
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - web
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
view_ir_ui_custom_field_filter_form ir.ui.custom.field.filter tree New
Models touched (2)

New fields (0)

No new fields.

Public methods (2)
  • fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
    @api.model
    Inject fields field in search views.
  • load_views(self, views, options=None)
    @api.model
    Inject fake field definition for having custom filters available.

New fields (6)
  • expression Char
    required=True
  • model_id Many2one → ir.model
    comodel_name='ir.model' ondelete='cascade' required=True
  • model_name Char
    index=True readonly=True related='model_id.model' store=True string='Model name'
  • name Char
    required=True translate=True
  • position_after Char
    help='Optional field name for putting the filter after that one. If empty or not found, it will be put at the end.'
  • sequence Integer
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/server-ux
GIT
GIThttps://github.com/OCA/server-ux.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-ux/tree/13.0/base_search_custom_field_filter
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYUsability
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSCarlos Dauden, OCA Transbot, oca-travis, Weblate, OCA-git-bot, Jesus Ramoneda
WEBSITE
WEBSITEhttps://github.com/OCA/server-ux
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:34:17
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - web
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
assets_backend assets_backend ir.ui.view qweb Inherits web.assets_backend
view_ir_ui_custom_field_filter_form ir.ui.custom.field.filter tree New
Models touched (2)

New fields (0)

No new fields.

Public methods (2)
  • fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
    @api.model
    Inject fields field in search views.
  • load_views(self, views, options=None)
    @api.model
    Inject fake field definition for having custom filters available.

New fields (6)
  • expression Char
    required=True
  • model_id Many2one → ir.model
    comodel_name='ir.model' required=True
  • model_name Char
    index=True readonly=True related='model_id.model' store=True string='Model name'
  • name Char
    required=True translate=True
  • position_after Char
    help='Optional field name for putting the filter after that one. If empty or not found, it will be put at the end.'
  • sequence Integer
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/server-ux
GIT
GIThttps://github.com/OCA/server-ux.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-ux/tree/12.0/base_search_custom_field_filter
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYUsability
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSPedro M. Baeza, Carlos Dauden, oca-travis, OCA-git-bot
WEBSITE
WEBSITEhttps://github.com/OCA/server-ux
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:22
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - web
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
assets_backend assets_backend ir.ui.view qweb Inherits web.assets_backend
view_ir_ui_custom_field_filter_form ir.ui.custom.field.filter tree New
Models touched (2)

New fields (0)

No new fields.

Public methods (2)
  • fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
    @api.model
    Inject fields field in search views.
  • load_views(self, views, options=None)
    @api.model
    Inject fake field definition for having custom filters available.

New fields (6)
  • expression Char
    required=True
  • model_id Many2one → ir.model
    comodel_name='ir.model' required=True
  • model_name Char
    index=True readonly=True related='model_id.model' store=True string='Model name'
  • name Char
    required=True translate=True
  • position_after Char
    help='Optional field name for putting the filter after that one. If empty or not found, it will be put at the end.'
  • sequence Integer
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/server-ux
GIT
GIThttps://github.com/OCA/server-ux.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-ux/tree/10.0/base_search_custom_field_filter
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYUsability
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSDenis Roussel, oca-travis, OCA-git-bot
WEBSITE
WEBSITEhttps://github.com/OCA/server-ux
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:20:00
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - web
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
assets_backend assets_backend ir.ui.view qweb Inherits web.assets_backend
view_ir_ui_custom_field_filter_form ir.ui.custom.field.filter tree New
Models touched (2)

New fields (0)

No new fields.

Public methods (2)
  • fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
    @api.model
    Inject fields field in search views.
  • load_views(self, views, options=None)
    @api.model
    Inject fake field definition for having custom filters available.

New fields (6)
  • expression Char
    required=True
  • model_id Many2one → ir.model
    comodel_name='ir.model' required=True
  • model_name Char
    index=True readonly=True related='model_id.model' store=True string='Model name'
  • name Char
    required=True translate=True
  • position_after Char
    help='Optional field name for putting the filter after that one. If empty or not found, it will be put at the end.'
  • sequence Integer
Public methods (0)

No public methods.