From e02d4d00310a045298ff48d0b999ee79dc582633 Mon Sep 17 00:00:00 2001 From: Pedro Gonzalez Date: Fri, 18 Oct 2019 15:28:48 +0200 Subject: [PATCH 1/5] [13.0] ADD web chatt filtering functionality --- web_chatt_filtering/__init__.py | 19 +++++ web_chatt_filtering/__manifest__.py | 35 ++++++++ web_chatt_filtering/readme/CONTRIBUTORS.rst | 2 + web_chatt_filtering/readme/DESCRIPTION.rst | 19 +++++ web_chatt_filtering/readme/USAGE.rst | 1 + .../static/img/filter_author.png | Bin 0 -> 16961 bytes .../static/img/filter_content.png | Bin 0 -> 19774 bytes .../static/img/filter_excluding_author.png | Bin 0 -> 27780 bytes .../static/img/initial_chatter_state.png | Bin 0 -> 33609 bytes web_chatt_filtering/static/src/js/chatter.js | 75 ++++++++++++++++++ .../static/src/xml/chatter.xml | 18 +++++ web_chatt_filtering/views/templates.xml | 9 +++ 12 files changed, 178 insertions(+) create mode 100644 web_chatt_filtering/__init__.py create mode 100644 web_chatt_filtering/__manifest__.py create mode 100644 web_chatt_filtering/readme/CONTRIBUTORS.rst create mode 100644 web_chatt_filtering/readme/DESCRIPTION.rst create mode 100644 web_chatt_filtering/readme/USAGE.rst create mode 100644 web_chatt_filtering/static/img/filter_author.png create mode 100644 web_chatt_filtering/static/img/filter_content.png create mode 100644 web_chatt_filtering/static/img/filter_excluding_author.png create mode 100644 web_chatt_filtering/static/img/initial_chatter_state.png create mode 100644 web_chatt_filtering/static/src/js/chatter.js create mode 100644 web_chatt_filtering/static/src/xml/chatter.xml create mode 100644 web_chatt_filtering/views/templates.xml diff --git a/web_chatt_filtering/__init__.py b/web_chatt_filtering/__init__.py new file mode 100644 index 000000000000..77296a0fc170 --- /dev/null +++ b/web_chatt_filtering/__init__.py @@ -0,0 +1,19 @@ +############################################################################## +# +# Copyright (c) Pesol (http://www.pesol.es) +# All Right Reserved +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## diff --git a/web_chatt_filtering/__manifest__.py b/web_chatt_filtering/__manifest__.py new file mode 100644 index 000000000000..4924249fb044 --- /dev/null +++ b/web_chatt_filtering/__manifest__.py @@ -0,0 +1,35 @@ +############################################################################## +# +# Copyright (c) Pesol (http://www.pesol.es) +# All Right Reserved +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## +{ + "name": "mail_chatt_filtering", + "summary": """ + Extend the mail_chatt functionality to have filtering by author or by + message content + """, + "category": "web", + "author": "Pedro Gonzalez ," + "Odoo Community Association (OCA)", + "license": "AGPL-3", + "website": "http://github.com/OCA/web", + "version": "13.0.1.0.0", + "depends": ["mail"], + "data": ["views/templates.xml"], + "qweb": ["static/src/xml/chatter.xml"], +} diff --git a/web_chatt_filtering/readme/CONTRIBUTORS.rst b/web_chatt_filtering/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000000..498c73047a8f --- /dev/null +++ b/web_chatt_filtering/readme/CONTRIBUTORS.rst @@ -0,0 +1,2 @@ +* Pedro Evaristo Gonzalez Sanchez +* Saulius Zylys diff --git a/web_chatt_filtering/readme/DESCRIPTION.rst b/web_chatt_filtering/readme/DESCRIPTION.rst new file mode 100644 index 000000000000..3bbefd064c02 --- /dev/null +++ b/web_chatt_filtering/readme/DESCRIPTION.rst @@ -0,0 +1,19 @@ +After working with Odoo a long time and load lot of loaded data, the amount of messages displayed inside the chatter of a record start to be significantly big + +This module introduces a filter in the Chatter +.. image:: ../static/img/initial_chatter_state.png + +Next functionalities are provided: +* Filter messages by content + +.. image:: ../static/img/filter_content.png + +* Filter messages by author + +.. image:: ../static/img/filter_author.png + +* Reverse filtering on author + +F.ex. <-admin> will show all the messages in the chatt excluding the ones of the Administrator + +.. image:: ../static/img/filter_excluding_author.png diff --git a/web_chatt_filtering/readme/USAGE.rst b/web_chatt_filtering/readme/USAGE.rst new file mode 100644 index 000000000000..b49aa41de0ee --- /dev/null +++ b/web_chatt_filtering/readme/USAGE.rst @@ -0,0 +1 @@ +Just installing the module is enough to have this functionality working. No configuration needed diff --git a/web_chatt_filtering/static/img/filter_author.png b/web_chatt_filtering/static/img/filter_author.png new file mode 100644 index 0000000000000000000000000000000000000000..544cf5a75406fa5edabdfab941d9fff1afc8dc8c GIT binary patch literal 16961 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

U=Ebg49vi}Wkg7n}?iITuhdu-EQwJHb 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 literal 0 HcmV?d00001 diff --git a/web_chatt_filtering/static/img/initial_chatter_state.png b/web_chatt_filtering/static/img/initial_chatter_state.png new file mode 100644 index 0000000000000000000000000000000000000000..e01461b205c8b97ec38d072c0d38059d03a88c88 GIT binary patch literal 33609 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 R?{B^gNl`gasqmNY{}=U~{V4zd literal 0 HcmV?d00001 diff --git a/web_chatt_filtering/static/src/js/chatter.js b/web_chatt_filtering/static/src/js/chatter.js new file mode 100644 index 000000000000..2fb0177f670d --- /dev/null +++ b/web_chatt_filtering/static/src/js/chatter.js @@ -0,0 +1,75 @@ +/* License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). */ + +odoo.define('mymail.Chatter', function (require) { + "use strict"; + + var Chatt = require('mail.Chatter'); + + Chatt.include({ + events: _.extend({}, Chatt.prototype.events, { + 'keyup input#search_partner': function (ev) { + if (ev.which === $.ui.keyCode.ENTER) { + this.filter_message($(ev.target).val().trim()); + } + }, + }), + + filter_message: function (substring) { + var self = this; + if (this.last_model_id !== this.fields.thread.model_id || + this.last_res_id !== this.fields.thread.res_id) { + this.last_model_id = this.fields.thread.model_id; + this.last_res_id = this.fields.thread.res_id; + this.original_msgs = Array.from(this.fields.thread.value.res_ids); + } + this.filtered_msgs = []; + this.reverse_author = false; + this.substring = substring; + + // In case substring is empty, avoid ORM and render original + if (!substring) { + this.fields.thread._fetchAndRenderThread(); + return; + } + // Reset messages to none + this.fields.thread._documentThread._messages = []; + // Get domain + var domain = ['&', ["id", "in", this.original_msgs], '|', + ['body', 'ilike', substring], ['author_id', 'ilike', substring]]; + if (substring.trim().charAt(0) === '-') { + domain = [["id", "in", this.original_msgs]]; + this.reverse_author = true; + } + // Set as variable for later use + var dThread = this.fields.thread; + this._rpc({ + model: 'mail.message', + method: 'message_fetch', + args: [domain], + kwargs: {limit: this.original_msgs.length}, + }) + .then(function (msgs) { + // Add messages to the thread in case not empty + if (msgs.length > 0) { + _.each(msgs, function (messageData) { + if (self.reverse_author) { + if (!messageData.author_id[1].toLowerCase().includes( + self.substring.substr(1))) { + self.call('mail_service', 'addMessage', + messageData, {silent: true}); + } + } else { + self.call('mail_service', 'addMessage', + messageData, {silent: true}); + } + }); + // Reload thread view + dThread._threadWidget.render(dThread._documentThread, {}); + } + self.$('#search_partner').val(substring); + self.$('#search_partner').select(); + }); + }, + }); + return Chatt; +}); diff --git a/web_chatt_filtering/static/src/xml/chatter.xml b/web_chatt_filtering/static/src/xml/chatter.xml new file mode 100644 index 000000000000..270f328277f1 --- /dev/null +++ b/web_chatt_filtering/static/src/xml/chatter.xml @@ -0,0 +1,18 @@ + + + +

+ + + + + + + + + + diff --git a/web_chatt_filtering/views/templates.xml b/web_chatt_filtering/views/templates.xml new file mode 100644 index 000000000000..3455523a0ddf --- /dev/null +++ b/web_chatt_filtering/views/templates.xml @@ -0,0 +1,9 @@ + + + + + From 276d00aa9048817a82cec853dd8afa8999044dd6 Mon Sep 17 00:00:00 2001 From: Pedro Gonzalez Date: Mon, 21 Oct 2019 20:58:40 +0200 Subject: [PATCH 2/5] [ADD] Add No message Found. Shorter copyright --- web_chatt_filtering/__init__.py | 22 +------ web_chatt_filtering/__manifest__.py | 24 ++------ web_chatt_filtering/static/src/js/chatter.js | 62 +++++++++++--------- 3 files changed, 41 insertions(+), 67 deletions(-) diff --git a/web_chatt_filtering/__init__.py b/web_chatt_filtering/__init__.py index 77296a0fc170..dca2ba0bd92c 100644 --- a/web_chatt_filtering/__init__.py +++ b/web_chatt_filtering/__init__.py @@ -1,19 +1,3 @@ -############################################################################## -# -# Copyright (c) Pesol (http://www.pesol.es) -# All Right Reserved -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## +# -*- coding: utf-8 -*- +# Copyright <2019> Pesol +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). diff --git a/web_chatt_filtering/__manifest__.py b/web_chatt_filtering/__manifest__.py index 4924249fb044..1caecd784dbd 100644 --- a/web_chatt_filtering/__manifest__.py +++ b/web_chatt_filtering/__manifest__.py @@ -1,22 +1,6 @@ -############################################################################## -# -# Copyright (c) Pesol (http://www.pesol.es) -# All Right Reserved -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## +# -*- coding: utf-8 -*- +# Copyright <2019> Pesol +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). { "name": "mail_chatt_filtering", "summary": """ @@ -27,7 +11,7 @@ "author": "Pedro Gonzalez ," "Odoo Community Association (OCA)", "license": "AGPL-3", - "website": "http://github.com/OCA/web", + "website": "https://github.com/OCA/web", "version": "13.0.1.0.0", "depends": ["mail"], "data": ["views/templates.xml"], diff --git a/web_chatt_filtering/static/src/js/chatter.js b/web_chatt_filtering/static/src/js/chatter.js index 2fb0177f670d..622712e65cbb 100644 --- a/web_chatt_filtering/static/src/js/chatter.js +++ b/web_chatt_filtering/static/src/js/chatter.js @@ -1,4 +1,5 @@ -/* License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). */ +/** Copyright <2019> Pesol + License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). */ odoo.define('mymail.Chatter', function (require) { "use strict"; @@ -14,33 +15,8 @@ odoo.define('mymail.Chatter', function (require) { }, }), - filter_message: function (substring) { + render_thread: function (domain) { var self = this; - if (this.last_model_id !== this.fields.thread.model_id || - this.last_res_id !== this.fields.thread.res_id) { - this.last_model_id = this.fields.thread.model_id; - this.last_res_id = this.fields.thread.res_id; - this.original_msgs = Array.from(this.fields.thread.value.res_ids); - } - this.filtered_msgs = []; - this.reverse_author = false; - this.substring = substring; - - // In case substring is empty, avoid ORM and render original - if (!substring) { - this.fields.thread._fetchAndRenderThread(); - return; - } - // Reset messages to none - this.fields.thread._documentThread._messages = []; - // Get domain - var domain = ['&', ["id", "in", this.original_msgs], '|', - ['body', 'ilike', substring], ['author_id', 'ilike', substring]]; - if (substring.trim().charAt(0) === '-') { - domain = [["id", "in", this.original_msgs]]; - this.reverse_author = true; - } - // Set as variable for later use var dThread = this.fields.thread; this._rpc({ model: 'mail.message', @@ -65,11 +41,41 @@ odoo.define('mymail.Chatter', function (require) { }); // Reload thread view dThread._threadWidget.render(dThread._documentThread, {}); + self.$('#search_partner').val(self.substring); + } else { + self.$('#search_partner').val("No messages found"); } - self.$('#search_partner').val(substring); self.$('#search_partner').select(); }); }, + + filter_message: function (substring) { + if (this.last_model_id !== this.fields.thread.model_id || + this.last_res_id !== this.fields.thread.res_id) { + this.last_model_id = this.fields.thread.model_id; + this.last_res_id = this.fields.thread.res_id; + this.original_msgs = Array.from(this.fields.thread.value.res_ids); + } + this.filtered_msgs = []; + this.reverse_author = false; + this.substring = substring; + + // In case substring is empty, avoid ORM and render original + if (!substring) { + this.fields.thread._fetchAndRenderThread(); + return; + } + // Reset messages to none + this.fields.thread._documentThread._messages = []; + // Get domain + var domain = ['&', ["id", "in", this.original_msgs], '|', + ['body', 'ilike', substring], ['author_id', 'ilike', substring]]; + if (substring.trim().charAt(0) === '-') { + domain = [["id", "in", this.original_msgs]]; + this.reverse_author = true; + } + this.render_thread(domain); + }, }); return Chatt; }); From 52b5bbd1a71e1d8eb0d4bf525b363a8be4b82c31 Mon Sep 17 00:00:00 2001 From: Pedro Gonzalez Date: Mon, 21 Oct 2019 20:58:40 +0200 Subject: [PATCH 3/5] [ADD] Add No message Found. Shorter copyright --- web_chatt_filtering/__init__.py | 1 - web_chatt_filtering/__manifest__.py | 1 - 2 files changed, 2 deletions(-) diff --git a/web_chatt_filtering/__init__.py b/web_chatt_filtering/__init__.py index dca2ba0bd92c..5311633e4734 100644 --- a/web_chatt_filtering/__init__.py +++ b/web_chatt_filtering/__init__.py @@ -1,3 +1,2 @@ -# -*- coding: utf-8 -*- # Copyright <2019> Pesol # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). diff --git a/web_chatt_filtering/__manifest__.py b/web_chatt_filtering/__manifest__.py index 1caecd784dbd..2a50069d9242 100644 --- a/web_chatt_filtering/__manifest__.py +++ b/web_chatt_filtering/__manifest__.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Copyright <2019> Pesol # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). { From 8eb04026659c83958a3b138c9150ec436b30a0db Mon Sep 17 00:00:00 2001 From: Pedro Evaristo Gonzalez Sanchez Date: Wed, 30 Mar 2022 15:41:26 -0500 Subject: [PATCH 4/5] [IMP] web_chatt_filtering: black, isort, prettier --- .../odoo/addons/web_chatt_filtering | 1 + setup/web_chatt_filtering/setup.py | 6 ++ web_chatt_filtering/static/src/js/chatter.js | 77 +++++++++++-------- .../static/src/xml/chatter.xml | 10 ++- web_chatt_filtering/views/templates.xml | 11 ++- 5 files changed, 68 insertions(+), 37 deletions(-) create mode 120000 setup/web_chatt_filtering/odoo/addons/web_chatt_filtering create mode 100644 setup/web_chatt_filtering/setup.py diff --git a/setup/web_chatt_filtering/odoo/addons/web_chatt_filtering b/setup/web_chatt_filtering/odoo/addons/web_chatt_filtering new file mode 120000 index 000000000000..d782e51d145d --- /dev/null +++ b/setup/web_chatt_filtering/odoo/addons/web_chatt_filtering @@ -0,0 +1 @@ +../../../../web_chatt_filtering \ No newline at end of file diff --git a/setup/web_chatt_filtering/setup.py b/setup/web_chatt_filtering/setup.py new file mode 100644 index 000000000000..28c57bb64031 --- /dev/null +++ b/setup/web_chatt_filtering/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +) diff --git a/web_chatt_filtering/static/src/js/chatter.js b/web_chatt_filtering/static/src/js/chatter.js index 622712e65cbb..e804c8fbcc6d 100644 --- a/web_chatt_filtering/static/src/js/chatter.js +++ b/web_chatt_filtering/static/src/js/chatter.js @@ -1,14 +1,14 @@ /** Copyright <2019> Pesol License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). */ -odoo.define('mymail.Chatter', function (require) { +odoo.define("mymail.Chatter", function (require) { "use strict"; - var Chatt = require('mail.Chatter'); + var Chatt = require("mail.Chatter"); Chatt.include({ events: _.extend({}, Chatt.prototype.events, { - 'keyup input#search_partner': function (ev) { + "keyup input#search_partner": function (ev) { if (ev.which === $.ui.keyCode.ENTER) { this.filter_message($(ev.target).val().trim()); } @@ -19,39 +19,45 @@ odoo.define('mymail.Chatter', function (require) { var self = this; var dThread = this.fields.thread; this._rpc({ - model: 'mail.message', - method: 'message_fetch', + model: "mail.message", + method: "message_fetch", args: [domain], kwargs: {limit: this.original_msgs.length}, - }) - .then(function (msgs) { - // Add messages to the thread in case not empty - if (msgs.length > 0) { - _.each(msgs, function (messageData) { - if (self.reverse_author) { - if (!messageData.author_id[1].toLowerCase().includes( - self.substring.substr(1))) { - self.call('mail_service', 'addMessage', - messageData, {silent: true}); - } - } else { - self.call('mail_service', 'addMessage', - messageData, {silent: true}); + }).then(function (msgs) { + // Add messages to the thread in case not empty + if (msgs.length > 0) { + _.each(msgs, function (messageData) { + if (self.reverse_author) { + if ( + !messageData.author_id[1] + .toLowerCase() + .includes(self.substring.substr(1)) + ) { + self.call("mail_service", "addMessage", messageData, { + silent: true, + }); } - }); - // Reload thread view - dThread._threadWidget.render(dThread._documentThread, {}); - self.$('#search_partner').val(self.substring); - } else { - self.$('#search_partner').val("No messages found"); - } - self.$('#search_partner').select(); - }); + } else { + self.call("mail_service", "addMessage", messageData, { + silent: true, + }); + } + }); + // Reload thread view + dThread._threadWidget.render(dThread._documentThread, {}); + self.$("#search_partner").val(self.substring); + } else { + self.$("#search_partner").val("No messages found"); + } + self.$("#search_partner").select(); + }); }, filter_message: function (substring) { - if (this.last_model_id !== this.fields.thread.model_id || - this.last_res_id !== this.fields.thread.res_id) { + if ( + this.last_model_id !== this.fields.thread.model_id || + this.last_res_id !== this.fields.thread.res_id + ) { this.last_model_id = this.fields.thread.model_id; this.last_res_id = this.fields.thread.res_id; this.original_msgs = Array.from(this.fields.thread.value.res_ids); @@ -68,9 +74,14 @@ odoo.define('mymail.Chatter', function (require) { // Reset messages to none this.fields.thread._documentThread._messages = []; // Get domain - var domain = ['&', ["id", "in", this.original_msgs], '|', - ['body', 'ilike', substring], ['author_id', 'ilike', substring]]; - if (substring.trim().charAt(0) === '-') { + var domain = [ + "&", + ["id", "in", this.original_msgs], + "|", + ["body", "ilike", substring], + ["author_id", "ilike", substring], + ]; + if (substring.trim().charAt(0) === "-") { domain = [["id", "in", this.original_msgs]]; this.reverse_author = true; } diff --git a/web_chatt_filtering/static/src/xml/chatter.xml b/web_chatt_filtering/static/src/xml/chatter.xml index 270f328277f1..bcb45a7f50e9 100644 --- a/web_chatt_filtering/static/src/xml/chatter.xml +++ b/web_chatt_filtering/static/src/xml/chatter.xml @@ -1,9 +1,15 @@ - +
- +
diff --git a/web_chatt_filtering/views/templates.xml b/web_chatt_filtering/views/templates.xml index 3455523a0ddf..f2a903573e83 100644 --- a/web_chatt_filtering/views/templates.xml +++ b/web_chatt_filtering/views/templates.xml @@ -1,8 +1,15 @@ -