Repository
OCA/server-tools · module folder · Try on Runboat
Module version
1.1.1
Category
Uncategorized
Folder size
0.9 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/server-tools
Last tracking update
2026-08-07 08:42:57
Authors
Odoo Community Association (OCA), ADHOC SA, Daniel Reis
Maintainers
Odoo Community Association (OCA), ADHOC SA, Daniel Reis
Committers
Stefan Rijnhart, Weblate, Franco Leyes, OCA-git-bot, oca-ci
Odoo dependencies
odoo/odoo:
Python dependencies
None
System dependencies
None
Required by
None
Description
Extends the name search feature to use additional, more relaxed matching
methods, and to allow searching into configurable additional record
fields.

The name search is the lookup feature to select a related record. For
example, selecting a Customer on a new Sales order.

For example, typing "john brown" doesn't match "John M. Brown". The
relaxed search also looks up for records containing all the words, so
"John M. Brown" would be a match. It also tolerates words in a different
order, so searching for "brown john" also works.

![image0](https://raw.githubusercontent.com/OCA/server-tools/11.0/base_name_search_improved/images/image0.png)

Additionally, an Administrator can configure other fields to also lookup
into. For example, Customers could be additionally searched by City or
Phone number.

![image2](https://raw.githubusercontent.com/OCA/server-tools/11.0/base_name_search_improved/images/image2.png)

How it works:

Regular name search is performed, and the additional search logic is
only triggered if not enough results are found. This way, no overhead is
added on searches that would normally yield results.

But if not enough results are found, then additional search methods are
tried. The specific methods used are:

- Try regular search on each of the additional fields
- Try ordered word search on each of the search fields
- Try unordered word search on each of the search fields

All results found are presented in that order, hopefully presenting them
in order of relevance.

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
view_model_form_new view.model.form ir.model form New
view_model_search view.model.search ir.model search New
view_model_tree view.model.list ir.model list New
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (2)

New fields (1)
  • smart_search Char
    compute='_compute_smart_search' search='_search_smart_search' translate=False
Public methods (1)
  • name_search(self, name='', args=None, operator='ilike', limit=100)
    @api.model

New fields (5)
  • add_smart_search Boolean
    help='Add Smart Search on search views'
  • name_search_domain Char
    string='Smart Search Domain'
  • name_search_ids Many2many → ir.model.fields
    string='Smart Search Fields' args: 'ir.model.fields'
  • smart_search_warning Html
    compute='_compute_smart_search_warning'
  • use_smart_name_search Boolean
    help="Use Smart Search for 'name_search', this will affect when searching from other records (for eg. from m2o fields" string='Smart Name Search Enabled?'
Public methods (3)
  • check_name_search_domain(self)
    @api.constrains('name_search_domain')
  • update_search_wo_restart(self)
    @api.constrains('name_search_ids', 'name_search_domain', 'add_smart_search')
  • write(self, vals)

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Status
Open migration PR — not merged yet for this version
CI status
checks failing
Open since
144 days ago
Last activity
39 days ago
Repository
OCA/server-tools
Pull request
[19.0][MIG] base_name_search_improved: Migration to 19.0 (#3580)
Status
Open migration PR — not merged yet for this version
CI status
checks failing
Open since
332 days ago
Last activity
165 days ago
Repository
OCA/server-tools
Pull request
[19.0][MIG] base_name_search_improved: Migration to 19.0 (#3381)