diff --git a/base_search_mail_content/README.rst b/base_search_mail_content/README.rst index dfa436c9e..5934ec02f 100644 --- a/base_search_mail_content/README.rst +++ b/base_search_mail_content/README.rst @@ -6,7 +6,7 @@ Base Search Mail Content ======================== -This module adds the capability to find any object (e.g. project issues or +This module adds the capability to find on any object (e.g. project issues or helpdesk ticket) based on the conversation threads associated to them. This will be useful in models that make intense use of messages, diff --git a/base_search_mail_content/__openerp__.py b/base_search_mail_content/__openerp__.py index 4da3ff284..db6d9b2dd 100644 --- a/base_search_mail_content/__openerp__.py +++ b/base_search_mail_content/__openerp__.py @@ -5,7 +5,7 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). { - "name": "Base Mail Search Content", + "name": "Base Search Mail Content", "version": "9.0.1.0.0", "author": "Eficent," "SerpentCS," diff --git a/base_search_mail_content/models/mail_thread.py b/base_search_mail_content/models/mail_thread.py index 90e8efe14..b8a0f1167 100644 --- a/base_search_mail_content/models/mail_thread.py +++ b/base_search_mail_content/models/mail_thread.py @@ -15,16 +15,20 @@ class MailThread(models.AbstractModel): _inherit = 'mail.thread' def _search_message_content(self, operator, value): + + main_operator = 'in' + if operator in expression.NEGATIVE_TERM_OPERATORS: + main_operator = 'not in' + operators = {'!=': '=', 'not like': 'like', + 'not ilike': 'ilike', 'not in': 'in'} + operator = operators[operator] domain = [('model', '=', self._name), '|', '|', '|', '|', ('record_name', operator, value), ('subject', operator, value), ('body', operator, value), ('email_from', operator, value), ('reply_to', operator, value)] - - if operator in expression.NEGATIVE_TERM_OPERATORS: - domain = domain[2:] recs = self.env['mail.message'].search(domain) - return [('id', 'in', recs.mapped('res_id'))] + return [('id', main_operator, recs.mapped('res_id'))] @api.multi def _compute_message_content(self): @@ -33,7 +37,7 @@ class MailThread(models.AbstractModel): return '' message_content = fields.Text( - string='Messages', + string='Message Content', help='Message content, to be used only in searches', compute="_compute_message_content", search='_search_message_content') @@ -62,7 +66,7 @@ def _custom_fields_view_get(self, view_id=None, view_type='form', }) for node in doc.xpath("//field[1]"): - # Add message_ids in search view + # Add message_content in search view elem = etree.Element('field', { 'name': 'message_content', }) diff --git a/base_search_mail_content/views/trgm_index_view.xml b/base_search_mail_content/views/trgm_index_view.xml index 2534f6496..304a83653 100644 --- a/base_search_mail_content/views/trgm_index_view.xml +++ b/base_search_mail_content/views/trgm_index_view.xml @@ -9,6 +9,18 @@ [('ttype', 'in', ['char', 'text', 'html'])] + "You can either select a field of type 'text', 'char' or 'html'." + + + + + + trgm.index.view.tree + trgm.index + + + + "You can either select a field of type 'text', 'char' or 'html'."