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

[16.0][MIG] base_name_search_improved: Migration to 16.0 #2538

Closed
wants to merge 66 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
a0bf109
base_name_search_improved: friendly and powerful name search
dreispt Jun 1, 2016
b2346d7
Return all results from the several methods, ordered by best match
dreispt Jun 9, 2016
d75aa4d
Test if additional domain is honored
dreispt Jul 6, 2016
298bdb2
Honor name_search additional domain
dreispt Jul 6, 2016
9677004
Do not search on empty string. Fixes #467
dreispt Jul 6, 2016
a0cedcf
Bump version
yvaucher Jul 14, 2016
b9fb5ce
Fix small typo in readme
Nov 16, 2016
1e042bc
[9.0] MIG Improved Name Search
nicomacr Nov 24, 2016
3171b6f
# Please enter the commit message for your changes. Lines starting
nicomacr Dec 13, 2016
d6082d6
OCA Transbot updated translations from Transifex
oca-transbot Jul 3, 2016
4b0b0f2
[UPD] Update base_name_search_improved.pot
oca-travis Jun 24, 2018
fea305f
Translated using Weblate (Catalan)
mtbochaca Jul 3, 2018
46f8f97
[MIG] base_name_search_improved: Migration to 11.0
zaoral Jul 5, 2018
ec2233e
[UPD] Update base_name_search_improved.pot
oca-travis Aug 6, 2018
f80791c
[UPD] README.rst
OCA-git-bot Aug 24, 2018
7281707
Update translation files
oca-transbot Nov 26, 2018
2d1b61c
[UPD] README.rst
OCA-git-bot Jul 29, 2019
a640dd6
[IMP] base_name_search_improved: black, isort, prettier
jjscarafia Jun 11, 2020
405584e
[IMP] base_name_search_improved: add v12 imp
jjscarafia Jun 11, 2020
b559c7f
[IMP] base_name_search_improved: run pre commit again
jjscarafia Jun 11, 2020
ac4cd49
[MIG] base_name_search_improved: Migration to 13.0
jjscarafia Jun 11, 2020
22546ce
[IMP] base_name_search_improved: patches
jjscarafia Jun 14, 2020
6976182
[14.0][MIG] base_name_search_improved
kittiu Feb 23, 2021
84d85b4
[UPD] Update base_name_search_improved.pot
oca-travis Apr 30, 2021
f3466d3
[UPD] README.rst
OCA-git-bot Apr 30, 2021
fdbc9ac
[UPD] Update base_name_search_improved.pot
oca-travis Jun 25, 2021
b8800dd
Update translation files
oca-transbot Jun 25, 2021
25ce3a2
[UPD] Update base_name_search_improved.pot
oca-travis Jul 10, 2021
ceaeea1
Update translation files
oca-transbot Jul 10, 2021
24fc3fb
[UPD] Update base_name_search_improved.pot
oca-travis Jul 19, 2021
cfb8f20
Update translation files
oca-transbot Jul 19, 2021
1d545d2
[UPD] Update base_name_search_improved.pot
oca-travis Aug 20, 2021
9c1b72d
Update translation files
oca-transbot Aug 20, 2021
5fad0fe
[UPD] Update base_name_search_improved.pot
oca-travis Sep 17, 2021
1cae446
Update translation files
oca-transbot Sep 17, 2021
c834790
[UPD] Update base_name_search_improved.pot
oca-travis Oct 12, 2021
4c058cb
Update translation files
oca-transbot Oct 13, 2021
4959310
[UPD] Update base_name_search_improved.pot
oca-travis Nov 27, 2021
4bed113
Update translation files
oca-transbot Nov 27, 2021
fb067e2
[UPD] Update base_name_search_improved.pot
oca-travis Jan 10, 2022
45faf68
Update translation files
oca-transbot Jan 10, 2022
859ced7
Translated using Weblate (Italian)
alessandro-fiorino Jan 14, 2022
6ae54b4
[IMP] base_name_search_improved: better ux
jjscarafia Mar 10, 2021
c7f9740
[FIX] base_name_search_improved: use sudo on _get_use_smart_name_search
jjscarafia Mar 11, 2021
4d95c75
[FIX] base_name_search_improved: tests
jjscarafia Jun 15, 2021
6259c3a
[IMP] base_name_search_improved: run pre-commit
jjscarafia Jun 15, 2021
c5f191a
[FIX] base_name_search_improved: interactive search
Rad0van Feb 3, 2022
f5276c9
[UPD] Update base_name_search_improved.pot
Mar 18, 2022
767e72f
Update translation files
oca-transbot Mar 18, 2022
6cbfe28
[UPD] Update base_name_search_improved.pot
Apr 15, 2022
c9e94fb
Update translation files
oca-transbot Apr 15, 2022
723aef8
[UPD] Update base_name_search_improved.pot
Apr 23, 2022
ba6266b
Update translation files
oca-transbot Apr 23, 2022
77544c4
[UPD] Update base_name_search_improved.pot
Jun 21, 2022
0fd689b
Update translation files
oca-transbot Jun 21, 2022
213d589
[UPD] Update base_name_search_improved.pot
Jun 21, 2022
ad05e62
Update translation files
oca-transbot Jun 21, 2022
2b7abf4
[UPD] Update base_name_search_improved.pot
Oct 1, 2022
e38c74c
[UPD] README.rst
OCA-git-bot Oct 1, 2022
5323003
Update translation files
oca-transbot Oct 1, 2022
801b872
[UPD] Update base_name_search_improved.pot
Dec 21, 2022
a44ebcc
Update translation files
weblate Dec 21, 2022
1df0c7a
[UPD] Update base_name_search_improved.pot
Dec 28, 2022
692526d
Update translation files
weblate Dec 28, 2022
8e8b790
[IMP] base_name_search_improved: pre-commit stuff
ignissak Feb 3, 2023
97f35c9
[MIG] base_name_search_improved: Migration to 16.0
ignissak Feb 3, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
145 changes: 145 additions & 0 deletions base_name_search_improved/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
====================
Improved Name Search
====================

.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--tools-lightgray.png?logo=github
:target: https://github.com/OCA/server-tools/tree/14.0/base_name_search_improved
:alt: OCA/server-tools
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/server-tools-14-0/server-tools-14-0-base_name_search_improved
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
:target: https://runbot.odoo-community.org/runbot/149/14.0
:alt: Try me on Runbot

|badge1| |badge2| |badge3| |badge4| |badge5|

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.

.. figure:: https://raw.githubusercontent.com/OCA/server-tools/16.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.

.. figure:: https://raw.githubusercontent.com/OCA/server-tools/16.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.

**Table of contents**

.. contents::
:local:

Configuration
=============

The fuzzy search is automatically enabled on all Models.
Note that this only affects typing in related fields.
The regular ``search()``, used in the top right search box, is not affected.

Additional search fields can be configured at Settings > Technical > Database > Models,
using the "Name Search Fields" field.

.. figure:: https://raw.githubusercontent.com/OCA/server-tools/16.0/base_name_search_improved/images/image1.png
:alt: Name Search Fields
:width: 600 px

Usage
=====

Just type into any related field, such as Customer on a Sale Order.

Known issues / Roadmap
======================

* Also use fuzzy search, such as the Levenshtein distance:
https://www.postgresql.org/docs/9.5/static/fuzzystrmatch.html
* The list of additional fields to search could benefit from caching, for efficiency.
* This feature could also be implemented for regular ``search`` on the ``name`` field.
* While adding m2o or other related field that also have an improved name search, that improved name search is not used (while if name_search is customizend on a module and you add a field of that model on another model it works ok). Esto por ejemplo es en productos si agregamos campo "categoría pública" y a categoría pública le ponemos "parent_id". Entonces vamos a ver que si buscamos por una categoría padre no busca nada, en vez si hacemos esa lógica en name_search de modulo si funciona

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/server-tools/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
`feedback <https://github.com/OCA/server-tools/issues/new?body=module:%20base_name_search_improved%0Aversion:%2014.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

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

Credits
=======

Authors
~~~~~~~

* Daniel Reis
* ADHOC SA

Contributors
~~~~~~~~~~~~

* Daniel Reis <https://github.com/dreispt>
* Kitti U. <[email protected]> (migrate to v14)
* Radovan Skolnik <[email protected]>

Other credits
~~~~~~~~~~~~~

The development of this module has been financially supported by:

* Odoo Community Association

Maintainers
~~~~~~~~~~~

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org

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.

This module is part of the `OCA/server-tools <https://github.com/OCA/server-tools/tree/16.0/base_name_search_improved>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
3 changes: 3 additions & 0 deletions base_name_search_improved/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# © 2016 Daniel Reis
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from . import models
14 changes: 14 additions & 0 deletions base_name_search_improved/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# © 2016 Daniel Reis
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
{
"name": "Improved Name Search",
"summary": "Friendlier search when typing in relation fields",
"version": "16.0.1.0.0",
"category": "Uncategorized",
"website": "https://github.com/OCA/server-tools",
"author": "Daniel Reis, Odoo Community Association (OCA), ADHOC SA",
"license": "AGPL-3",
"data": ["views/ir_model_views.xml"],
"depends": ["base"],
"installable": True,
}
Loading