Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
17ea756
[ADD] initial commit
hbrunn Jul 26, 2012
6369e3e
[FIX] workaround lp:1031708
hbrunn Aug 1, 2012
d379285
[IMP] more debug output, make logger global
hbrunn Aug 21, 2012
c740e5a
[ADD] add the possibility to add custom filters for search results
hbrunn Aug 21, 2012
0871e51
[ADD] show name of the model in result
hbrunn Aug 22, 2012
8ee04bc
[IMP] have two buttons in the result list, one to preview in a popup …
hbrunn Aug 23, 2012
698f138
[i18] Added dutch translation for all fts modules.
NL66278 Aug 28, 2012
92b049f
[ADD] possibility to search for internal fields (create_date, create_…
hbrunn Aug 29, 2012
f427c9c
[IMP] some UI tweaks
hbrunn Sep 12, 2012
cf433c5
[ADD] use binocular icon from http://www.everaldo.com/crystal
hbrunn Sep 12, 2012
2d469a6
[IMP] use a fixed treeview for search
hbrunn Sep 19, 2012
b79a35d
[IMP] make it simple to customize a search plugins' result columns
hbrunn Sep 19, 2012
9bd6dad
[IMP] make UI fixes actually work
hbrunn Sep 20, 2012
ecd1d60
[IMP] use right classes for updating/creating indices/triggers
hbrunn Sep 24, 2012
85125d6
[FIX] works again on trunk
hbrunn Sep 24, 2012
98906be
[IMP] only use to_tsquery - we trust the user to get the syntax right
hbrunn Oct 12, 2012
4277bff
[ADD] possibility to recreate search indices via UI
hbrunn Nov 23, 2012
a47ffc7
[IMP] do a syntax check of the ts query entered and return a nice error
hbrunn Jan 17, 2013
a9885c6
[IMP] remove remainders of 6.0 compatibility code
hbrunn Jan 17, 2013
c35e7ba
[IMP] use 7.0 features to get rid of some ugly hacks
hbrunn Jun 28, 2013
af031ba
[IMP] open documents client side only
hbrunn Jul 4, 2013
4b0f677
[ADD] logo
hbrunn Oct 4, 2013
0d970aa
[IMP] increase version number to notify users of internal updates
hbrunn Oct 4, 2013
181ea1b
[FIX] multiple search results from fulltextsearch
hbrunn Jan 27, 2014
3240246
[FIX] pep8
hbrunn Sep 12, 2014
43ecdef
[FIX] adapt to API changes
hbrunn Sep 12, 2014
ce1a543
[MIG] Migration or rather reimplementation on 16.0
NL66278 Feb 23, 2024
ca414a5
[FIX] fts_base: remove unneeded whitespace from summary
NL66278 Mar 11, 2024
f5e3bf4
[IMP] Add date and extra columns to fts_proxy
NL66278 Mar 12, 2024
5d514ab
[IMP] Add Open Document action to fts.proxy
NL66278 Mar 12, 2024
8ec5cf4
[FIX] prevent errors on ordering or multiple criteria
NL66278 Mar 13, 2024
eadbe1e
[IMP] fts_base: add date search
NL66278 Mar 13, 2024
30f1f66
[FIX] fts_base: wrong check for columntype
NL66278 Mar 13, 2024
e4739e4
[FIX] fts_base: prevent error on certain fields
NL66278 Mar 13, 2024
8bccfb9
[FIX] fts_base: do not copy tsvector fields
NL66278 Mar 14, 2024
60ef6ce
[IMP] fts_base: Ignore models that do not have all fields in domain
NL66278 Mar 20, 2024
9584ded
[IMP] fts_base: support weblike queries
NL66278 Mar 28, 2024
21dd0f6
[IMP] fts_base: quick link to open original document
NL66278 Apr 10, 2024
e44a3cc
[IMP] fts_document: show correct records in requested order
NL66278 Jul 6, 2024
e2f5579
[FIX] fts_base: handle correctly order and repeat search
NL66278 Jul 23, 2024
f53e10b
[IMP] fts_base: support both OR and AND searches
NL66278 Jul 29, 2024
2fcac44
[IMP] fts_base: add explanation to base FT view
NL66278 Aug 2, 2024
7f423e9
[IMP] fts_base: only log messages for actual FT search
NL66278 Aug 29, 2024
74745a5
[IMP] fts_base: refactor and add lots of testing
NL66278 Jan 23, 2025
022a7c0
[IMP] Make generating tsvector configurable
NL66278 Jan 28, 2025
894e2b1
[FIX] fts_base: add access rule for fts.content
NL66278 Jan 28, 2025
a9847ce
[FIX] Repair working of wildcard search
NL66278 Feb 10, 2025
3a0b540
[FIX] Make ordering results great again
NL66278 Mar 14, 2025
135af66
[FIX] fts_base: allow searching on res_name
NL66278 Mar 21, 2025
0e2016e
[UPD] fts_base, fts_mail: single insert in _proxy_search
ntsirintanis Jun 4, 2026
bf9c3cc
fixup! [UPD] fts_base, fts_mail: single insert in _proxy_search
ntsirintanis Jun 8, 2026
83cf0d4
[MIG] fts_base: Migration to 18.0
ntsirintanis Jun 17, 2026
2476da5
[FIX] fts_base: remove view_type from actions
NL66278 Jun 25, 2026
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
16 changes: 16 additions & 0 deletions fts_base/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# fts_base

Base to add FullText Search to Odoo models.

## Breaking changes

### 16.0.1.1.0

The method `_get_fts_proxy_values()` has been removed. It was previously called by
`_proxy_search()` to build the values inserted into `fts_proxy`, but is no longer used
since `_proxy_search()` now uses a single `INSERT...SELECT` statement instead of batched
ORM `create()` calls.

If you have a custom module that overrides `_get_fts_proxy_values()`, that override will
silently have no effect after this update. Migrate your customisation to
`_proxy_search_select_expressions()` instead.
5 changes: 5 additions & 0 deletions fts_base/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Copyright 2012-2024 Therp BV <https://therp.nl>.
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from . import models

# from . import wizards
21 changes: 21 additions & 0 deletions fts_base/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Copyright 2012-2026 Therp BV <https://therp.nl>.
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).

{
"name": "Fulltext search",
"version": "18.0.1.0.0",
"depends": ["base"],
"author": "Therp BV",
"website": "https://github.com/Therp/fulltextsearch",
"license": "AGPL-3",
"category": "Searching",
"data": [
"security/ir.model.access.csv",
"views/fts_proxy.xml",
"views/ir_actions_server.xml",
# "wizard/fts_config.xml",
],
"demo_xml": [],
"installable": True,
"active": False,
}
244 changes: 244 additions & 0 deletions fts_base/i18n/fts_base.pot
Original file line number Diff line number Diff line change
@@ -0,0 +1,244 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * fts_base
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-02 15:21+0000\n"
"PO-Revision-Date: 2024-08-02 15:21+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"

#. module: fts_base
#: model_terms:ir.actions.act_window,help:fts_base.action_fts_proxy_search
msgid "A word - will find all entries containing that word."
msgstr ""

#. module: fts_base
#: model:ir.model,name:fts_base.model_fts_mixin
msgid "Add this to each model that needs FullText search functions."
msgstr ""

#. module: fts_base
#: model_terms:ir.actions.act_window,help:fts_base.action_fts_proxy_search
msgid ""
"Choose some filters and then some text for Full Text search.\n"
" No search will be done, before a text is entered."
msgstr ""

#. module: fts_base
#. odoo-python
#: code:addons/fts_base/wizards/fts_config.py:0
#, python-format
msgid "Configuration"
msgstr ""

#. module: fts_base
#: model:ir.model.fields,field_description:fts_base.field_fts_proxy__create_uid
msgid "Created by"
msgstr ""

#. module: fts_base
#: model:ir.model.fields,field_description:fts_base.field_fts_proxy__create_date
msgid "Created on"
msgstr ""

#. module: fts_base
#: model:ir.model.fields,field_description:fts_base.field_fts_proxy__date
msgid "Date"
msgstr ""

#. module: fts_base
#: model_terms:ir.ui.view,arch_db:fts_base.fts_proxy_search
msgid "Date Created"
msgstr ""

#. module: fts_base
#: model:ir.model.fields,field_description:fts_base.field_fts_proxy__display_name
msgid "Display Name"
msgstr ""

#. module: fts_base
#: model_terms:ir.actions.act_window,help:fts_base.action_fts_proxy_search
msgid ""
"Entering multiple words between double quotation marks,\n"
" like \"cats and dogs\" will find only the entries that\n"
" contain that exact frase."
msgstr ""

#. module: fts_base
#: model_terms:ir.actions.act_window,help:fts_base.action_fts_proxy_search
msgid ""
"Entering multiple words will find entries containing any\n"
" of those words. So entering 'cat' and 'dog' will find all\n"
" entries that have the word cat, or the word dog, or both."
msgstr ""

#. module: fts_base
#: model_terms:ir.actions.act_window,help:fts_base.action_fts_proxy_search
msgid ""
"Entering multiple words, each followed by SHIFT+ENTER will\n"
" find those documents that contain all of the words."
msgstr ""

#. module: fts_base
#: model:ir.model.fields,field_description:fts_base.field_fts_proxy__extra
msgid "Extra"
msgstr ""

#. module: fts_base
#: model_terms:ir.actions.act_window,help:fts_base.action_fts_proxy_search
msgid ""
"For each model a maximum of 1024 entries will be found. If those do\n"
" not contain what you are looking for, it is either not there, or\n"
" you can add additional search criteria."
msgstr ""

#. module: fts_base
#: model:ir.model,name:fts_base.model_fts_proxy
msgid ""
"Front end to show results of FT searches, together with rank and summary."
msgstr ""

#. module: fts_base
#: model:ir.actions.act_window,name:fts_base.action_fts_proxy_search
#: model:ir.ui.menu,name:fts_base.menu_fts_proxy_search
#: model_terms:ir.ui.view,arch_db:fts_base.fts_proxy_search
msgid "Fulltext search"
msgstr ""

#. module: fts_base
#: model_terms:ir.ui.view,arch_db:fts_base.fts_proxy_tree
msgid "Fulltext search - results"
msgstr ""

#. module: fts_base
#: model:ir.model.fields,field_description:fts_base.field_fts_proxy__id
msgid "ID"
msgstr ""

#. module: fts_base
#: model:ir.model.fields,field_description:fts_base.field_fts_proxy____last_update
msgid "Last Modified on"
msgstr ""

#. module: fts_base
#: model:ir.model.fields,field_description:fts_base.field_fts_proxy__write_uid
msgid "Last Updated by"
msgstr ""

#. module: fts_base
#: model:ir.model.fields,field_description:fts_base.field_fts_proxy__write_date
msgid "Last Updated on"
msgstr ""

#. module: fts_base
#: model_terms:ir.actions.act_window,help:fts_base.action_fts_proxy_search
msgid ""
"Note: to prevent unneeded searches, first enter all other criteria, like\n"
" models to search, or date, and only then the words to search for."
msgstr ""

#. module: fts_base
#: model:ir.actions.server,name:fts_base.action_open_document
msgid "Open Document"
msgstr ""

#. module: fts_base
#: model:ir.model,name:fts_base.model_fts_query_helper
msgid ""
"Provides functions to assist in FT Search.\n"
"\n"
" Define as AbstractModel for easy extention and being able\n"
" to load this through the registry.\n"
" "
msgstr ""

#. module: fts_base
#: model:ir.model,name:fts_base.model_fts_debug_helper
msgid ""
"Provides logging function to analyse FT problems.\n"
"\n"
" This class is needed to not flood the log with FTS debug\n"
" messages, but only log stuff when actually having an Odoo\n"
" session in debug mode.\n"
"\n"
" We will use info level messages, so this will also work\n"
" on production servers where normally you will not have\n"
" debug level logging.\n"
" "
msgstr ""

#. module: fts_base
#: model:ir.model.fields,field_description:fts_base.field_fts_proxy__rank
msgid "Rank"
msgstr ""

#. module: fts_base
#. odoo-python
#: code:addons/fts_base/wizards/fts_config.py:0
#, python-format
msgid "Recreate search index"
msgstr ""

#. module: fts_base
#: model:ir.model.fields,field_description:fts_base.field_fts_proxy__res_id
msgid "Resource ID"
msgstr ""

#. module: fts_base
#: model:ir.model.fields,field_description:fts_base.field_fts_proxy__res_model
msgid "Resource Model"
msgstr ""

#. module: fts_base
#: model:ir.model.fields,field_description:fts_base.field_fts_proxy__res_name
msgid "Resource Name"
msgstr ""

#. module: fts_base
#: model:ir.model.fields,field_description:fts_base.field_fts_proxy__searchstring
msgid "Searchstring"
msgstr ""

#. module: fts_base
#: model_terms:ir.actions.act_window,help:fts_base.action_fts_proxy_search
msgid ""
"Some text follwed by a \"*\" - will find all entries that have\n"
" a word starting with that text."
msgstr ""

#. module: fts_base
#: model:ir.model.fields,field_description:fts_base.field_fts_proxy__summary
msgid "Summary"
msgstr ""

#. module: fts_base
#: model:ir.model.fields,help:fts_base.field_fts_proxy__res_model
msgid "The model this search works on. Required."
msgstr ""

#. module: fts_base
#: model:ir.actions.act_window,name:fts_base.action_fts_proxy_search_with_summary
#: model:ir.ui.menu,name:fts_base.menu_fts_proxy_search_with_summary
msgid "With summary"
msgstr ""

#. module: fts_base
#: model_terms:ir.actions.act_window,help:fts_base.action_fts_proxy_search
msgid ""
"You can select one or more of the configured data collections\n"
" (models), like emails or attachments. If you do not select any,\n"
" all data collections will be searched."
msgstr ""

#. module: fts_base
#: model_terms:ir.actions.act_window,help:fts_base.action_fts_proxy_search
msgid "You can specify criteria this way:"
msgstr ""
Loading