diff --git a/base_search_mail_content/README.rst b/base_search_mail_content/README.rst index dfa436c9..5934ec02 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 4da3ff28..db6d9b2d 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 90e8efe1..b8a0f116 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 2534f649..304a8365 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'."