From e8be8a1837e4c83e7aad6990f6540788b9d46748 Mon Sep 17 00:00:00 2001 From: Aungkokolin1997 Date: Wed, 28 May 2025 08:36:29 +0000 Subject: [PATCH 01/16] [ADD] mail_message_search --- mail_message_search/README.rst | 118 +++++ mail_message_search/__init__.py | 1 + mail_message_search/__manifest__.py | 12 + mail_message_search/models/__init__.py | 1 + mail_message_search/models/mail_thread.py | 60 +++ mail_message_search/readme/CONTEXT.md | 10 + mail_message_search/readme/CONTRIBUTORS.md | 3 + mail_message_search/readme/DESCRIPTION.md | 6 + mail_message_search/readme/USAGE.md | 2 + .../static/description/index.html | 451 ++++++++++++++++++ mail_message_search/tests/__init__.py | 1 + .../tests/test_mail_message_search.py | 43 ++ 12 files changed, 708 insertions(+) create mode 100644 mail_message_search/README.rst create mode 100644 mail_message_search/__init__.py create mode 100644 mail_message_search/__manifest__.py create mode 100644 mail_message_search/models/__init__.py create mode 100644 mail_message_search/models/mail_thread.py create mode 100644 mail_message_search/readme/CONTEXT.md create mode 100644 mail_message_search/readme/CONTRIBUTORS.md create mode 100644 mail_message_search/readme/DESCRIPTION.md create mode 100644 mail_message_search/readme/USAGE.md create mode 100644 mail_message_search/static/description/index.html create mode 100644 mail_message_search/tests/__init__.py create mode 100644 mail_message_search/tests/test_mail_message_search.py diff --git a/mail_message_search/README.rst b/mail_message_search/README.rst new file mode 100644 index 000000000..b5d483c8c --- /dev/null +++ b/mail_message_search/README.rst @@ -0,0 +1,118 @@ +=================== +Mail Message Search +=================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:37877885b10fdee2d9d98ad768df7f0a9d5289a49ee2cde522c131a8b4ad089e + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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%2Fsocial-lightgray.png?logo=github + :target: https://github.com/OCA/social/tree/16.0/mail_message_search + :alt: OCA/social +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/social-16-0/social-16-0-mail_message_search + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/social&target_branch=16.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module enables searching for messages across any record that uses +the chatter, based on their associated conversation threads. It +dynamically adds a Message Search field to the search view of any model +that inherits from ``mail.thread``. + +The Message Search field performs a smart, per-word search across a +message’s subject, body, sender, and reply-to fields. + +**Table of contents** + +.. contents:: + :local: + +Use Cases / Context +=================== + +This module offers an alternative to ``base_search_mail_content``, +designed to better support languages that do not separate words with +spaces (e.g., Chinese, Japanese, Korean, Thai). + +The original module relies on PostgreSQL's ``pg_trgm``, which requires +three-character tokens and a similarity score above the default +cutoff—making it ineffective for languages without space-separated +words. + +This module uses direct keyword matching across key fields in +``mail.message``, offering more reliable results in multilingual +environments. + +Usage +===== + +Go to any model that contains a chatter (e.g. Contacts, ...). Search for +content in field 'Message Search'. + +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 +------- + +* Quartile + +Contributors +------------ + +- `Quartile `__: + + - Aung Ko Ko Lin + - Yoshi Tashiro + +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. + +.. |maintainer-yostashiro| image:: https://github.com/yostashiro.png?size=40px + :target: https://github.com/yostashiro + :alt: yostashiro +.. |maintainer-aungkokolin1997| image:: https://github.com/aungkokolin1997.png?size=40px + :target: https://github.com/aungkokolin1997 + :alt: aungkokolin1997 + +Current `maintainers `__: + +|maintainer-yostashiro| |maintainer-aungkokolin1997| + +This module is part of the `OCA/social `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/mail_message_search/__init__.py b/mail_message_search/__init__.py new file mode 100644 index 000000000..0650744f6 --- /dev/null +++ b/mail_message_search/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/mail_message_search/__manifest__.py b/mail_message_search/__manifest__.py new file mode 100644 index 000000000..11139d5d9 --- /dev/null +++ b/mail_message_search/__manifest__.py @@ -0,0 +1,12 @@ +# Copyright 2025 Quartile (https://www.quartile.co) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +{ + "name": "Mail Message Search", + "version": "16.0.1.0.0", + "author": "Quartile, Odoo Community Association (OCA)", + "website": "https://github.com/OCA/social", + "depends": ["mail"], + "license": "AGPL-3", + "maintainers": ["yostashiro", "aungkokolin1997"], + "installable": True, +} diff --git a/mail_message_search/models/__init__.py b/mail_message_search/models/__init__.py new file mode 100644 index 000000000..b70a9f2d0 --- /dev/null +++ b/mail_message_search/models/__init__.py @@ -0,0 +1 @@ +from . import mail_thread diff --git a/mail_message_search/models/mail_thread.py b/mail_message_search/models/mail_thread.py new file mode 100644 index 000000000..553b47afa --- /dev/null +++ b/mail_message_search/models/mail_thread.py @@ -0,0 +1,60 @@ +# Copyright 2016-17 ForgeFlow S.L. +# (http://www.forgeflow.com) +# Copyright 2016 Serpent Consulting Services Pvt. Ltd. +# () +# Copyright 2025 Quartile (https://www.quartile.co) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from lxml import etree + +from odoo import api, fields, models +from odoo.osv import expression + + +class MailThread(models.AbstractModel): + _inherit = "mail.thread" + + def _search_message_search(self, operator, value): + fields = ["record_name", "subject", "body", "email_from", "reply_to"] + words = value.split() + word_domain_list = [] + for word in words: + field_domain_list = [[(field, operator, word)] for field in fields] + if operator in expression.NEGATIVE_TERM_OPERATORS: + word_domain_list.append(expression.AND(field_domain_list)) + else: + word_domain_list.append(expression.OR(field_domain_list)) + word_domain = expression.AND(word_domain_list) + domain = expression.AND([[("model", "=", self._name)], word_domain]) + messages = self.env["mail.message"].search(domain) + return [("id", "in", messages.mapped("res_id"))] + + message_search = fields.Text( + help="Message search, to be used only in searches", + compute="_compute_message_search", + search="_search_message_search", + ) + + def _compute_message_search(self): + # Always assign a value to avoid CacheMiss errors + self.message_search = False + + @api.model + def get_view(self, view_id=None, view_type="form", **options): + """ + Override to add message_search field in all the objects + that inherits mail.thread + """ + res = super().get_view(view_id=view_id, view_type=view_type, options=options) + if ( + view_type == "search" + and self._fields.get("message_search") + and self.env.user.has_group("base.group_user") + ): + doc = etree.XML(res["arch"]) + for node in doc.xpath("/search/field[last()]"): + # Add message_search in search view + elem = etree.Element("field", {"name": "message_search"}) + node.addnext(elem) + res["arch"] = etree.tostring(doc) + return res diff --git a/mail_message_search/readme/CONTEXT.md b/mail_message_search/readme/CONTEXT.md new file mode 100644 index 000000000..e62f63758 --- /dev/null +++ b/mail_message_search/readme/CONTEXT.md @@ -0,0 +1,10 @@ +This module offers an alternative to `base_search_mail_content`, designed to better +support languages that do not separate words with spaces (e.g., Chinese, Japanese, +Korean, Thai). + +The original module relies on PostgreSQL's `pg_trgm`, which requires three-character +tokens and a similarity score above the default cutoff—making it ineffective for +languages without space-separated words. + +This module uses direct keyword matching across key fields in `mail.message`, offering +more reliable results in multilingual environments. diff --git a/mail_message_search/readme/CONTRIBUTORS.md b/mail_message_search/readme/CONTRIBUTORS.md new file mode 100644 index 000000000..2721fe7ec --- /dev/null +++ b/mail_message_search/readme/CONTRIBUTORS.md @@ -0,0 +1,3 @@ +- [Quartile](https://www.quartile.co): + - Aung Ko Ko Lin + - Yoshi Tashiro diff --git a/mail_message_search/readme/DESCRIPTION.md b/mail_message_search/readme/DESCRIPTION.md new file mode 100644 index 000000000..16b58f95f --- /dev/null +++ b/mail_message_search/readme/DESCRIPTION.md @@ -0,0 +1,6 @@ +This module enables searching for messages across any record that uses the chatter, +based on their associated conversation threads. It dynamically adds a Message Search +field to the search view of any model that inherits from `mail.thread`. + +The Message Search field performs a smart, per-word search across a message’s subject, +body, sender, and reply-to fields. diff --git a/mail_message_search/readme/USAGE.md b/mail_message_search/readme/USAGE.md new file mode 100644 index 000000000..8c2b43928 --- /dev/null +++ b/mail_message_search/readme/USAGE.md @@ -0,0 +1,2 @@ +Go to any model that contains a chatter (e.g. Contacts, ...). Search +for content in field 'Message Search'. diff --git a/mail_message_search/static/description/index.html b/mail_message_search/static/description/index.html new file mode 100644 index 000000000..a5de83691 --- /dev/null +++ b/mail_message_search/static/description/index.html @@ -0,0 +1,451 @@ + + + + + +Mail Message Search + + + + + + diff --git a/mail_message_search/tests/__init__.py b/mail_message_search/tests/__init__.py new file mode 100644 index 000000000..22bb2a992 --- /dev/null +++ b/mail_message_search/tests/__init__.py @@ -0,0 +1 @@ +from . import test_mail_message_search diff --git a/mail_message_search/tests/test_mail_message_search.py b/mail_message_search/tests/test_mail_message_search.py new file mode 100644 index 000000000..85b79b4ef --- /dev/null +++ b/mail_message_search/tests/test_mail_message_search.py @@ -0,0 +1,43 @@ +# Copyright 2017 ForgeFlow S.L. +# (http://www.forgeflow.com) +# Copyright 2025 Quartile (https://www.quartile.co) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo.tests.common import TransactionCase + + +class TestBaseSearchMailContent(TransactionCase): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.Partner = cls.env["res.partner"] + cls.partner_test = cls.Partner.create({"name": "Test Partner"}) + + def test_mail_message_get_views(self): + res = self.env["mail.channel"].get_views( + [[False, "search"]], + {"load_fields": False, "load_filters": True, "toolbar": True}, + ) + self.assertIn( + "message_search", + res["models"]["mail.channel"], + "message_search field was not detected", + ) + + def test_mail_message_search_with_multi_strings_en(self): + self.partner_test.message_post(body="This is a test message.") + partner = self.Partner.search([("message_search", "ilike", "test mess")]) + self.assertEqual(partner, self.partner_test) + partner = self.Partner.search([("message_search", "ilike", "mess test")]) + self.assertEqual(partner, self.partner_test) + partner = self.Partner.search([("message_search", "ilike", "messy test")]) + self.assertFalse(partner) + + def test_mail_message_search_with_multi_strings_ja(self): + self.partner_test.message_post(body="これはテスト用のメッセージです。") + partner = self.Partner.search([("message_search", "ilike", "テスト です ")]) + self.assertEqual(partner, self.partner_test) + partner = self.Partner.search([("message_search", "ilike", "です テスト ")]) + self.assertEqual(partner, self.partner_test) + partner = self.Partner.search([("message_search", "ilike", "ですわ テスト")]) + self.assertFalse(partner) From 28be42c537cb40e112b40a8553cd4b6558d86589 Mon Sep 17 00:00:00 2001 From: oca-ci Date: Fri, 30 May 2025 12:34:43 +0000 Subject: [PATCH 02/16] [UPD] Update mail_message_search.pot --- .../i18n/mail_message_search.pot | 81 +++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 mail_message_search/i18n/mail_message_search.pot diff --git a/mail_message_search/i18n/mail_message_search.pot b/mail_message_search/i18n/mail_message_search.pot new file mode 100644 index 000000000..10640a07f --- /dev/null +++ b/mail_message_search/i18n/mail_message_search.pot @@ -0,0 +1,81 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mail_message_search +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \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: mail_message_search +#: model:ir.model,name:mail_message_search.model_mail_thread +msgid "Email Thread" +msgstr "" + +#. module: mail_message_search +#: model:ir.model.fields,field_description:mail_message_search.field_account_account__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_account_account_template__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_account_analytic_account__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_account_bank_statement_line__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_account_journal__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_account_move__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_account_payment__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_account_reconcile_model__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_account_setup_bank_manual_config__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_calendar_event__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_event_event__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_event_registration__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_mail_blacklist__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_mail_channel__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_mail_thread__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_mail_thread_blacklist__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_mail_thread_cc__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_mail_thread_phone__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_mailing_contact__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_mailing_mailing__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_phone_blacklist__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_product_product__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_product_template__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_res_company__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_res_partner__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_res_partner_bank__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_res_users__message_search +msgid "Message Search" +msgstr "" + +#. module: mail_message_search +#: model:ir.model.fields,help:mail_message_search.field_account_account__message_search +#: model:ir.model.fields,help:mail_message_search.field_account_account_template__message_search +#: model:ir.model.fields,help:mail_message_search.field_account_analytic_account__message_search +#: model:ir.model.fields,help:mail_message_search.field_account_bank_statement_line__message_search +#: model:ir.model.fields,help:mail_message_search.field_account_journal__message_search +#: model:ir.model.fields,help:mail_message_search.field_account_move__message_search +#: model:ir.model.fields,help:mail_message_search.field_account_payment__message_search +#: model:ir.model.fields,help:mail_message_search.field_account_reconcile_model__message_search +#: model:ir.model.fields,help:mail_message_search.field_account_setup_bank_manual_config__message_search +#: model:ir.model.fields,help:mail_message_search.field_calendar_event__message_search +#: model:ir.model.fields,help:mail_message_search.field_event_event__message_search +#: model:ir.model.fields,help:mail_message_search.field_event_registration__message_search +#: model:ir.model.fields,help:mail_message_search.field_mail_blacklist__message_search +#: model:ir.model.fields,help:mail_message_search.field_mail_channel__message_search +#: model:ir.model.fields,help:mail_message_search.field_mail_thread__message_search +#: model:ir.model.fields,help:mail_message_search.field_mail_thread_blacklist__message_search +#: model:ir.model.fields,help:mail_message_search.field_mail_thread_cc__message_search +#: model:ir.model.fields,help:mail_message_search.field_mail_thread_phone__message_search +#: model:ir.model.fields,help:mail_message_search.field_mailing_contact__message_search +#: model:ir.model.fields,help:mail_message_search.field_mailing_mailing__message_search +#: model:ir.model.fields,help:mail_message_search.field_phone_blacklist__message_search +#: model:ir.model.fields,help:mail_message_search.field_product_product__message_search +#: model:ir.model.fields,help:mail_message_search.field_product_template__message_search +#: model:ir.model.fields,help:mail_message_search.field_res_company__message_search +#: model:ir.model.fields,help:mail_message_search.field_res_partner__message_search +#: model:ir.model.fields,help:mail_message_search.field_res_partner_bank__message_search +#: model:ir.model.fields,help:mail_message_search.field_res_users__message_search +msgid "Message search, to be used only in searches" +msgstr "" From e6c53e85329cb57a3878244daa3cb558c0101874 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Fri, 30 May 2025 12:39:58 +0000 Subject: [PATCH 03/16] [BOT] post-merge updates --- mail_message_search/README.rst | 8 ++++---- mail_message_search/static/description/icon.png | Bin 0 -> 10254 bytes .../static/description/index.html | 13 ++++++++----- 3 files changed, 12 insertions(+), 9 deletions(-) create mode 100644 mail_message_search/static/description/icon.png diff --git a/mail_message_search/README.rst b/mail_message_search/README.rst index b5d483c8c..377c39898 100644 --- a/mail_message_search/README.rst +++ b/mail_message_search/README.rst @@ -7,7 +7,7 @@ Mail Message Search !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:37877885b10fdee2d9d98ad768df7f0a9d5289a49ee2cde522c131a8b4ad089e + !! source digest: sha256:e276b9738477253e4d9e296f1f4b18c589c12bc22463090e31cb188ce2aaba2b !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png @@ -84,10 +84,10 @@ Authors Contributors ------------ -- `Quartile `__: +- `Quartile `__: - - Aung Ko Ko Lin - - Yoshi Tashiro + - Aung Ko Ko Lin + - Yoshi Tashiro Maintainers ----------- diff --git a/mail_message_search/static/description/icon.png b/mail_message_search/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1dcc49c24f364e9adf0afbc6fc0bac6dbecdeb11 GIT binary patch literal 10254 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 Message Search !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:37877885b10fdee2d9d98ad768df7f0a9d5289a49ee2cde522c131a8b4ad089e +!! source digest: sha256:e276b9738477253e4d9e296f1f4b18c589c12bc22463090e31cb188ce2aaba2b !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

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

This module enables searching for messages across any record that uses @@ -436,7 +437,9 @@

Contributors

Maintainers

This module is maintained by the OCA.

-Odoo Community Association + +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.

From 59888e8d842dce4de294cab01adec1efda529f10 Mon Sep 17 00:00:00 2001 From: mymage Date: Tue, 3 Jun 2025 07:06:29 +0000 Subject: [PATCH 04/16] Added translation using Weblate (Italian) --- mail_message_search/i18n/it.po | 82 ++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 mail_message_search/i18n/it.po diff --git a/mail_message_search/i18n/it.po b/mail_message_search/i18n/it.po new file mode 100644 index 000000000..38057d62b --- /dev/null +++ b/mail_message_search/i18n/it.po @@ -0,0 +1,82 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mail_message_search +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#. module: mail_message_search +#: model:ir.model,name:mail_message_search.model_mail_thread +msgid "Email Thread" +msgstr "" + +#. module: mail_message_search +#: model:ir.model.fields,field_description:mail_message_search.field_account_account__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_account_account_template__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_account_analytic_account__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_account_bank_statement_line__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_account_journal__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_account_move__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_account_payment__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_account_reconcile_model__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_account_setup_bank_manual_config__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_calendar_event__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_event_event__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_event_registration__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_mail_blacklist__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_mail_channel__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_mail_thread__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_mail_thread_blacklist__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_mail_thread_cc__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_mail_thread_phone__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_mailing_contact__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_mailing_mailing__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_phone_blacklist__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_product_product__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_product_template__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_res_company__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_res_partner__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_res_partner_bank__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_res_users__message_search +msgid "Message Search" +msgstr "" + +#. module: mail_message_search +#: model:ir.model.fields,help:mail_message_search.field_account_account__message_search +#: model:ir.model.fields,help:mail_message_search.field_account_account_template__message_search +#: model:ir.model.fields,help:mail_message_search.field_account_analytic_account__message_search +#: model:ir.model.fields,help:mail_message_search.field_account_bank_statement_line__message_search +#: model:ir.model.fields,help:mail_message_search.field_account_journal__message_search +#: model:ir.model.fields,help:mail_message_search.field_account_move__message_search +#: model:ir.model.fields,help:mail_message_search.field_account_payment__message_search +#: model:ir.model.fields,help:mail_message_search.field_account_reconcile_model__message_search +#: model:ir.model.fields,help:mail_message_search.field_account_setup_bank_manual_config__message_search +#: model:ir.model.fields,help:mail_message_search.field_calendar_event__message_search +#: model:ir.model.fields,help:mail_message_search.field_event_event__message_search +#: model:ir.model.fields,help:mail_message_search.field_event_registration__message_search +#: model:ir.model.fields,help:mail_message_search.field_mail_blacklist__message_search +#: model:ir.model.fields,help:mail_message_search.field_mail_channel__message_search +#: model:ir.model.fields,help:mail_message_search.field_mail_thread__message_search +#: model:ir.model.fields,help:mail_message_search.field_mail_thread_blacklist__message_search +#: model:ir.model.fields,help:mail_message_search.field_mail_thread_cc__message_search +#: model:ir.model.fields,help:mail_message_search.field_mail_thread_phone__message_search +#: model:ir.model.fields,help:mail_message_search.field_mailing_contact__message_search +#: model:ir.model.fields,help:mail_message_search.field_mailing_mailing__message_search +#: model:ir.model.fields,help:mail_message_search.field_phone_blacklist__message_search +#: model:ir.model.fields,help:mail_message_search.field_product_product__message_search +#: model:ir.model.fields,help:mail_message_search.field_product_template__message_search +#: model:ir.model.fields,help:mail_message_search.field_res_company__message_search +#: model:ir.model.fields,help:mail_message_search.field_res_partner__message_search +#: model:ir.model.fields,help:mail_message_search.field_res_partner_bank__message_search +#: model:ir.model.fields,help:mail_message_search.field_res_users__message_search +msgid "Message search, to be used only in searches" +msgstr "" From 060a3c2f062666b0c3a40b4935bb38f74a8647fd Mon Sep 17 00:00:00 2001 From: mymage Date: Wed, 4 Jun 2025 08:02:07 +0000 Subject: [PATCH 05/16] Translated using Weblate (Italian) Currently translated at 100.0% (3 of 3 strings) Translation: social-16.0/social-16.0-mail_message_search Translate-URL: https://translation.odoo-community.org/projects/social-16-0/social-16-0-mail_message_search/it/ --- mail_message_search/i18n/it.po | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/mail_message_search/i18n/it.po b/mail_message_search/i18n/it.po index 38057d62b..83572e7fa 100644 --- a/mail_message_search/i18n/it.po +++ b/mail_message_search/i18n/it.po @@ -6,18 +6,20 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2025-06-04 10:26+0000\n" +"Last-Translator: mymage \n" "Language-Team: none\n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.10.4\n" #. module: mail_message_search #: model:ir.model,name:mail_message_search.model_mail_thread msgid "Email Thread" -msgstr "" +msgstr "Discussione e-mail" #. module: mail_message_search #: model:ir.model.fields,field_description:mail_message_search.field_account_account__message_search @@ -48,7 +50,7 @@ msgstr "" #: model:ir.model.fields,field_description:mail_message_search.field_res_partner_bank__message_search #: model:ir.model.fields,field_description:mail_message_search.field_res_users__message_search msgid "Message Search" -msgstr "" +msgstr "Ricerca messaggio" #. module: mail_message_search #: model:ir.model.fields,help:mail_message_search.field_account_account__message_search @@ -79,4 +81,4 @@ msgstr "" #: model:ir.model.fields,help:mail_message_search.field_res_partner_bank__message_search #: model:ir.model.fields,help:mail_message_search.field_res_users__message_search msgid "Message search, to be used only in searches" -msgstr "" +msgstr "Ricerca messaggio, da utilizzare solo nelle ricerche" From 20538975761de679efea1ef296af5d534564cb22 Mon Sep 17 00:00:00 2001 From: Aungkokolin1997 Date: Wed, 18 Jun 2025 01:17:36 +0000 Subject: [PATCH 06/16] [IMP] mail_message_search: pre-commit auto fixes --- mail_message_search/README.rst | 22 +++++++++---------- mail_message_search/__manifest__.py | 2 +- mail_message_search/pyproject.toml | 3 +++ .../static/description/index.html | 19 +++++++--------- 4 files changed, 23 insertions(+), 23 deletions(-) create mode 100644 mail_message_search/pyproject.toml diff --git a/mail_message_search/README.rst b/mail_message_search/README.rst index 377c39898..a7af3f73f 100644 --- a/mail_message_search/README.rst +++ b/mail_message_search/README.rst @@ -16,14 +16,14 @@ Mail Message Search .. |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%2Fsocial-lightgray.png?logo=github - :target: https://github.com/OCA/social/tree/16.0/mail_message_search - :alt: OCA/social +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fmail-lightgray.png?logo=github + :target: https://github.com/OCA/mail/tree/18.0/mail_message_search + :alt: OCA/mail .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/social-16-0/social-16-0-mail_message_search + :target: https://translation.odoo-community.org/projects/mail-18-0/mail-18-0-mail_message_search :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png - :target: https://runboat.odoo-community.org/builds?repo=OCA/social&target_branch=16.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/mail&target_branch=18.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| @@ -66,10 +66,10 @@ content in field 'Message Search'. Bug Tracker =========== -Bugs are tracked on `GitHub Issues `_. +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 `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -84,10 +84,10 @@ Authors Contributors ------------ -- `Quartile `__: +- `Quartile `__: - - Aung Ko Ko Lin - - Yoshi Tashiro + - Aung Ko Ko Lin + - Yoshi Tashiro Maintainers ----------- @@ -113,6 +113,6 @@ Current `maintainers `__: |maintainer-yostashiro| |maintainer-aungkokolin1997| -This module is part of the `OCA/social `_ project on GitHub. +This module is part of the `OCA/mail `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/mail_message_search/__manifest__.py b/mail_message_search/__manifest__.py index 11139d5d9..6cfbefabd 100644 --- a/mail_message_search/__manifest__.py +++ b/mail_message_search/__manifest__.py @@ -4,7 +4,7 @@ "name": "Mail Message Search", "version": "16.0.1.0.0", "author": "Quartile, Odoo Community Association (OCA)", - "website": "https://github.com/OCA/social", + "website": "https://github.com/OCA/mail", "depends": ["mail"], "license": "AGPL-3", "maintainers": ["yostashiro", "aungkokolin1997"], diff --git a/mail_message_search/pyproject.toml b/mail_message_search/pyproject.toml new file mode 100644 index 000000000..4231d0ccc --- /dev/null +++ b/mail_message_search/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/mail_message_search/static/description/index.html b/mail_message_search/static/description/index.html index 22b90657a..74d33d452 100644 --- a/mail_message_search/static/description/index.html +++ b/mail_message_search/static/description/index.html @@ -8,11 +8,10 @@ /* :Author: David Goodger (goodger@python.org) -:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $ +:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $ :Copyright: This stylesheet has been placed in the public domain. Default cascading style sheet for the HTML output of Docutils. -Despite the name, some widely supported CSS2 features are used. See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to customize this style sheet. @@ -275,7 +274,7 @@ margin-left: 2em ; margin-right: 2em } -pre.code .ln { color: gray; } /* line numbers */ +pre.code .ln { color: grey; } /* line numbers */ pre.code, code { background-color: #eeeeee } pre.code .comment, code .comment { color: #5C6576 } pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold } @@ -301,7 +300,7 @@ span.pre { white-space: pre } -span.problematic, pre.problematic { +span.problematic { color: red } span.section-subtitle { @@ -369,7 +368,7 @@

Mail Message Search

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:e276b9738477253e4d9e296f1f4b18c589c12bc22463090e31cb188ce2aaba2b !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

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

+

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

This module enables searching for messages across any record that uses the chatter, based on their associated conversation threads. It dynamically adds a Message Search field to the search view of any model @@ -410,10 +409,10 @@

Usage

Bug Tracker

-

Bugs are tracked on GitHub Issues. +

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.

+feedback.

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

@@ -437,15 +436,13 @@

Contributors

Maintainers

This module is maintained by the OCA.

- -Odoo Community Association - +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 maintainers:

yostashiro aungkokolin1997

-

This module is part of the OCA/social project on GitHub.

+

This module is part of the OCA/mail project on GitHub.

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

From 0a67d53bced5772be6070fc1a3c5fa0743b37763 Mon Sep 17 00:00:00 2001 From: Aungkokolin1997 Date: Wed, 18 Jun 2025 01:19:11 +0000 Subject: [PATCH 07/16] [MIG] mail_message_search: Migration to 18.0 --- mail_message_search/__manifest__.py | 2 +- mail_message_search/tests/test_mail_message_search.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mail_message_search/__manifest__.py b/mail_message_search/__manifest__.py index 6cfbefabd..827cb5a95 100644 --- a/mail_message_search/__manifest__.py +++ b/mail_message_search/__manifest__.py @@ -2,7 +2,7 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). { "name": "Mail Message Search", - "version": "16.0.1.0.0", + "version": "18.0.1.0.0", "author": "Quartile, Odoo Community Association (OCA)", "website": "https://github.com/OCA/mail", "depends": ["mail"], diff --git a/mail_message_search/tests/test_mail_message_search.py b/mail_message_search/tests/test_mail_message_search.py index 85b79b4ef..9f2bcd169 100644 --- a/mail_message_search/tests/test_mail_message_search.py +++ b/mail_message_search/tests/test_mail_message_search.py @@ -14,13 +14,13 @@ def setUpClass(cls): cls.partner_test = cls.Partner.create({"name": "Test Partner"}) def test_mail_message_get_views(self): - res = self.env["mail.channel"].get_views( + res = self.env["discuss.channel"].get_views( [[False, "search"]], {"load_fields": False, "load_filters": True, "toolbar": True}, ) self.assertIn( "message_search", - res["models"]["mail.channel"], + res["models"]["discuss.channel"]["fields"], "message_search field was not detected", ) From 7f9313c47f7e54ef121c27515f5a1fadba26acde Mon Sep 17 00:00:00 2001 From: oca-ci Date: Fri, 20 Jun 2025 07:12:41 +0000 Subject: [PATCH 08/16] [UPD] Update mail_message_search.pot --- .../i18n/mail_message_search.pot | 38 +++---------------- 1 file changed, 5 insertions(+), 33 deletions(-) diff --git a/mail_message_search/i18n/mail_message_search.pot b/mail_message_search/i18n/mail_message_search.pot index 10640a07f..1a5cdcb18 100644 --- a/mail_message_search/i18n/mail_message_search.pot +++ b/mail_message_search/i18n/mail_message_search.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 16.0\n" +"Project-Id-Version: Odoo Server 18.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" @@ -19,63 +19,35 @@ msgid "Email Thread" msgstr "" #. module: mail_message_search -#: model:ir.model.fields,field_description:mail_message_search.field_account_account__message_search -#: model:ir.model.fields,field_description:mail_message_search.field_account_account_template__message_search -#: model:ir.model.fields,field_description:mail_message_search.field_account_analytic_account__message_search -#: model:ir.model.fields,field_description:mail_message_search.field_account_bank_statement_line__message_search -#: model:ir.model.fields,field_description:mail_message_search.field_account_journal__message_search -#: model:ir.model.fields,field_description:mail_message_search.field_account_move__message_search -#: model:ir.model.fields,field_description:mail_message_search.field_account_payment__message_search -#: model:ir.model.fields,field_description:mail_message_search.field_account_reconcile_model__message_search -#: model:ir.model.fields,field_description:mail_message_search.field_account_setup_bank_manual_config__message_search #: model:ir.model.fields,field_description:mail_message_search.field_calendar_event__message_search -#: model:ir.model.fields,field_description:mail_message_search.field_event_event__message_search -#: model:ir.model.fields,field_description:mail_message_search.field_event_registration__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_discuss_channel__message_search #: model:ir.model.fields,field_description:mail_message_search.field_mail_blacklist__message_search -#: model:ir.model.fields,field_description:mail_message_search.field_mail_channel__message_search #: model:ir.model.fields,field_description:mail_message_search.field_mail_thread__message_search #: model:ir.model.fields,field_description:mail_message_search.field_mail_thread_blacklist__message_search #: model:ir.model.fields,field_description:mail_message_search.field_mail_thread_cc__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_mail_thread_main_attachment__message_search #: model:ir.model.fields,field_description:mail_message_search.field_mail_thread_phone__message_search #: model:ir.model.fields,field_description:mail_message_search.field_mailing_contact__message_search #: model:ir.model.fields,field_description:mail_message_search.field_mailing_mailing__message_search #: model:ir.model.fields,field_description:mail_message_search.field_phone_blacklist__message_search -#: model:ir.model.fields,field_description:mail_message_search.field_product_product__message_search -#: model:ir.model.fields,field_description:mail_message_search.field_product_template__message_search -#: model:ir.model.fields,field_description:mail_message_search.field_res_company__message_search #: model:ir.model.fields,field_description:mail_message_search.field_res_partner__message_search -#: model:ir.model.fields,field_description:mail_message_search.field_res_partner_bank__message_search #: model:ir.model.fields,field_description:mail_message_search.field_res_users__message_search msgid "Message Search" msgstr "" #. module: mail_message_search -#: model:ir.model.fields,help:mail_message_search.field_account_account__message_search -#: model:ir.model.fields,help:mail_message_search.field_account_account_template__message_search -#: model:ir.model.fields,help:mail_message_search.field_account_analytic_account__message_search -#: model:ir.model.fields,help:mail_message_search.field_account_bank_statement_line__message_search -#: model:ir.model.fields,help:mail_message_search.field_account_journal__message_search -#: model:ir.model.fields,help:mail_message_search.field_account_move__message_search -#: model:ir.model.fields,help:mail_message_search.field_account_payment__message_search -#: model:ir.model.fields,help:mail_message_search.field_account_reconcile_model__message_search -#: model:ir.model.fields,help:mail_message_search.field_account_setup_bank_manual_config__message_search #: model:ir.model.fields,help:mail_message_search.field_calendar_event__message_search -#: model:ir.model.fields,help:mail_message_search.field_event_event__message_search -#: model:ir.model.fields,help:mail_message_search.field_event_registration__message_search +#: model:ir.model.fields,help:mail_message_search.field_discuss_channel__message_search #: model:ir.model.fields,help:mail_message_search.field_mail_blacklist__message_search -#: model:ir.model.fields,help:mail_message_search.field_mail_channel__message_search #: model:ir.model.fields,help:mail_message_search.field_mail_thread__message_search #: model:ir.model.fields,help:mail_message_search.field_mail_thread_blacklist__message_search #: model:ir.model.fields,help:mail_message_search.field_mail_thread_cc__message_search +#: model:ir.model.fields,help:mail_message_search.field_mail_thread_main_attachment__message_search #: model:ir.model.fields,help:mail_message_search.field_mail_thread_phone__message_search #: model:ir.model.fields,help:mail_message_search.field_mailing_contact__message_search #: model:ir.model.fields,help:mail_message_search.field_mailing_mailing__message_search #: model:ir.model.fields,help:mail_message_search.field_phone_blacklist__message_search -#: model:ir.model.fields,help:mail_message_search.field_product_product__message_search -#: model:ir.model.fields,help:mail_message_search.field_product_template__message_search -#: model:ir.model.fields,help:mail_message_search.field_res_company__message_search #: model:ir.model.fields,help:mail_message_search.field_res_partner__message_search -#: model:ir.model.fields,help:mail_message_search.field_res_partner_bank__message_search #: model:ir.model.fields,help:mail_message_search.field_res_users__message_search msgid "Message search, to be used only in searches" msgstr "" From 1a06d8ca1a28ed80a0aa1c356cd3412ed8158e0e Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Fri, 20 Jun 2025 07:15:29 +0000 Subject: [PATCH 09/16] [BOT] post-merge updates --- mail_message_search/README.rst | 14 ++++--- .../static/description/index.html | 41 +++++++++++-------- 2 files changed, 34 insertions(+), 21 deletions(-) diff --git a/mail_message_search/README.rst b/mail_message_search/README.rst index a7af3f73f..0b2b1b920 100644 --- a/mail_message_search/README.rst +++ b/mail_message_search/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + =================== Mail Message Search =================== @@ -7,13 +11,13 @@ Mail Message Search !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:e276b9738477253e4d9e296f1f4b18c589c12bc22463090e31cb188ce2aaba2b + !! source digest: sha256:0b2d4ccefbad330ac90a9abb4a92dcf1483d4df352e85d5be54ab01b3492a20e !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |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 +.. |badge2| image:: https://img.shields.io/badge/license-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%2Fmail-lightgray.png?logo=github @@ -84,10 +88,10 @@ Authors Contributors ------------ -- `Quartile `__: +- `Quartile `__: - - Aung Ko Ko Lin - - Yoshi Tashiro + - Aung Ko Ko Lin + - Yoshi Tashiro Maintainers ----------- diff --git a/mail_message_search/static/description/index.html b/mail_message_search/static/description/index.html index 74d33d452..acbc45f96 100644 --- a/mail_message_search/static/description/index.html +++ b/mail_message_search/static/description/index.html @@ -3,15 +3,16 @@ -Mail Message Search +README.rst - From 88a1844ac3beb3eca394b062c298be6581e701d7 Mon Sep 17 00:00:00 2001 From: oca-ci Date: Mon, 6 Oct 2025 11:40:08 +0000 Subject: [PATCH 10/16] [UPD] Update mail_message_search.pot --- .../i18n/mail_message_search.pot | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/mail_message_search/i18n/mail_message_search.pot b/mail_message_search/i18n/mail_message_search.pot index 1a5cdcb18..6b64c321c 100644 --- a/mail_message_search/i18n/mail_message_search.pot +++ b/mail_message_search/i18n/mail_message_search.pot @@ -19,6 +19,15 @@ msgid "Email Thread" msgstr "" #. module: mail_message_search +#: model:ir.model.fields,field_description:mail_message_search.field_account_account__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_account_analytic_account__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_account_bank_statement_line__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_account_journal__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_account_move__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_account_payment__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_account_reconcile_model__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_account_setup_bank_manual_config__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_account_tax__message_search #: model:ir.model.fields,field_description:mail_message_search.field_calendar_event__message_search #: model:ir.model.fields,field_description:mail_message_search.field_discuss_channel__message_search #: model:ir.model.fields,field_description:mail_message_search.field_mail_blacklist__message_search @@ -30,12 +39,27 @@ msgstr "" #: model:ir.model.fields,field_description:mail_message_search.field_mailing_contact__message_search #: model:ir.model.fields,field_description:mail_message_search.field_mailing_mailing__message_search #: model:ir.model.fields,field_description:mail_message_search.field_phone_blacklist__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_product_category__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_product_pricelist__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_product_product__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_product_template__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_res_company__message_search #: model:ir.model.fields,field_description:mail_message_search.field_res_partner__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_res_partner_bank__message_search #: model:ir.model.fields,field_description:mail_message_search.field_res_users__message_search msgid "Message Search" msgstr "" #. module: mail_message_search +#: model:ir.model.fields,help:mail_message_search.field_account_account__message_search +#: model:ir.model.fields,help:mail_message_search.field_account_analytic_account__message_search +#: model:ir.model.fields,help:mail_message_search.field_account_bank_statement_line__message_search +#: model:ir.model.fields,help:mail_message_search.field_account_journal__message_search +#: model:ir.model.fields,help:mail_message_search.field_account_move__message_search +#: model:ir.model.fields,help:mail_message_search.field_account_payment__message_search +#: model:ir.model.fields,help:mail_message_search.field_account_reconcile_model__message_search +#: model:ir.model.fields,help:mail_message_search.field_account_setup_bank_manual_config__message_search +#: model:ir.model.fields,help:mail_message_search.field_account_tax__message_search #: model:ir.model.fields,help:mail_message_search.field_calendar_event__message_search #: model:ir.model.fields,help:mail_message_search.field_discuss_channel__message_search #: model:ir.model.fields,help:mail_message_search.field_mail_blacklist__message_search @@ -47,7 +71,13 @@ msgstr "" #: model:ir.model.fields,help:mail_message_search.field_mailing_contact__message_search #: model:ir.model.fields,help:mail_message_search.field_mailing_mailing__message_search #: model:ir.model.fields,help:mail_message_search.field_phone_blacklist__message_search +#: model:ir.model.fields,help:mail_message_search.field_product_category__message_search +#: model:ir.model.fields,help:mail_message_search.field_product_pricelist__message_search +#: model:ir.model.fields,help:mail_message_search.field_product_product__message_search +#: model:ir.model.fields,help:mail_message_search.field_product_template__message_search +#: model:ir.model.fields,help:mail_message_search.field_res_company__message_search #: model:ir.model.fields,help:mail_message_search.field_res_partner__message_search +#: model:ir.model.fields,help:mail_message_search.field_res_partner_bank__message_search #: model:ir.model.fields,help:mail_message_search.field_res_users__message_search msgid "Message search, to be used only in searches" msgstr "" From 288e5e7326fcfe3c74d5cd0ae4842a1c20b777b7 Mon Sep 17 00:00:00 2001 From: Weblate Date: Mon, 6 Oct 2025 11:44:08 +0000 Subject: [PATCH 11/16] Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: mail-18.0/mail-18.0-mail_message_search Translate-URL: https://translation.odoo-community.org/projects/mail-18-0/mail-18-0-mail_message_search/ --- mail_message_search/i18n/it.po | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/mail_message_search/i18n/it.po b/mail_message_search/i18n/it.po index 83572e7fa..53391eba8 100644 --- a/mail_message_search/i18n/it.po +++ b/mail_message_search/i18n/it.po @@ -23,7 +23,6 @@ msgstr "Discussione e-mail" #. module: mail_message_search #: model:ir.model.fields,field_description:mail_message_search.field_account_account__message_search -#: model:ir.model.fields,field_description:mail_message_search.field_account_account_template__message_search #: model:ir.model.fields,field_description:mail_message_search.field_account_analytic_account__message_search #: model:ir.model.fields,field_description:mail_message_search.field_account_bank_statement_line__message_search #: model:ir.model.fields,field_description:mail_message_search.field_account_journal__message_search @@ -31,18 +30,20 @@ msgstr "Discussione e-mail" #: model:ir.model.fields,field_description:mail_message_search.field_account_payment__message_search #: model:ir.model.fields,field_description:mail_message_search.field_account_reconcile_model__message_search #: model:ir.model.fields,field_description:mail_message_search.field_account_setup_bank_manual_config__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_account_tax__message_search #: model:ir.model.fields,field_description:mail_message_search.field_calendar_event__message_search -#: model:ir.model.fields,field_description:mail_message_search.field_event_event__message_search -#: model:ir.model.fields,field_description:mail_message_search.field_event_registration__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_discuss_channel__message_search #: model:ir.model.fields,field_description:mail_message_search.field_mail_blacklist__message_search -#: model:ir.model.fields,field_description:mail_message_search.field_mail_channel__message_search #: model:ir.model.fields,field_description:mail_message_search.field_mail_thread__message_search #: model:ir.model.fields,field_description:mail_message_search.field_mail_thread_blacklist__message_search #: model:ir.model.fields,field_description:mail_message_search.field_mail_thread_cc__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_mail_thread_main_attachment__message_search #: model:ir.model.fields,field_description:mail_message_search.field_mail_thread_phone__message_search #: model:ir.model.fields,field_description:mail_message_search.field_mailing_contact__message_search #: model:ir.model.fields,field_description:mail_message_search.field_mailing_mailing__message_search #: model:ir.model.fields,field_description:mail_message_search.field_phone_blacklist__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_product_category__message_search +#: model:ir.model.fields,field_description:mail_message_search.field_product_pricelist__message_search #: model:ir.model.fields,field_description:mail_message_search.field_product_product__message_search #: model:ir.model.fields,field_description:mail_message_search.field_product_template__message_search #: model:ir.model.fields,field_description:mail_message_search.field_res_company__message_search @@ -54,7 +55,6 @@ msgstr "Ricerca messaggio" #. module: mail_message_search #: model:ir.model.fields,help:mail_message_search.field_account_account__message_search -#: model:ir.model.fields,help:mail_message_search.field_account_account_template__message_search #: model:ir.model.fields,help:mail_message_search.field_account_analytic_account__message_search #: model:ir.model.fields,help:mail_message_search.field_account_bank_statement_line__message_search #: model:ir.model.fields,help:mail_message_search.field_account_journal__message_search @@ -62,18 +62,20 @@ msgstr "Ricerca messaggio" #: model:ir.model.fields,help:mail_message_search.field_account_payment__message_search #: model:ir.model.fields,help:mail_message_search.field_account_reconcile_model__message_search #: model:ir.model.fields,help:mail_message_search.field_account_setup_bank_manual_config__message_search +#: model:ir.model.fields,help:mail_message_search.field_account_tax__message_search #: model:ir.model.fields,help:mail_message_search.field_calendar_event__message_search -#: model:ir.model.fields,help:mail_message_search.field_event_event__message_search -#: model:ir.model.fields,help:mail_message_search.field_event_registration__message_search +#: model:ir.model.fields,help:mail_message_search.field_discuss_channel__message_search #: model:ir.model.fields,help:mail_message_search.field_mail_blacklist__message_search -#: model:ir.model.fields,help:mail_message_search.field_mail_channel__message_search #: model:ir.model.fields,help:mail_message_search.field_mail_thread__message_search #: model:ir.model.fields,help:mail_message_search.field_mail_thread_blacklist__message_search #: model:ir.model.fields,help:mail_message_search.field_mail_thread_cc__message_search +#: model:ir.model.fields,help:mail_message_search.field_mail_thread_main_attachment__message_search #: model:ir.model.fields,help:mail_message_search.field_mail_thread_phone__message_search #: model:ir.model.fields,help:mail_message_search.field_mailing_contact__message_search #: model:ir.model.fields,help:mail_message_search.field_mailing_mailing__message_search #: model:ir.model.fields,help:mail_message_search.field_phone_blacklist__message_search +#: model:ir.model.fields,help:mail_message_search.field_product_category__message_search +#: model:ir.model.fields,help:mail_message_search.field_product_pricelist__message_search #: model:ir.model.fields,help:mail_message_search.field_product_product__message_search #: model:ir.model.fields,help:mail_message_search.field_product_template__message_search #: model:ir.model.fields,help:mail_message_search.field_res_company__message_search From d569b9993bc7e9f7082bd6b70d019b4305a1b22a Mon Sep 17 00:00:00 2001 From: Aungkokolin1997 Date: Wed, 29 Oct 2025 02:00:57 +0000 Subject: [PATCH 12/16] [FIX] mail_message_search: Error a bytes-like object is required, not str --- mail_message_search/models/mail_thread.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mail_message_search/models/mail_thread.py b/mail_message_search/models/mail_thread.py index 553b47afa..4ce3d3a3b 100644 --- a/mail_message_search/models/mail_thread.py +++ b/mail_message_search/models/mail_thread.py @@ -56,5 +56,5 @@ def get_view(self, view_id=None, view_type="form", **options): # Add message_search in search view elem = etree.Element("field", {"name": "message_search"}) node.addnext(elem) - res["arch"] = etree.tostring(doc) + res["arch"] = etree.tostring(doc, encoding="unicode") return res From 34b88366d8872dba33e25c08fb2f6535bd63ddd7 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Wed, 29 Oct 2025 07:19:50 +0000 Subject: [PATCH 13/16] [BOT] post-merge updates --- mail_message_search/README.rst | 2 +- mail_message_search/__manifest__.py | 2 +- mail_message_search/static/description/index.html | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mail_message_search/README.rst b/mail_message_search/README.rst index 0b2b1b920..5d2d36c3f 100644 --- a/mail_message_search/README.rst +++ b/mail_message_search/README.rst @@ -11,7 +11,7 @@ Mail Message Search !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:0b2d4ccefbad330ac90a9abb4a92dcf1483d4df352e85d5be54ab01b3492a20e + !! source digest: sha256:5b7a84e863aa1b256584e7696181a8319ccf3fe658eee3ba07567752da997df7 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/mail_message_search/__manifest__.py b/mail_message_search/__manifest__.py index 827cb5a95..63abed502 100644 --- a/mail_message_search/__manifest__.py +++ b/mail_message_search/__manifest__.py @@ -2,7 +2,7 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). { "name": "Mail Message Search", - "version": "18.0.1.0.0", + "version": "18.0.1.0.1", "author": "Quartile, Odoo Community Association (OCA)", "website": "https://github.com/OCA/mail", "depends": ["mail"], diff --git a/mail_message_search/static/description/index.html b/mail_message_search/static/description/index.html index acbc45f96..e12043477 100644 --- a/mail_message_search/static/description/index.html +++ b/mail_message_search/static/description/index.html @@ -372,7 +372,7 @@

Mail Message Search

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:0b2d4ccefbad330ac90a9abb4a92dcf1483d4df352e85d5be54ab01b3492a20e +!! source digest: sha256:5b7a84e863aa1b256584e7696181a8319ccf3fe658eee3ba07567752da997df7 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

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

This module enables searching for messages across any record that uses From 739ff3b5e3ac9cf87f1c625172e6f0778ccb9147 Mon Sep 17 00:00:00 2001 From: Aungkokolin1997 Date: Wed, 13 Aug 2025 01:33:24 +0000 Subject: [PATCH 14/16] [FIX] mail_message_search : prevent db crash Co-authored-by: Florent de Labarre --- mail_message_search/README.rst | 12 +++++++++ mail_message_search/models/mail_thread.py | 10 +++++-- mail_message_search/readme/CONFIGURE.md | 7 +++++ .../static/description/index.html | 26 ++++++++++++++----- 4 files changed, 47 insertions(+), 8 deletions(-) create mode 100644 mail_message_search/readme/CONFIGURE.md diff --git a/mail_message_search/README.rst b/mail_message_search/README.rst index 5d2d36c3f..438c46f51 100644 --- a/mail_message_search/README.rst +++ b/mail_message_search/README.rst @@ -61,6 +61,18 @@ This module uses direct keyword matching across key fields in ``mail.message``, offering more reliable results in multilingual environments. +Configuration +============= + +If your database is very large, you can limit how many messages a search +returns to prevent crashes. + +- Go to Settings ▸ Technical ▸ System Parameters. +- Add a new parameter: + + - Key: mail_message_search.message_limit + - Value: your desired limit (e.g., 5000). + Usage ===== diff --git a/mail_message_search/models/mail_thread.py b/mail_message_search/models/mail_thread.py index 4ce3d3a3b..4789283e3 100644 --- a/mail_message_search/models/mail_thread.py +++ b/mail_message_search/models/mail_thread.py @@ -26,8 +26,14 @@ def _search_message_search(self, operator, value): word_domain_list.append(expression.OR(field_domain_list)) word_domain = expression.AND(word_domain_list) domain = expression.AND([[("model", "=", self._name)], word_domain]) - messages = self.env["mail.message"].search(domain) - return [("id", "in", messages.mapped("res_id"))] + limit_value = ( + self.env["ir.config_parameter"] + .sudo() + .get_param("mail_message_search.message_limit") + ) + limit = int(limit_value) if limit_value else None + messages = self.env["mail.message"]._search(domain, limit=limit) + return [("id", "in", messages.subselect("res_id"))] message_search = fields.Text( help="Message search, to be used only in searches", diff --git a/mail_message_search/readme/CONFIGURE.md b/mail_message_search/readme/CONFIGURE.md new file mode 100644 index 000000000..3bace50dc --- /dev/null +++ b/mail_message_search/readme/CONFIGURE.md @@ -0,0 +1,7 @@ +If your database is very large, you can limit how many messages a search returns to +prevent crashes. + +- Go to Settings ▸ Technical ▸ System Parameters. +- Add a new parameter: + - Key: mail_message_search.message_limit + - Value: your desired limit (e.g., 5000). diff --git a/mail_message_search/static/description/index.html b/mail_message_search/static/description/index.html index e12043477..7e66e0574 100644 --- a/mail_message_search/static/description/index.html +++ b/mail_message_search/static/description/index.html @@ -385,12 +385,13 @@

Mail Message Search

+
+

Configuration

+

If your database is very large, you can limit how many messages a search +returns to prevent crashes.

+
    +
  • Go to Settings ▸ Technical ▸ System Parameters.
  • +
  • Add a new parameter:
      +
    • Key: mail_message_search.message_limit
    • +
    • Value: your desired limit (e.g., 5000).
    • +
    +
  • +
+

Usage

Go to any model that contains a chatter (e.g. Contacts, …). Search for From 44d9fc99f7d3dddfe8405db581240866f34398e2 Mon Sep 17 00:00:00 2001 From: Ruchir Shukla Date: Thu, 30 Oct 2025 14:35:50 +0530 Subject: [PATCH 15/16] [IMP] mail_message_search: pre-commit auto fixes --- mail_message_search/README.rst | 18 ++++++++--------- .../static/description/index.html | 20 +++++++++---------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/mail_message_search/README.rst b/mail_message_search/README.rst index 438c46f51..e1d82fe32 100644 --- a/mail_message_search/README.rst +++ b/mail_message_search/README.rst @@ -21,13 +21,13 @@ Mail Message Search :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fmail-lightgray.png?logo=github - :target: https://github.com/OCA/mail/tree/18.0/mail_message_search + :target: https://github.com/OCA/mail/tree/19.0/mail_message_search :alt: OCA/mail .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/mail-18-0/mail-18-0-mail_message_search + :target: https://translation.odoo-community.org/projects/mail-19-0/mail-19-0-mail_message_search :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png - :target: https://runboat.odoo-community.org/builds?repo=OCA/mail&target_branch=18.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/mail&target_branch=19.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| @@ -67,11 +67,11 @@ Configuration If your database is very large, you can limit how many messages a search returns to prevent crashes. -- Go to Settings ▸ Technical ▸ System Parameters. -- Add a new parameter: +- Go to Settings ▸ Technical ▸ System Parameters. +- Add a new parameter: - - Key: mail_message_search.message_limit - - Value: your desired limit (e.g., 5000). + - Key: mail_message_search.message_limit + - Value: your desired limit (e.g., 5000). Usage ===== @@ -85,7 +85,7 @@ 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 `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -129,6 +129,6 @@ Current `maintainers `__: |maintainer-yostashiro| |maintainer-aungkokolin1997| -This module is part of the `OCA/mail `_ project on GitHub. +This module is part of the `OCA/mail `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/mail_message_search/static/description/index.html b/mail_message_search/static/description/index.html index 7e66e0574..a597c22d0 100644 --- a/mail_message_search/static/description/index.html +++ b/mail_message_search/static/description/index.html @@ -374,7 +374,7 @@

Mail Message Search

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:5b7a84e863aa1b256584e7696181a8319ccf3fe658eee3ba07567752da997df7 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

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

+

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

This module enables searching for messages across any record that uses the chatter, based on their associated conversation threads. It dynamically adds a Message Search field to the search view of any model @@ -410,7 +410,7 @@

Use Cases / Context

environments.

-

Configuration

+

Configuration

If your database is very large, you can limit how many messages a search returns to prevent crashes.

-

Usage

+

Usage

Go to any model that contains a chatter (e.g. Contacts, …). Search for content in field ‘Message Search’.

-

Bug Tracker

+

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.

+feedback.

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

-

Credits

+

Credits

-

Authors

+

Authors

  • Quartile
-

Contributors

+

Contributors

-

Maintainers

+

Maintainers

This module is maintained by the OCA.

Odoo Community Association @@ -464,7 +464,7 @@

Maintainers

promote its widespread use.

Current maintainers:

yostashiro aungkokolin1997

-

This module is part of the OCA/mail project on GitHub.

+

This module is part of the OCA/mail project on GitHub.

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

From f625648eaab8b55cc7149233338e85a09373a91e Mon Sep 17 00:00:00 2001 From: Ruchir Shukla Date: Thu, 30 Oct 2025 14:39:15 +0530 Subject: [PATCH 16/16] [MIG] mail_message_search: Migration to 19.0 --- mail_message_search/README.rst | 6 ++++++ mail_message_search/__manifest__.py | 2 +- mail_message_search/models/mail_thread.py | 15 ++++++++------- mail_message_search/readme/CREDITS.md | 1 + mail_message_search/static/description/index.html | 10 ++++++++-- 5 files changed, 24 insertions(+), 10 deletions(-) create mode 100644 mail_message_search/readme/CREDITS.md diff --git a/mail_message_search/README.rst b/mail_message_search/README.rst index e1d82fe32..132c121b8 100644 --- a/mail_message_search/README.rst +++ b/mail_message_search/README.rst @@ -105,6 +105,12 @@ Contributors - Aung Ko Ko Lin - Yoshi Tashiro +Other credits +------------- + +The migration of this module from 18.0 to 19.0 was financially supported +by Agent ERP GmbH + Maintainers ----------- diff --git a/mail_message_search/__manifest__.py b/mail_message_search/__manifest__.py index 63abed502..5b3bf75fd 100644 --- a/mail_message_search/__manifest__.py +++ b/mail_message_search/__manifest__.py @@ -2,7 +2,7 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). { "name": "Mail Message Search", - "version": "18.0.1.0.1", + "version": "19.0.1.0.0", "author": "Quartile, Odoo Community Association (OCA)", "website": "https://github.com/OCA/mail", "depends": ["mail"], diff --git a/mail_message_search/models/mail_thread.py b/mail_message_search/models/mail_thread.py index 4789283e3..079c9b023 100644 --- a/mail_message_search/models/mail_thread.py +++ b/mail_message_search/models/mail_thread.py @@ -7,25 +7,26 @@ from lxml import etree +import odoo.orm.domains as orm_domains from odoo import api, fields, models -from odoo.osv import expression +from odoo.fields import Domain class MailThread(models.AbstractModel): _inherit = "mail.thread" def _search_message_search(self, operator, value): - fields = ["record_name", "subject", "body", "email_from", "reply_to"] + fields = ["subject", "body", "email_from", "reply_to"] words = value.split() word_domain_list = [] for word in words: field_domain_list = [[(field, operator, word)] for field in fields] - if operator in expression.NEGATIVE_TERM_OPERATORS: - word_domain_list.append(expression.AND(field_domain_list)) + if operator in orm_domains.NEGATIVE_CONDITION_OPERATORS: + word_domain_list.append(Domain.AND(field_domain_list)) else: - word_domain_list.append(expression.OR(field_domain_list)) - word_domain = expression.AND(word_domain_list) - domain = expression.AND([[("model", "=", self._name)], word_domain]) + word_domain_list.append(Domain.OR(field_domain_list)) + word_domain = Domain.AND(word_domain_list) + domain = Domain.AND([[("model", "=", self._name)], word_domain]) limit_value = ( self.env["ir.config_parameter"] .sudo() diff --git a/mail_message_search/readme/CREDITS.md b/mail_message_search/readme/CREDITS.md new file mode 100644 index 000000000..5576cefe6 --- /dev/null +++ b/mail_message_search/readme/CREDITS.md @@ -0,0 +1 @@ +The migration of this module from 18.0 to 19.0 was financially supported by Agent ERP GmbH diff --git a/mail_message_search/static/description/index.html b/mail_message_search/static/description/index.html index a597c22d0..6717e22ad 100644 --- a/mail_message_search/static/description/index.html +++ b/mail_message_search/static/description/index.html @@ -391,7 +391,8 @@

Mail Message Search

  • Credits
  • @@ -453,8 +454,13 @@

    Contributors

    +
    +

    Other credits

    +

    The migration of this module from 18.0 to 19.0 was financially supported +by Agent ERP GmbH

    +
    -

    Maintainers

    +

    Maintainers

    This module is maintained by the OCA.

    Odoo Community Association