From c9bb06be2b5d8bec0022320487c3b5780cd886e2 Mon Sep 17 00:00:00 2001 From: Holger Brunn Date: Wed, 8 Jul 2015 11:32:21 +0200 Subject: [PATCH 01/27] [ADD] mail_restrict_follower_selection --- mail_restrict_follower_selection/README.rst | 57 ++++++++++++++++++ mail_restrict_follower_selection/__init__.py | 20 ++++++ .../__openerp__.py | 41 +++++++++++++ .../data/ir_actions.xml | 15 +++++ .../data/ir_config_parameter.xml | 9 +++ .../models/__init__.py | 20 ++++++ .../models/mail_wizard_invite.py | 48 +++++++++++++++ .../static/description/icon.png | Bin 0 -> 9455 bytes .../tests/__init__.py | 21 +++++++ .../test_mail_restrict_follower_selection.py | 31 ++++++++++ 10 files changed, 262 insertions(+) create mode 100644 mail_restrict_follower_selection/README.rst create mode 100644 mail_restrict_follower_selection/__init__.py create mode 100644 mail_restrict_follower_selection/__openerp__.py create mode 100644 mail_restrict_follower_selection/data/ir_actions.xml create mode 100644 mail_restrict_follower_selection/data/ir_config_parameter.xml create mode 100644 mail_restrict_follower_selection/models/__init__.py create mode 100644 mail_restrict_follower_selection/models/mail_wizard_invite.py create mode 100644 mail_restrict_follower_selection/static/description/icon.png create mode 100644 mail_restrict_follower_selection/tests/__init__.py create mode 100644 mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py diff --git a/mail_restrict_follower_selection/README.rst b/mail_restrict_follower_selection/README.rst new file mode 100644 index 0000000..5a633d5 --- /dev/null +++ b/mail_restrict_follower_selection/README.rst @@ -0,0 +1,57 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :alt: License: AGPL-3 +Restrict follower selection +=========================== + +This module was written to allow you to restrict the selection of possible followers. For example, if you use the social ERP functions only internally, it makes sense to filter possible followers for being employees. Otherwise, you'll get a quite crowded list of partners to choose from. + +Configuration +============= + +To configure this module, you need to go to `System parameters` and adjust `mail_restrict_follower_selection.domain` as you see fit. This restricts followers globally, if you want to restrict only the followers for a certain record type (or have different restrictions for different record types), create a parameter `mail_restrict_follower_selection.domain.$your_model`. + +As an example, you could use `[('customer', '=', True)]` to allow only customers to be added as follower. + +Note: This module won't change existing followers! + +Usage +===== + +.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas + :alt: Try me on Runbot + :target: https://runbot.odoo-community.org/runbot/205/8.0 + +For further information, please visit: + +* https://www.odoo.com/forum/help-1 + +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 smashing it by providing a detailed and welcomed feedback +`here `_. + +Credits +======= + +Contributors +------------ + +* Holger Brunn + +Maintainer +---------- + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +This module is maintained by the OCA. + +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. + +To contribute to this module, please visit http://odoo-community.org. diff --git a/mail_restrict_follower_selection/__init__.py b/mail_restrict_follower_selection/__init__.py new file mode 100644 index 0000000..cdb7d73 --- /dev/null +++ b/mail_restrict_follower_selection/__init__.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# This module copyright (C) 2015 Therp BV . +# +# 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 . +# +############################################################################## +from . import models diff --git a/mail_restrict_follower_selection/__openerp__.py b/mail_restrict_follower_selection/__openerp__.py new file mode 100644 index 0000000..9d24261 --- /dev/null +++ b/mail_restrict_follower_selection/__openerp__.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# This module copyright (C) 2015 Therp BV . +# +# 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": "Restrict follower selection", + "version": "8.0.1.0.0", + "author": "Therp BV,Odoo Community Association (OCA)", + "license": "AGPL-3", + "category": "Social Network", + "summary": "Define a domain from which followers can be selected", + "depends": [ + 'mail', + ], + "data": [ + "data/ir_config_parameter.xml", + "data/ir_actions.xml", + ], + "auto_install": False, + "installable": True, + "application": False, + "external_dependencies": { + 'python': [], + }, +} diff --git a/mail_restrict_follower_selection/data/ir_actions.xml b/mail_restrict_follower_selection/data/ir_actions.xml new file mode 100644 index 0000000..0b08598 --- /dev/null +++ b/mail_restrict_follower_selection/data/ir_actions.xml @@ -0,0 +1,15 @@ + + + + + + + + + Configure the restriction on followers + automatic + + + + diff --git a/mail_restrict_follower_selection/data/ir_config_parameter.xml b/mail_restrict_follower_selection/data/ir_config_parameter.xml new file mode 100644 index 0000000..25c093c --- /dev/null +++ b/mail_restrict_follower_selection/data/ir_config_parameter.xml @@ -0,0 +1,9 @@ + + + + + mail_restrict_follower_selection.domain + [('employee', '=', True)] + + + diff --git a/mail_restrict_follower_selection/models/__init__.py b/mail_restrict_follower_selection/models/__init__.py new file mode 100644 index 0000000..cc7bb9c --- /dev/null +++ b/mail_restrict_follower_selection/models/__init__.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# This module copyright (C) 2015 Therp BV . +# +# 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 . +# +############################################################################## +from . import mail_wizard_invite diff --git a/mail_restrict_follower_selection/models/mail_wizard_invite.py b/mail_restrict_follower_selection/models/mail_wizard_invite.py new file mode 100644 index 0000000..5d0e7ee --- /dev/null +++ b/mail_restrict_follower_selection/models/mail_wizard_invite.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# This module copyright (C) 2015 Therp BV (). +# +# 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 . +# +############################################################################## +from lxml import etree +from openerp import models, api + + +class MailWizardInvite(models.TransientModel): + _inherit = 'mail.wizard.invite' + + @api.model + def _mail_restrict_follower_selection_get_domain(self): + parameter_name = 'mail_restrict_follower_selection.domain' + return self.env['ir.config_parameter'].get_param( + '%s.%s' % (parameter_name, + self.env.context.get('default_res_model')), + self.env['ir.config_parameter'].get_param( + parameter_name, default='[]') + ) + + @api.model + def fields_view_get(self, view_id=None, view_type='form', toolbar=False, + submenu=False): + result = super(MailWizardInvite, self).fields_view_get( + view_id=view_id, view_type=view_type, toolbar=toolbar, + submenu=submenu) + arch = etree.fromstring(result['arch']) + for field in arch.xpath('//field[@name="partner_ids"]'): + field.attrib['domain'] = self\ + ._mail_restrict_follower_selection_get_domain() + result['arch'] = etree.tostring(arch) + return result diff --git a/mail_restrict_follower_selection/static/description/icon.png b/mail_restrict_follower_selection/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 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 z 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 Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/mail_restrict_follower_selection/tests/__init__.py b/mail_restrict_follower_selection/tests/__init__.py new file mode 100644 index 0000000..6d2a768 --- /dev/null +++ b/mail_restrict_follower_selection/tests/__init__.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# This module copyright (C) 2015 Therp BV . +# +# 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 . +# +############################################################################## +from . import test_mail_restrict_follower_selection diff --git a/mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py b/mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py new file mode 100644 index 0000000..b89567e --- /dev/null +++ b/mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# This module copyright (C) 2015 Therp BV (). +# +# 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 . +# +############################################################################## +from lxml import etree +from openerp.tests.common import TransactionCase + + +class TestMailRestrictFollowerSelection(TransactionCase): + def test_fields_view_get(self): + result = self.env['mail.wizard.invite'].fields_view_get( + view_type='form') + for field in etree.fromstring(result['arch']).xpath( + '//field[@name="partner_ids"]'): + self.assertTrue(field.get('domain')) From 51d0ca3216695d00f5bcc52b20935ac90a9a15d4 Mon Sep 17 00:00:00 2001 From: Holger Brunn Date: Fri, 4 Sep 2015 10:37:33 +0200 Subject: [PATCH 02/27] [FIX] better default filter --- mail_restrict_follower_selection/README.rst | 2 +- mail_restrict_follower_selection/data/ir_config_parameter.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mail_restrict_follower_selection/README.rst b/mail_restrict_follower_selection/README.rst index 5a633d5..05ecfeb 100644 --- a/mail_restrict_follower_selection/README.rst +++ b/mail_restrict_follower_selection/README.rst @@ -10,7 +10,7 @@ Configuration To configure this module, you need to go to `System parameters` and adjust `mail_restrict_follower_selection.domain` as you see fit. This restricts followers globally, if you want to restrict only the followers for a certain record type (or have different restrictions for different record types), create a parameter `mail_restrict_follower_selection.domain.$your_model`. -As an example, you could use `[('customer', '=', True)]` to allow only customers to be added as follower. +As an example, you could use `[('customer', '=', True)]` to allow only customers to be added as follower - this also is the default. Note: This module won't change existing followers! diff --git a/mail_restrict_follower_selection/data/ir_config_parameter.xml b/mail_restrict_follower_selection/data/ir_config_parameter.xml index 25c093c..280ae71 100644 --- a/mail_restrict_follower_selection/data/ir_config_parameter.xml +++ b/mail_restrict_follower_selection/data/ir_config_parameter.xml @@ -3,7 +3,7 @@ mail_restrict_follower_selection.domain - [('employee', '=', True)] + [('customer', '=', True)] From 65f966e49fb86b0a040cdf24beaab089233831a7 Mon Sep 17 00:00:00 2001 From: "Pedro M. Baeza" Date: Wed, 14 Oct 2015 02:54:06 +0200 Subject: [PATCH 03/27] [MIG] Make modules uninstallable --- mail_restrict_follower_selection/__openerp__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mail_restrict_follower_selection/__openerp__.py b/mail_restrict_follower_selection/__openerp__.py index 9d24261..80cdcf2 100644 --- a/mail_restrict_follower_selection/__openerp__.py +++ b/mail_restrict_follower_selection/__openerp__.py @@ -33,7 +33,7 @@ "data/ir_actions.xml", ], "auto_install": False, - "installable": True, + 'installable': False, "application": False, "external_dependencies": { 'python': [], From 98837c49ae72c86b1d72e70b3861cb4c503f06d2 Mon Sep 17 00:00:00 2001 From: "Pedro M. Baeza" Date: Thu, 6 Oct 2016 16:08:42 +0200 Subject: [PATCH 04/27] [MIG] Rename manifest files --- .../{__openerp__.py => __manifest__.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename mail_restrict_follower_selection/{__openerp__.py => __manifest__.py} (100%) diff --git a/mail_restrict_follower_selection/__openerp__.py b/mail_restrict_follower_selection/__manifest__.py similarity index 100% rename from mail_restrict_follower_selection/__openerp__.py rename to mail_restrict_follower_selection/__manifest__.py From 0a49941448632ff051df20c37da2a7beb70a0301 Mon Sep 17 00:00:00 2001 From: Damien Bouvy Date: Fri, 14 Oct 2016 19:40:18 +0200 Subject: [PATCH 05/27] [MIG] mail_restrict_follower_selection: Migrated to 10.0 --- mail_restrict_follower_selection/README.rst | 2 +- .../__manifest__.py | 4 +-- .../data/ir_actions.xml | 26 ++++++++--------- .../data/ir_config_parameter.xml | 14 ++++----- mail_restrict_follower_selection/i18n/en.po | 28 ++++++++++++++++++ mail_restrict_follower_selection/i18n/fr.po | 29 +++++++++++++++++++ mail_restrict_follower_selection/i18n/hr.po | 29 +++++++++++++++++++ mail_restrict_follower_selection/i18n/it.po | 29 +++++++++++++++++++ mail_restrict_follower_selection/i18n/sl.po | 29 +++++++++++++++++++ .../models/mail_wizard_invite.py | 2 +- 10 files changed, 166 insertions(+), 26 deletions(-) create mode 100644 mail_restrict_follower_selection/i18n/en.po create mode 100644 mail_restrict_follower_selection/i18n/fr.po create mode 100644 mail_restrict_follower_selection/i18n/hr.po create mode 100644 mail_restrict_follower_selection/i18n/it.po create mode 100644 mail_restrict_follower_selection/i18n/sl.po diff --git a/mail_restrict_follower_selection/README.rst b/mail_restrict_follower_selection/README.rst index 05ecfeb..97c76b0 100644 --- a/mail_restrict_follower_selection/README.rst +++ b/mail_restrict_follower_selection/README.rst @@ -19,7 +19,7 @@ Usage .. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas :alt: Try me on Runbot - :target: https://runbot.odoo-community.org/runbot/205/8.0 + :target: https://runbot.odoo-community.org/runbot/205/10.0 For further information, please visit: diff --git a/mail_restrict_follower_selection/__manifest__.py b/mail_restrict_follower_selection/__manifest__.py index 80cdcf2..a6d9c17 100644 --- a/mail_restrict_follower_selection/__manifest__.py +++ b/mail_restrict_follower_selection/__manifest__.py @@ -20,7 +20,7 @@ ############################################################################## { "name": "Restrict follower selection", - "version": "8.0.1.0.0", + "version": "10.0.1.0.0", "author": "Therp BV,Odoo Community Association (OCA)", "license": "AGPL-3", "category": "Social Network", @@ -33,7 +33,7 @@ "data/ir_actions.xml", ], "auto_install": False, - 'installable': False, + 'installable': True, "application": False, "external_dependencies": { 'python': [], diff --git a/mail_restrict_follower_selection/data/ir_actions.xml b/mail_restrict_follower_selection/data/ir_actions.xml index 0b08598..39462e5 100644 --- a/mail_restrict_follower_selection/data/ir_actions.xml +++ b/mail_restrict_follower_selection/data/ir_actions.xml @@ -1,15 +1,13 @@ - - - - - - - - Configure the restriction on followers - automatic - - - - + + + + + + + Configure the restriction on followers + automatic + + + diff --git a/mail_restrict_follower_selection/data/ir_config_parameter.xml b/mail_restrict_follower_selection/data/ir_config_parameter.xml index 280ae71..f4a1daf 100644 --- a/mail_restrict_follower_selection/data/ir_config_parameter.xml +++ b/mail_restrict_follower_selection/data/ir_config_parameter.xml @@ -1,9 +1,7 @@ - - - - mail_restrict_follower_selection.domain - [('customer', '=', True)] - - - + + + mail_restrict_follower_selection.domain + [('customer', '=', True)] + + diff --git a/mail_restrict_follower_selection/i18n/en.po b/mail_restrict_follower_selection/i18n/en.po new file mode 100644 index 0000000..1d50b01 --- /dev/null +++ b/mail_restrict_follower_selection/i18n/en.po @@ -0,0 +1,28 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mail_restrict_follower_selection +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: social (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-09-30 16:56+0000\n" +"PO-Revision-Date: 2015-09-30 16:56+0000\n" +"Last-Translator: OCA Transbot \n" +"Language-Team: English (http://www.transifex.com/oca/OCA-social-8-0/language/en/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: en\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: mail_restrict_follower_selection +#: model:ir.actions.act_window,name:mail_restrict_follower_selection.action_setup +msgid "Configure the restriction on followers" +msgstr "Configure the restriction on followers" + +#. module: mail_restrict_follower_selection +#: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite +msgid "Invite wizard" +msgstr "Invite wizard" diff --git a/mail_restrict_follower_selection/i18n/fr.po b/mail_restrict_follower_selection/i18n/fr.po new file mode 100644 index 0000000..496e862 --- /dev/null +++ b/mail_restrict_follower_selection/i18n/fr.po @@ -0,0 +1,29 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mail_restrict_follower_selection +# +# Translators: +# Quentin THEURET , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-07-22 09:45+0000\n" +"PO-Revision-Date: 2017-07-22 09:45+0000\n" +"Last-Translator: Quentin THEURET , 2017\n" +"Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: mail_restrict_follower_selection +#: model:ir.actions.act_window,name:mail_restrict_follower_selection.action_setup +msgid "Configure the restriction on followers" +msgstr "Configurer les restrictions sur les abonnés" + +#. module: mail_restrict_follower_selection +#: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite +msgid "Invite wizard" +msgstr "Assistant d'invitation" diff --git a/mail_restrict_follower_selection/i18n/hr.po b/mail_restrict_follower_selection/i18n/hr.po new file mode 100644 index 0000000..2986af1 --- /dev/null +++ b/mail_restrict_follower_selection/i18n/hr.po @@ -0,0 +1,29 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mail_restrict_follower_selection +# +# Translators: +# Bole , 2016 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-11-29 14:24+0000\n" +"PO-Revision-Date: 2016-11-29 14:24+0000\n" +"Last-Translator: Bole , 2016\n" +"Language-Team: Croatian (https://www.transifex.com/oca/teams/23907/hr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: hr\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#. module: mail_restrict_follower_selection +#: model:ir.actions.act_window,name:mail_restrict_follower_selection.action_setup +msgid "Configure the restriction on followers" +msgstr "Postavi ograničenja na pratitelje" + +#. module: mail_restrict_follower_selection +#: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite +msgid "Invite wizard" +msgstr "Čarobnjak za pozivnce" diff --git a/mail_restrict_follower_selection/i18n/it.po b/mail_restrict_follower_selection/i18n/it.po new file mode 100644 index 0000000..b3df718 --- /dev/null +++ b/mail_restrict_follower_selection/i18n/it.po @@ -0,0 +1,29 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mail_restrict_follower_selection +# +# Translators: +# Marius Marolla , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-17 01:02+0000\n" +"PO-Revision-Date: 2017-05-17 01:02+0000\n" +"Last-Translator: Marius Marolla , 2017\n" +"Language-Team: Italian (https://www.transifex.com/oca/teams/23907/it/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: it\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: mail_restrict_follower_selection +#: model:ir.actions.act_window,name:mail_restrict_follower_selection.action_setup +msgid "Configure the restriction on followers" +msgstr "Imposta restrizioni sui follower" + +#. module: mail_restrict_follower_selection +#: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite +msgid "Invite wizard" +msgstr "Wizard Creazione Invito" diff --git a/mail_restrict_follower_selection/i18n/sl.po b/mail_restrict_follower_selection/i18n/sl.po new file mode 100644 index 0000000..370eb81 --- /dev/null +++ b/mail_restrict_follower_selection/i18n/sl.po @@ -0,0 +1,29 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mail_restrict_follower_selection +# +# Translators: +# Matjaž Mozetič , 2015 +msgid "" +msgstr "" +"Project-Id-Version: social (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-09-30 16:56+0000\n" +"PO-Revision-Date: 2015-10-01 13:00+0000\n" +"Last-Translator: Matjaž Mozetič \n" +"Language-Team: Slovenian (http://www.transifex.com/oca/OCA-social-8-0/language/sl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: sl\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" + +#. module: mail_restrict_follower_selection +#: model:ir.actions.act_window,name:mail_restrict_follower_selection.action_setup +msgid "Configure the restriction on followers" +msgstr "Nastavitev omejitev za sledilce" + +#. module: mail_restrict_follower_selection +#: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite +msgid "Invite wizard" +msgstr "Čarovnik za vabila" diff --git a/mail_restrict_follower_selection/models/mail_wizard_invite.py b/mail_restrict_follower_selection/models/mail_wizard_invite.py index 5d0e7ee..5ca0c7a 100644 --- a/mail_restrict_follower_selection/models/mail_wizard_invite.py +++ b/mail_restrict_follower_selection/models/mail_wizard_invite.py @@ -18,7 +18,7 @@ # ############################################################################## from lxml import etree -from openerp import models, api +from odoo import models, api class MailWizardInvite(models.TransientModel): From 840deb62180d58d28ae9fa0fd70190f443f12363 Mon Sep 17 00:00:00 2001 From: phucngta Date: Tue, 6 Mar 2018 15:18:36 +0700 Subject: [PATCH 06/27] [11.0][MIG] mail_restrict_follower_selection --- mail_restrict_follower_selection/README.rst | 5 +++- mail_restrict_follower_selection/__init__.py | 23 +++------------ .../__manifest__.py | 26 ++++------------- .../data/ir_actions.xml | 1 - .../models/__init__.py | 23 +++------------ .../models/mail_wizard_invite.py | 29 +++++-------------- .../tests/__init__.py | 24 +++------------ .../test_mail_restrict_follower_selection.py | 25 ++++------------ 8 files changed, 33 insertions(+), 123 deletions(-) diff --git a/mail_restrict_follower_selection/README.rst b/mail_restrict_follower_selection/README.rst index 97c76b0..bbcd1ae 100644 --- a/mail_restrict_follower_selection/README.rst +++ b/mail_restrict_follower_selection/README.rst @@ -1,5 +1,7 @@ .. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg - :alt: License: AGPL-3 + :alt: License: AGPL-3 + +=========================== Restrict follower selection =========================== @@ -40,6 +42,7 @@ Contributors ------------ * Holger Brunn +* Nguyen Tan Phuc Maintainer ---------- diff --git a/mail_restrict_follower_selection/__init__.py b/mail_restrict_follower_selection/__init__.py index cdb7d73..9537e12 100644 --- a/mail_restrict_follower_selection/__init__.py +++ b/mail_restrict_follower_selection/__init__.py @@ -1,20 +1,5 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# This module copyright (C) 2015 Therp BV . -# -# 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 . -# -############################################################################## +# Copyright (C) 2015 Therp BV +# Copyright (C) 2017 Komit +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + from . import models diff --git a/mail_restrict_follower_selection/__manifest__.py b/mail_restrict_follower_selection/__manifest__.py index a6d9c17..2f81a54 100644 --- a/mail_restrict_follower_selection/__manifest__.py +++ b/mail_restrict_follower_selection/__manifest__.py @@ -1,26 +1,10 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# This module copyright (C) 2015 Therp BV . -# -# 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 . -# -############################################################################## +# Copyright (C) 2015 Therp BV +# Copyright (C) 2017 Komit +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + { "name": "Restrict follower selection", - "version": "10.0.1.0.0", + "version": "11.0.1.0.0", "author": "Therp BV,Odoo Community Association (OCA)", "license": "AGPL-3", "category": "Social Network", diff --git a/mail_restrict_follower_selection/data/ir_actions.xml b/mail_restrict_follower_selection/data/ir_actions.xml index 39462e5..63c84f0 100644 --- a/mail_restrict_follower_selection/data/ir_actions.xml +++ b/mail_restrict_follower_selection/data/ir_actions.xml @@ -7,7 +7,6 @@ Configure the restriction on followers - automatic diff --git a/mail_restrict_follower_selection/models/__init__.py b/mail_restrict_follower_selection/models/__init__.py index cc7bb9c..422ffaf 100644 --- a/mail_restrict_follower_selection/models/__init__.py +++ b/mail_restrict_follower_selection/models/__init__.py @@ -1,20 +1,5 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# This module copyright (C) 2015 Therp BV . -# -# 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 . -# -############################################################################## +# Copyright (C) 2015 Therp BV +# Copyright (C) 2017 Komit +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + from . import mail_wizard_invite diff --git a/mail_restrict_follower_selection/models/mail_wizard_invite.py b/mail_restrict_follower_selection/models/mail_wizard_invite.py index 5ca0c7a..216e26b 100644 --- a/mail_restrict_follower_selection/models/mail_wizard_invite.py +++ b/mail_restrict_follower_selection/models/mail_wizard_invite.py @@ -1,24 +1,9 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# This module copyright (C) 2015 Therp BV (). -# -# 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 . -# -############################################################################## +# Copyright (C) 2015 Therp BV +# Copyright (C) 2017 Komit +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + from lxml import etree -from odoo import models, api +from odoo import api, models class MailWizardInvite(models.TransientModel): @@ -28,8 +13,8 @@ class MailWizardInvite(models.TransientModel): def _mail_restrict_follower_selection_get_domain(self): parameter_name = 'mail_restrict_follower_selection.domain' return self.env['ir.config_parameter'].get_param( - '%s.%s' % (parameter_name, - self.env.context.get('default_res_model')), + "{0}.{1}".format(parameter_name, + self.env.context.get('default_res_model')), self.env['ir.config_parameter'].get_param( parameter_name, default='[]') ) diff --git a/mail_restrict_follower_selection/tests/__init__.py b/mail_restrict_follower_selection/tests/__init__.py index 6d2a768..10093c8 100644 --- a/mail_restrict_follower_selection/tests/__init__.py +++ b/mail_restrict_follower_selection/tests/__init__.py @@ -1,21 +1,5 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# This module copyright (C) 2015 Therp BV . -# -# 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 . -# -############################################################################## +# Copyright (C) 2015 Therp BV +# Copyright (C) 2017 Komit +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + from . import test_mail_restrict_follower_selection diff --git a/mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py b/mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py index b89567e..d1905b1 100644 --- a/mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py +++ b/mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py @@ -1,28 +1,13 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# This module copyright (C) 2015 Therp BV (). -# -# 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 . -# -############################################################################## +# Copyright (C) 2015 Therp BV +# Copyright (C) 2017 Komit +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + from lxml import etree from openerp.tests.common import TransactionCase class TestMailRestrictFollowerSelection(TransactionCase): + def test_fields_view_get(self): result = self.env['mail.wizard.invite'].fields_view_get( view_type='form') From 28ceac39860dc579457af05747a90140154e2eb9 Mon Sep 17 00:00:00 2001 From: Enric Tobella Date: Wed, 4 Apr 2018 10:19:13 +0200 Subject: [PATCH 07/27] [IMP] disable the option to create followers that do not meet the conditions --- mail_restrict_follower_selection/README.rst | 5 ++- .../__manifest__.py | 4 +- mail_restrict_follower_selection/i18n/en.po | 12 ++++-- mail_restrict_follower_selection/i18n/fr.po | 9 +++- mail_restrict_follower_selection/i18n/hr.po | 12 ++++-- mail_restrict_follower_selection/i18n/it.po | 9 +++- .../i18n/mail_restrict_follower_selection.pot | 30 +++++++++++++ mail_restrict_follower_selection/i18n/sl.po | 15 +++++-- .../models/__init__.py | 1 + .../models/mail_followers.py | 24 +++++++++++ .../models/mail_wizard_invite.py | 4 +- .../test_mail_restrict_follower_selection.py | 43 ++++++++++++++++++- 12 files changed, 148 insertions(+), 20 deletions(-) create mode 100644 mail_restrict_follower_selection/i18n/mail_restrict_follower_selection.pot create mode 100644 mail_restrict_follower_selection/models/mail_followers.py diff --git a/mail_restrict_follower_selection/README.rst b/mail_restrict_follower_selection/README.rst index bbcd1ae..fb0656d 100644 --- a/mail_restrict_follower_selection/README.rst +++ b/mail_restrict_follower_selection/README.rst @@ -7,6 +7,8 @@ Restrict follower selection This module was written to allow you to restrict the selection of possible followers. For example, if you use the social ERP functions only internally, it makes sense to filter possible followers for being employees. Otherwise, you'll get a quite crowded list of partners to choose from. +Moreover, the module disables the option to automatically add followers that do not meet the domain. + Configuration ============= @@ -21,7 +23,7 @@ Usage .. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas :alt: Try me on Runbot - :target: https://runbot.odoo-community.org/runbot/205/10.0 + :target: https://runbot.odoo-community.org/runbot/205/11.0 For further information, please visit: @@ -43,6 +45,7 @@ Contributors * Holger Brunn * Nguyen Tan Phuc +* Enric Tobella Maintainer ---------- diff --git a/mail_restrict_follower_selection/__manifest__.py b/mail_restrict_follower_selection/__manifest__.py index 2f81a54..bfeb8bf 100644 --- a/mail_restrict_follower_selection/__manifest__.py +++ b/mail_restrict_follower_selection/__manifest__.py @@ -4,8 +4,8 @@ { "name": "Restrict follower selection", - "version": "11.0.1.0.0", - "author": "Therp BV,Odoo Community Association (OCA)", + "version": "11.0.2.0.0", + "author": "Therp BV,Creu Blanca,Odoo Community Association (OCA)", "license": "AGPL-3", "category": "Social Network", "summary": "Define a domain from which followers can be selected", diff --git a/mail_restrict_follower_selection/i18n/en.po b/mail_restrict_follower_selection/i18n/en.po index 1d50b01..b6c0235 100644 --- a/mail_restrict_follower_selection/i18n/en.po +++ b/mail_restrict_follower_selection/i18n/en.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * mail_restrict_follower_selection -# +# # Translators: msgid "" msgstr "" @@ -10,11 +10,12 @@ msgstr "" "POT-Creation-Date: 2015-09-30 16:56+0000\n" "PO-Revision-Date: 2015-09-30 16:56+0000\n" "Last-Translator: OCA Transbot \n" -"Language-Team: English (http://www.transifex.com/oca/OCA-social-8-0/language/en/)\n" +"Language-Team: English (http://www.transifex.com/oca/OCA-social-8-0/language/" +"en/)\n" +"Language: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Language: en\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. module: mail_restrict_follower_selection @@ -22,6 +23,11 @@ msgstr "" msgid "Configure the restriction on followers" msgstr "Configure the restriction on followers" +#. module: mail_restrict_follower_selection +#: model:ir.model,name:mail_restrict_follower_selection.model_mail_followers +msgid "Document Followers" +msgstr "" + #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite msgid "Invite wizard" diff --git a/mail_restrict_follower_selection/i18n/fr.po b/mail_restrict_follower_selection/i18n/fr.po index 496e862..4a89521 100644 --- a/mail_restrict_follower_selection/i18n/fr.po +++ b/mail_restrict_follower_selection/i18n/fr.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * mail_restrict_follower_selection -# +# # Translators: # Quentin THEURET , 2017 msgid "" @@ -12,10 +12,10 @@ msgstr "" "PO-Revision-Date: 2017-07-22 09:45+0000\n" "Last-Translator: Quentin THEURET , 2017\n" "Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #. module: mail_restrict_follower_selection @@ -23,6 +23,11 @@ msgstr "" msgid "Configure the restriction on followers" msgstr "Configurer les restrictions sur les abonnés" +#. module: mail_restrict_follower_selection +#: model:ir.model,name:mail_restrict_follower_selection.model_mail_followers +msgid "Document Followers" +msgstr "" + #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite msgid "Invite wizard" diff --git a/mail_restrict_follower_selection/i18n/hr.po b/mail_restrict_follower_selection/i18n/hr.po index 2986af1..4d7bc08 100644 --- a/mail_restrict_follower_selection/i18n/hr.po +++ b/mail_restrict_follower_selection/i18n/hr.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * mail_restrict_follower_selection -# +# # Translators: # Bole , 2016 msgid "" @@ -12,17 +12,23 @@ msgstr "" "PO-Revision-Date: 2016-11-29 14:24+0000\n" "Last-Translator: Bole , 2016\n" "Language-Team: Croatian (https://www.transifex.com/oca/teams/23907/hr/)\n" +"Language: hr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Language: hr\n" -"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" #. module: mail_restrict_follower_selection #: model:ir.actions.act_window,name:mail_restrict_follower_selection.action_setup msgid "Configure the restriction on followers" msgstr "Postavi ograničenja na pratitelje" +#. module: mail_restrict_follower_selection +#: model:ir.model,name:mail_restrict_follower_selection.model_mail_followers +msgid "Document Followers" +msgstr "" + #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite msgid "Invite wizard" diff --git a/mail_restrict_follower_selection/i18n/it.po b/mail_restrict_follower_selection/i18n/it.po index b3df718..10a71b6 100644 --- a/mail_restrict_follower_selection/i18n/it.po +++ b/mail_restrict_follower_selection/i18n/it.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * mail_restrict_follower_selection -# +# # Translators: # Marius Marolla , 2017 msgid "" @@ -12,10 +12,10 @@ msgstr "" "PO-Revision-Date: 2017-05-17 01:02+0000\n" "Last-Translator: Marius Marolla , 2017\n" "Language-Team: Italian (https://www.transifex.com/oca/teams/23907/it/)\n" +"Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. module: mail_restrict_follower_selection @@ -23,6 +23,11 @@ msgstr "" msgid "Configure the restriction on followers" msgstr "Imposta restrizioni sui follower" +#. module: mail_restrict_follower_selection +#: model:ir.model,name:mail_restrict_follower_selection.model_mail_followers +msgid "Document Followers" +msgstr "" + #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite msgid "Invite wizard" diff --git a/mail_restrict_follower_selection/i18n/mail_restrict_follower_selection.pot b/mail_restrict_follower_selection/i18n/mail_restrict_follower_selection.pot new file mode 100644 index 0000000..6bcf2f7 --- /dev/null +++ b/mail_restrict_follower_selection/i18n/mail_restrict_follower_selection.pot @@ -0,0 +1,30 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mail_restrict_follower_selection +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.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_restrict_follower_selection +#: model:ir.actions.act_window,name:mail_restrict_follower_selection.action_setup +msgid "Configure the restriction on followers" +msgstr "" + +#. module: mail_restrict_follower_selection +#: model:ir.model,name:mail_restrict_follower_selection.model_mail_followers +msgid "Document Followers" +msgstr "" + +#. module: mail_restrict_follower_selection +#: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite +msgid "Invite wizard" +msgstr "" + diff --git a/mail_restrict_follower_selection/i18n/sl.po b/mail_restrict_follower_selection/i18n/sl.po index 370eb81..d64d0ba 100644 --- a/mail_restrict_follower_selection/i18n/sl.po +++ b/mail_restrict_follower_selection/i18n/sl.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * mail_restrict_follower_selection -# +# # Translators: # Matjaž Mozetič , 2015 msgid "" @@ -11,18 +11,25 @@ msgstr "" "POT-Creation-Date: 2015-09-30 16:56+0000\n" "PO-Revision-Date: 2015-10-01 13:00+0000\n" "Last-Translator: Matjaž Mozetič \n" -"Language-Team: Slovenian (http://www.transifex.com/oca/OCA-social-8-0/language/sl/)\n" +"Language-Team: Slovenian (http://www.transifex.com/oca/OCA-social-8-0/" +"language/sl/)\n" +"Language: sl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Language: sl\n" -"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" #. module: mail_restrict_follower_selection #: model:ir.actions.act_window,name:mail_restrict_follower_selection.action_setup msgid "Configure the restriction on followers" msgstr "Nastavitev omejitev za sledilce" +#. module: mail_restrict_follower_selection +#: model:ir.model,name:mail_restrict_follower_selection.model_mail_followers +msgid "Document Followers" +msgstr "" + #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite msgid "Invite wizard" diff --git a/mail_restrict_follower_selection/models/__init__.py b/mail_restrict_follower_selection/models/__init__.py index 422ffaf..a757c6b 100644 --- a/mail_restrict_follower_selection/models/__init__.py +++ b/mail_restrict_follower_selection/models/__init__.py @@ -2,4 +2,5 @@ # Copyright (C) 2017 Komit # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from . import mail_followers from . import mail_wizard_invite diff --git a/mail_restrict_follower_selection/models/mail_followers.py b/mail_restrict_follower_selection/models/mail_followers.py new file mode 100644 index 0000000..15e906e --- /dev/null +++ b/mail_restrict_follower_selection/models/mail_followers.py @@ -0,0 +1,24 @@ +# Copyright (C) 2018 Creu Blanca +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import api, models +from odoo.tools.safe_eval import safe_eval + + +class MailFollowers(models.Model): + _inherit = 'mail.followers' + + @api.model + def _add_follower_command(self, res_model, res_ids, partner_data, + channel_data, force=True): + domain = self.env[ + 'mail.wizard.invite' + ]._mail_restrict_follower_selection_get_domain() + partners = self.env['res.partner'].search( + [('id', 'in', list(partner_data))] + + safe_eval(domain) + ) + return super()._add_follower_command( + res_model, res_ids, + {p.id: partner_data[p.id] for p in partners}, + channel_data, force=force) diff --git a/mail_restrict_follower_selection/models/mail_wizard_invite.py b/mail_restrict_follower_selection/models/mail_wizard_invite.py index 216e26b..1d8b31c 100644 --- a/mail_restrict_follower_selection/models/mail_wizard_invite.py +++ b/mail_restrict_follower_selection/models/mail_wizard_invite.py @@ -12,10 +12,10 @@ class MailWizardInvite(models.TransientModel): @api.model def _mail_restrict_follower_selection_get_domain(self): parameter_name = 'mail_restrict_follower_selection.domain' - return self.env['ir.config_parameter'].get_param( + return self.env['ir.config_parameter'].sudo().get_param( "{0}.{1}".format(parameter_name, self.env.context.get('default_res_model')), - self.env['ir.config_parameter'].get_param( + self.env['ir.config_parameter'].sudo().get_param( parameter_name, default='[]') ) diff --git a/mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py b/mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py index d1905b1..4bf6410 100644 --- a/mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py +++ b/mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py @@ -3,14 +3,55 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). from lxml import etree -from openerp.tests.common import TransactionCase +from odoo.tests.common import TransactionCase class TestMailRestrictFollowerSelection(TransactionCase): + def setUp(self): + super().setUp() + self.partner = self.env['res.partner'].create({ + 'name': 'Partner', + 'customer': True, + 'email': 'test@test.com', + }) + def test_fields_view_get(self): result = self.env['mail.wizard.invite'].fields_view_get( view_type='form') for field in etree.fromstring(result['arch']).xpath( '//field[@name="partner_ids"]'): self.assertTrue(field.get('domain')) + + def send_action(self): + compose = self.env['mail.compose.message'].with_context({ + 'mail_post_autofollow': True, + 'default_composition_mode': 'comment', + 'default_model': 'res.partner', + 'default_use_active_domain': True, + }).create({ + 'subject': 'From Composer Test', + 'body': '${object.description}', + 'res_id': self.partner.id, + 'partner_ids': [(4, id) for id in self.partner.ids], + }) + self.assertEqual(compose.partner_ids, self.partner) + compose.send_mail_action() + + def test_followers_meet(self): + self.partner.write({'customer': True}) + self.assertTrue(self.partner.customer) + self.send_action() + self.assertIn( + self.partner, + self.partner.message_follower_ids.mapped('partner_id') + ) + + def test_followers_not_meet(self): + self.partner.write({'customer': False}) + self.assertFalse(self.partner.customer) + self.send_action() + self.assertNotIn( + self.partner, + self.partner.message_follower_ids.mapped('partner_id') + ) From 9dbabe6b29704c047ddc28a6d52c6cb9228874a6 Mon Sep 17 00:00:00 2001 From: c2cdidier Date: Mon, 18 Jun 2018 09:40:13 +0000 Subject: [PATCH 08/27] Translated using Weblate (French) [ci skip] Currently translated at 100.0% (3 of 3 strings) Translation: social-11.0/social-11.0-mail_restrict_follower_selection Translate-URL: https://translation.odoo-community.org/projects/social-11-0/social-11-0-mail_restrict_follower_selection/fr/ --- mail_restrict_follower_selection/i18n/de.po | 30 +++++++++++++++++++++ mail_restrict_follower_selection/i18n/fr.po | 9 ++++--- 2 files changed, 35 insertions(+), 4 deletions(-) create mode 100644 mail_restrict_follower_selection/i18n/de.po diff --git a/mail_restrict_follower_selection/i18n/de.po b/mail_restrict_follower_selection/i18n/de.po new file mode 100644 index 0000000..e731002 --- /dev/null +++ b/mail_restrict_follower_selection/i18n/de.po @@ -0,0 +1,30 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mail_restrict_follower_selection +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: de\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_restrict_follower_selection +#: model:ir.actions.act_window,name:mail_restrict_follower_selection.action_setup +msgid "Configure the restriction on followers" +msgstr "" + +#. module: mail_restrict_follower_selection +#: model:ir.model,name:mail_restrict_follower_selection.model_mail_followers +msgid "Document Followers" +msgstr "" + +#. module: mail_restrict_follower_selection +#: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite +msgid "Invite wizard" +msgstr "" diff --git a/mail_restrict_follower_selection/i18n/fr.po b/mail_restrict_follower_selection/i18n/fr.po index 4a89521..e37d276 100644 --- a/mail_restrict_follower_selection/i18n/fr.po +++ b/mail_restrict_follower_selection/i18n/fr.po @@ -9,14 +9,15 @@ msgstr "" "Project-Id-Version: Odoo Server 10.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-07-22 09:45+0000\n" -"PO-Revision-Date: 2017-07-22 09:45+0000\n" -"Last-Translator: Quentin THEURET , 2017\n" +"PO-Revision-Date: 2018-06-18 09:40+0000\n" +"Last-Translator: c2cdidier \n" "Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n" "Language: fr\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" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 3.0.1\n" #. module: mail_restrict_follower_selection #: model:ir.actions.act_window,name:mail_restrict_follower_selection.action_setup @@ -26,7 +27,7 @@ msgstr "Configurer les restrictions sur les abonnés" #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_followers msgid "Document Followers" -msgstr "" +msgstr "Suiveurs du document" #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite From b8bd728bcbbe23016f47b3d66fa870230af84584 Mon Sep 17 00:00:00 2001 From: Maria Sparenberg Date: Fri, 14 Dec 2018 15:19:49 +0000 Subject: [PATCH 09/27] Translated using Weblate (German) Currently translated at 100.0% (3 of 3 strings) Translation: social-11.0/social-11.0-mail_restrict_follower_selection Translate-URL: https://translation.odoo-community.org/projects/social-11-0/social-11-0-mail_restrict_follower_selection/de/ --- mail_restrict_follower_selection/i18n/de.po | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/mail_restrict_follower_selection/i18n/de.po b/mail_restrict_follower_selection/i18n/de.po index e731002..1495d7c 100644 --- a/mail_restrict_follower_selection/i18n/de.po +++ b/mail_restrict_follower_selection/i18n/de.po @@ -6,25 +6,27 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 11.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2018-12-15 14:58+0000\n" +"Last-Translator: Maria Sparenberg \n" "Language-Team: none\n" "Language: de\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 3.3\n" #. module: mail_restrict_follower_selection #: model:ir.actions.act_window,name:mail_restrict_follower_selection.action_setup msgid "Configure the restriction on followers" -msgstr "" +msgstr "Beschränkung der Abonnenten konfigurieren" #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_followers msgid "Document Followers" -msgstr "" +msgstr "Abonnenten des Dokuments" #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite msgid "Invite wizard" -msgstr "" +msgstr "Assistent zum Einladen von Abonnenten" From 9c3576e1dfeb31668393b9c2d17142252a74fd63 Mon Sep 17 00:00:00 2001 From: Jordi Ballester Alomar Date: Thu, 23 Jan 2020 15:18:11 +0100 Subject: [PATCH 10/27] fixes a corner case where you could send an email to a partner that you are not supposed to. --- mail_restrict_follower_selection/i18n/de.po | 7 +++++- mail_restrict_follower_selection/i18n/en.po | 5 ++++ mail_restrict_follower_selection/i18n/fr.po | 5 ++++ mail_restrict_follower_selection/i18n/hr.po | 5 ++++ mail_restrict_follower_selection/i18n/it.po | 5 ++++ .../i18n/mail_restrict_follower_selection.pot | 5 ++++ mail_restrict_follower_selection/i18n/sl.po | 5 ++++ .../models/__init__.py | 1 + .../models/mail_thread.py | 25 +++++++++++++++++++ 9 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 mail_restrict_follower_selection/models/mail_thread.py diff --git a/mail_restrict_follower_selection/i18n/de.po b/mail_restrict_follower_selection/i18n/de.po index 1495d7c..eff2226 100644 --- a/mail_restrict_follower_selection/i18n/de.po +++ b/mail_restrict_follower_selection/i18n/de.po @@ -1,6 +1,6 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * mail_restrict_follower_selection +# * mail_restrict_follower_selection # msgid "" msgstr "" @@ -26,6 +26,11 @@ msgstr "Beschränkung der Abonnenten konfigurieren" msgid "Document Followers" msgstr "Abonnenten des Dokuments" +#. module: mail_restrict_follower_selection +#: model:ir.model,name:mail_restrict_follower_selection.model_mail_thread +msgid "Email Thread" +msgstr "" + #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite msgid "Invite wizard" diff --git a/mail_restrict_follower_selection/i18n/en.po b/mail_restrict_follower_selection/i18n/en.po index b6c0235..e03abf3 100644 --- a/mail_restrict_follower_selection/i18n/en.po +++ b/mail_restrict_follower_selection/i18n/en.po @@ -28,6 +28,11 @@ msgstr "Configure the restriction on followers" msgid "Document Followers" msgstr "" +#. module: mail_restrict_follower_selection +#: model:ir.model,name:mail_restrict_follower_selection.model_mail_thread +msgid "Email Thread" +msgstr "" + #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite msgid "Invite wizard" diff --git a/mail_restrict_follower_selection/i18n/fr.po b/mail_restrict_follower_selection/i18n/fr.po index e37d276..7f96c92 100644 --- a/mail_restrict_follower_selection/i18n/fr.po +++ b/mail_restrict_follower_selection/i18n/fr.po @@ -29,6 +29,11 @@ msgstr "Configurer les restrictions sur les abonnés" msgid "Document Followers" msgstr "Suiveurs du document" +#. module: mail_restrict_follower_selection +#: model:ir.model,name:mail_restrict_follower_selection.model_mail_thread +msgid "Email Thread" +msgstr "" + #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite msgid "Invite wizard" diff --git a/mail_restrict_follower_selection/i18n/hr.po b/mail_restrict_follower_selection/i18n/hr.po index 4d7bc08..38a74e1 100644 --- a/mail_restrict_follower_selection/i18n/hr.po +++ b/mail_restrict_follower_selection/i18n/hr.po @@ -29,6 +29,11 @@ msgstr "Postavi ograničenja na pratitelje" msgid "Document Followers" msgstr "" +#. module: mail_restrict_follower_selection +#: model:ir.model,name:mail_restrict_follower_selection.model_mail_thread +msgid "Email Thread" +msgstr "" + #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite msgid "Invite wizard" diff --git a/mail_restrict_follower_selection/i18n/it.po b/mail_restrict_follower_selection/i18n/it.po index 10a71b6..54ec814 100644 --- a/mail_restrict_follower_selection/i18n/it.po +++ b/mail_restrict_follower_selection/i18n/it.po @@ -28,6 +28,11 @@ msgstr "Imposta restrizioni sui follower" msgid "Document Followers" msgstr "" +#. module: mail_restrict_follower_selection +#: model:ir.model,name:mail_restrict_follower_selection.model_mail_thread +msgid "Email Thread" +msgstr "" + #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite msgid "Invite wizard" diff --git a/mail_restrict_follower_selection/i18n/mail_restrict_follower_selection.pot b/mail_restrict_follower_selection/i18n/mail_restrict_follower_selection.pot index 6bcf2f7..8a87100 100644 --- a/mail_restrict_follower_selection/i18n/mail_restrict_follower_selection.pot +++ b/mail_restrict_follower_selection/i18n/mail_restrict_follower_selection.pot @@ -23,6 +23,11 @@ msgstr "" msgid "Document Followers" msgstr "" +#. module: mail_restrict_follower_selection +#: model:ir.model,name:mail_restrict_follower_selection.model_mail_thread +msgid "Email Thread" +msgstr "" + #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite msgid "Invite wizard" diff --git a/mail_restrict_follower_selection/i18n/sl.po b/mail_restrict_follower_selection/i18n/sl.po index d64d0ba..b350b02 100644 --- a/mail_restrict_follower_selection/i18n/sl.po +++ b/mail_restrict_follower_selection/i18n/sl.po @@ -30,6 +30,11 @@ msgstr "Nastavitev omejitev za sledilce" msgid "Document Followers" msgstr "" +#. module: mail_restrict_follower_selection +#: model:ir.model,name:mail_restrict_follower_selection.model_mail_thread +msgid "Email Thread" +msgstr "" + #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite msgid "Invite wizard" diff --git a/mail_restrict_follower_selection/models/__init__.py b/mail_restrict_follower_selection/models/__init__.py index a757c6b..d6a528c 100644 --- a/mail_restrict_follower_selection/models/__init__.py +++ b/mail_restrict_follower_selection/models/__init__.py @@ -4,3 +4,4 @@ from . import mail_followers from . import mail_wizard_invite +from . import mail_thread diff --git a/mail_restrict_follower_selection/models/mail_thread.py b/mail_restrict_follower_selection/models/mail_thread.py new file mode 100644 index 0000000..c22dd3d --- /dev/null +++ b/mail_restrict_follower_selection/models/mail_thread.py @@ -0,0 +1,25 @@ +from odoo import api, models +from odoo.tools.safe_eval import safe_eval + + +class MailThread(models.AbstractModel): + _inherit = 'mail.thread' + + @api.multi + def _message_add_suggested_recipient( + self, result, partner=None, email=None, reason=''): + result = super(MailThread, self)._message_add_suggested_recipient( + result, partner=partner, email=email, reason=reason) + domain = self.env[ + 'mail.wizard.invite' + ]._mail_restrict_follower_selection_get_domain() + eval_domain = safe_eval(domain) + for key in result: + for partner_id, email, reason in result[key]: + if partner_id: + partner = self.env['res.partner'].search( + [('id', '=', partner_id)] + eval_domain + ) + if not partner: + result[key].remove((partner_id, email, reason)) + return result From 1c713ad24a2559a80fa67d3d7261ee743317540c Mon Sep 17 00:00:00 2001 From: Enric Tobella Date: Wed, 4 Mar 2020 16:27:05 +0100 Subject: [PATCH 11/27] [12.0][MIG] mail_restrict_follower_selection --- .../__manifest__.py | 7 +----- .../models/mail_followers.py | 25 ++++++++++++------- .../test_mail_restrict_follower_selection.py | 2 +- 3 files changed, 18 insertions(+), 16 deletions(-) diff --git a/mail_restrict_follower_selection/__manifest__.py b/mail_restrict_follower_selection/__manifest__.py index bfeb8bf..cba1fe6 100644 --- a/mail_restrict_follower_selection/__manifest__.py +++ b/mail_restrict_follower_selection/__manifest__.py @@ -4,7 +4,7 @@ { "name": "Restrict follower selection", - "version": "11.0.2.0.0", + "version": "12.0.1.0.0", "author": "Therp BV,Creu Blanca,Odoo Community Association (OCA)", "license": "AGPL-3", "category": "Social Network", @@ -16,10 +16,5 @@ "data/ir_config_parameter.xml", "data/ir_actions.xml", ], - "auto_install": False, 'installable': True, - "application": False, - "external_dependencies": { - 'python': [], - }, } diff --git a/mail_restrict_follower_selection/models/mail_followers.py b/mail_restrict_follower_selection/models/mail_followers.py index 15e906e..c096f1f 100644 --- a/mail_restrict_follower_selection/models/mail_followers.py +++ b/mail_restrict_follower_selection/models/mail_followers.py @@ -1,24 +1,31 @@ # Copyright (C) 2018 Creu Blanca # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -from odoo import api, models +from odoo import models from odoo.tools.safe_eval import safe_eval class MailFollowers(models.Model): _inherit = 'mail.followers' - @api.model - def _add_follower_command(self, res_model, res_ids, partner_data, - channel_data, force=True): + def _add_followers(self, res_model, res_ids, partner_ids, partner_subtypes, + channel_ids, channel_subtypes, + check_existing=False, existing_policy='skip'): domain = self.env[ 'mail.wizard.invite' ]._mail_restrict_follower_selection_get_domain() partners = self.env['res.partner'].search( - [('id', 'in', list(partner_data))] + + [('id', 'in', partner_ids)] + safe_eval(domain) ) - return super()._add_follower_command( - res_model, res_ids, - {p.id: partner_data[p.id] for p in partners}, - channel_data, force=force) + _res_ids = res_ids.copy() or [0] + new, update = super()._add_followers( + res_model, res_ids, partners.ids, partner_subtypes, channel_ids, + channel_subtypes, check_existing=check_existing, + existing_policy=existing_policy + ) + + for res_id in _res_ids: + if res_id not in new: + new.setdefault(res_id, list()) + return new, update diff --git a/mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py b/mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py index 4bf6410..4eb0bb1 100644 --- a/mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py +++ b/mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py @@ -36,7 +36,7 @@ class TestMailRestrictFollowerSelection(TransactionCase): 'partner_ids': [(4, id) for id in self.partner.ids], }) self.assertEqual(compose.partner_ids, self.partner) - compose.send_mail_action() + compose.action_send_mail() def test_followers_meet(self): self.partner.write({'customer': True}) From 347879376f501306dbba339519e968dbe03d2952 Mon Sep 17 00:00:00 2001 From: Joan Sisquella Date: Mon, 9 Mar 2020 15:10:18 +0100 Subject: [PATCH 12/27] [IMP] mail_restrict_follower_selection: black, isort --- .../__manifest__.py | 11 +--- .../models/mail_followers.py | 34 +++++++---- .../models/mail_thread.py | 14 +++-- .../models/mail_wizard_invite.py | 37 +++++++----- .../test_mail_restrict_follower_selection.py | 60 ++++++++++--------- 5 files changed, 88 insertions(+), 68 deletions(-) diff --git a/mail_restrict_follower_selection/__manifest__.py b/mail_restrict_follower_selection/__manifest__.py index cba1fe6..a207322 100644 --- a/mail_restrict_follower_selection/__manifest__.py +++ b/mail_restrict_follower_selection/__manifest__.py @@ -9,12 +9,7 @@ "license": "AGPL-3", "category": "Social Network", "summary": "Define a domain from which followers can be selected", - "depends": [ - 'mail', - ], - "data": [ - "data/ir_config_parameter.xml", - "data/ir_actions.xml", - ], - 'installable': True, + "depends": ["mail"], + "data": ["data/ir_config_parameter.xml", "data/ir_actions.xml"], + "installable": True, } diff --git a/mail_restrict_follower_selection/models/mail_followers.py b/mail_restrict_follower_selection/models/mail_followers.py index c096f1f..a19a27e 100644 --- a/mail_restrict_follower_selection/models/mail_followers.py +++ b/mail_restrict_follower_selection/models/mail_followers.py @@ -6,23 +6,35 @@ from odoo.tools.safe_eval import safe_eval class MailFollowers(models.Model): - _inherit = 'mail.followers' + _inherit = "mail.followers" - def _add_followers(self, res_model, res_ids, partner_ids, partner_subtypes, - channel_ids, channel_subtypes, - check_existing=False, existing_policy='skip'): + def _add_followers( + self, + res_model, + res_ids, + partner_ids, + partner_subtypes, + channel_ids, + channel_subtypes, + check_existing=False, + existing_policy="skip", + ): domain = self.env[ - 'mail.wizard.invite' + "mail.wizard.invite" ]._mail_restrict_follower_selection_get_domain() - partners = self.env['res.partner'].search( - [('id', 'in', partner_ids)] + - safe_eval(domain) + partners = self.env["res.partner"].search( + [("id", "in", partner_ids)] + safe_eval(domain) ) _res_ids = res_ids.copy() or [0] new, update = super()._add_followers( - res_model, res_ids, partners.ids, partner_subtypes, channel_ids, - channel_subtypes, check_existing=check_existing, - existing_policy=existing_policy + res_model, + res_ids, + partners.ids, + partner_subtypes, + channel_ids, + channel_subtypes, + check_existing=check_existing, + existing_policy=existing_policy, ) for res_id in _res_ids: diff --git a/mail_restrict_follower_selection/models/mail_thread.py b/mail_restrict_follower_selection/models/mail_thread.py index c22dd3d..0bacf17 100644 --- a/mail_restrict_follower_selection/models/mail_thread.py +++ b/mail_restrict_follower_selection/models/mail_thread.py @@ -3,22 +3,24 @@ from odoo.tools.safe_eval import safe_eval class MailThread(models.AbstractModel): - _inherit = 'mail.thread' + _inherit = "mail.thread" @api.multi def _message_add_suggested_recipient( - self, result, partner=None, email=None, reason=''): + self, result, partner=None, email=None, reason="" + ): result = super(MailThread, self)._message_add_suggested_recipient( - result, partner=partner, email=email, reason=reason) + result, partner=partner, email=email, reason=reason + ) domain = self.env[ - 'mail.wizard.invite' + "mail.wizard.invite" ]._mail_restrict_follower_selection_get_domain() eval_domain = safe_eval(domain) for key in result: for partner_id, email, reason in result[key]: if partner_id: - partner = self.env['res.partner'].search( - [('id', '=', partner_id)] + eval_domain + partner = self.env["res.partner"].search( + [("id", "=", partner_id)] + eval_domain ) if not partner: result[key].remove((partner_id, email, reason)) diff --git a/mail_restrict_follower_selection/models/mail_wizard_invite.py b/mail_restrict_follower_selection/models/mail_wizard_invite.py index 1d8b31c..e04c486 100644 --- a/mail_restrict_follower_selection/models/mail_wizard_invite.py +++ b/mail_restrict_follower_selection/models/mail_wizard_invite.py @@ -3,31 +3,38 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). from lxml import etree + from odoo import api, models class MailWizardInvite(models.TransientModel): - _inherit = 'mail.wizard.invite' + _inherit = "mail.wizard.invite" @api.model def _mail_restrict_follower_selection_get_domain(self): - parameter_name = 'mail_restrict_follower_selection.domain' - return self.env['ir.config_parameter'].sudo().get_param( - "{0}.{1}".format(parameter_name, - self.env.context.get('default_res_model')), - self.env['ir.config_parameter'].sudo().get_param( - parameter_name, default='[]') + parameter_name = "mail_restrict_follower_selection.domain" + return ( + self.env["ir.config_parameter"] + .sudo() + .get_param( + "{}.{}".format( + parameter_name, self.env.context.get("default_res_model") + ), + self.env["ir.config_parameter"] + .sudo() + .get_param(parameter_name, default="[]"), + ) ) @api.model - def fields_view_get(self, view_id=None, view_type='form', toolbar=False, - submenu=False): + def fields_view_get( + self, view_id=None, view_type="form", toolbar=False, submenu=False + ): result = super(MailWizardInvite, self).fields_view_get( - view_id=view_id, view_type=view_type, toolbar=toolbar, - submenu=submenu) - arch = etree.fromstring(result['arch']) + view_id=view_id, view_type=view_type, toolbar=toolbar, submenu=submenu + ) + arch = etree.fromstring(result["arch"]) for field in arch.xpath('//field[@name="partner_ids"]'): - field.attrib['domain'] = self\ - ._mail_restrict_follower_selection_get_domain() - result['arch'] = etree.tostring(arch) + field.attrib["domain"] = self._mail_restrict_follower_selection_get_domain() + result["arch"] = etree.tostring(arch) return result diff --git a/mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py b/mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py index 4eb0bb1..0b78d65 100644 --- a/mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py +++ b/mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py @@ -3,55 +3,59 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). from lxml import etree + from odoo.tests.common import TransactionCase class TestMailRestrictFollowerSelection(TransactionCase): - def setUp(self): super().setUp() - self.partner = self.env['res.partner'].create({ - 'name': 'Partner', - 'customer': True, - 'email': 'test@test.com', - }) + self.partner = self.env["res.partner"].create( + {"name": "Partner", "customer": True, "email": "test@test.com"} + ) def test_fields_view_get(self): - result = self.env['mail.wizard.invite'].fields_view_get( - view_type='form') - for field in etree.fromstring(result['arch']).xpath( - '//field[@name="partner_ids"]'): - self.assertTrue(field.get('domain')) + result = self.env["mail.wizard.invite"].fields_view_get(view_type="form") + for field in etree.fromstring(result["arch"]).xpath( + '//field[@name="partner_ids"]' + ): + self.assertTrue(field.get("domain")) def send_action(self): - compose = self.env['mail.compose.message'].with_context({ - 'mail_post_autofollow': True, - 'default_composition_mode': 'comment', - 'default_model': 'res.partner', - 'default_use_active_domain': True, - }).create({ - 'subject': 'From Composer Test', - 'body': '${object.description}', - 'res_id': self.partner.id, - 'partner_ids': [(4, id) for id in self.partner.ids], - }) + compose = ( + self.env["mail.compose.message"] + .with_context( + { + "mail_post_autofollow": True, + "default_composition_mode": "comment", + "default_model": "res.partner", + "default_use_active_domain": True, + } + ) + .create( + { + "subject": "From Composer Test", + "body": "${object.description}", + "res_id": self.partner.id, + "partner_ids": [(4, id) for id in self.partner.ids], + } + ) + ) self.assertEqual(compose.partner_ids, self.partner) compose.action_send_mail() def test_followers_meet(self): - self.partner.write({'customer': True}) + self.partner.write({"customer": True}) self.assertTrue(self.partner.customer) self.send_action() self.assertIn( - self.partner, - self.partner.message_follower_ids.mapped('partner_id') + self.partner, self.partner.message_follower_ids.mapped("partner_id") ) def test_followers_not_meet(self): - self.partner.write({'customer': False}) + self.partner.write({"customer": False}) self.assertFalse(self.partner.customer) self.send_action() self.assertNotIn( - self.partner, - self.partner.message_follower_ids.mapped('partner_id') + self.partner, self.partner.message_follower_ids.mapped("partner_id") ) From 7a4b1aa462aece39436d1ff432bb7854d397a862 Mon Sep 17 00:00:00 2001 From: Joan Sisquella Date: Tue, 10 Mar 2020 10:26:49 +0100 Subject: [PATCH 13/27] [MIG] mail_restrict_follower_selection : Migration to 13.0 --- mail_restrict_follower_selection/README.rst | 86 ++-- .../__manifest__.py | 2 +- .../data/ir_config_parameter.xml | 2 +- .../i18n/mail_restrict_follower_selection.pot | 7 +- .../models/mail_thread.py | 3 +- .../readme/CONFIGURE.rst | 11 + .../readme/CONTRIBUTORS.rst | 3 + .../readme/DESCRIPTION.rst | 7 + .../static/description/index.html | 440 ++++++++++++++++++ .../test_mail_restrict_follower_selection.py | 16 +- 10 files changed, 538 insertions(+), 39 deletions(-) create mode 100644 mail_restrict_follower_selection/readme/CONFIGURE.rst create mode 100644 mail_restrict_follower_selection/readme/CONTRIBUTORS.rst create mode 100644 mail_restrict_follower_selection/readme/DESCRIPTION.rst create mode 100644 mail_restrict_follower_selection/static/description/index.html diff --git a/mail_restrict_follower_selection/README.rst b/mail_restrict_follower_selection/README.rst index fb0656d..e09b186 100644 --- a/mail_restrict_follower_selection/README.rst +++ b/mail_restrict_follower_selection/README.rst @@ -1,63 +1,97 @@ -.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg - :alt: License: AGPL-3 - =========================== Restrict follower selection =========================== -This module was written to allow you to restrict the selection of possible followers. For example, if you use the social ERP functions only internally, it makes sense to filter possible followers for being employees. Otherwise, you'll get a quite crowded list of partners to choose from. +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -Moreover, the module disables the option to automatically add followers that do not meet the domain. +.. |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/13.0/mail_restrict_follower_selection + :alt: OCA/social +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/social-13-0/social-13-0-mail_restrict_follower_selection + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/205/13.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module was written to allow you to restrict the selection of possible +followers. For example, if you use the social ERP functions only internally, +it makes sense to filter possible followers for being employees. Otherwise, +you'll get a quite crowded list of partners to choose from. + +Moreover, the module disables the option to automatically add followers that +do not meet the domain. + +**Table of contents** + +.. contents:: + :local: Configuration ============= -To configure this module, you need to go to `System parameters` and adjust `mail_restrict_follower_selection.domain` as you see fit. This restricts followers globally, if you want to restrict only the followers for a certain record type (or have different restrictions for different record types), create a parameter `mail_restrict_follower_selection.domain.$your_model`. +To configure this module, you need to go to `System parameters` and adjust +`mail_restrict_follower_selection.domain` as you see fit. This restricts +followers globally, if you want to restrict only the followers for a certain +record type (or have different restrictions for different record types), +create a parameter `mail_restrict_follower_selection.domain.$your_model`. -As an example, you could use `[('customer', '=', True)]` to allow only customers to be added as follower - this also is the default. +As an example, you could use `[('category_id.name', '=', 'Employees')]` to allow +only contacts with 'Employees' tag to be added as follower - this also is +the default. Note: This module won't change existing followers! -Usage -===== - -.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas - :alt: Try me on Runbot - :target: https://runbot.odoo-community.org/runbot/205/11.0 - -For further information, please visit: - -* https://www.odoo.com/forum/help-1 - 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 smashing it by providing a detailed and welcomed feedback -`here `_. +If you spotted it first, help us smashing it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. Credits ======= +Authors +~~~~~~~ + +* Therp BV +* Creu Blanca + Contributors ------------- +~~~~~~~~~~~~ * Holger Brunn * Nguyen Tan Phuc * Enric Tobella -Maintainer ----------- +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. .. image:: https://odoo-community.org/logo.png :alt: Odoo Community Association :target: https://odoo-community.org -This module is maintained by the OCA. - 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. -To contribute to this module, please visit http://odoo-community.org. +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_restrict_follower_selection/__manifest__.py b/mail_restrict_follower_selection/__manifest__.py index a207322..3911502 100644 --- a/mail_restrict_follower_selection/__manifest__.py +++ b/mail_restrict_follower_selection/__manifest__.py @@ -4,7 +4,7 @@ { "name": "Restrict follower selection", - "version": "12.0.1.0.0", + "version": "13.0.1.0.0", "author": "Therp BV,Creu Blanca,Odoo Community Association (OCA)", "license": "AGPL-3", "category": "Social Network", diff --git a/mail_restrict_follower_selection/data/ir_config_parameter.xml b/mail_restrict_follower_selection/data/ir_config_parameter.xml index f4a1daf..3602566 100644 --- a/mail_restrict_follower_selection/data/ir_config_parameter.xml +++ b/mail_restrict_follower_selection/data/ir_config_parameter.xml @@ -2,6 +2,6 @@ mail_restrict_follower_selection.domain - [('customer', '=', True)] + [('category_id.name', '=', 'Employees')] diff --git a/mail_restrict_follower_selection/i18n/mail_restrict_follower_selection.pot b/mail_restrict_follower_selection/i18n/mail_restrict_follower_selection.pot index 8a87100..5356952 100644 --- a/mail_restrict_follower_selection/i18n/mail_restrict_follower_selection.pot +++ b/mail_restrict_follower_selection/i18n/mail_restrict_follower_selection.pot @@ -1,12 +1,12 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * mail_restrict_follower_selection +# * mail_restrict_follower_selection # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 11.0\n" +"Project-Id-Version: Odoo Server 13.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: <>\n" +"Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -32,4 +32,3 @@ msgstr "" #: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite msgid "Invite wizard" msgstr "" - diff --git a/mail_restrict_follower_selection/models/mail_thread.py b/mail_restrict_follower_selection/models/mail_thread.py index 0bacf17..0193079 100644 --- a/mail_restrict_follower_selection/models/mail_thread.py +++ b/mail_restrict_follower_selection/models/mail_thread.py @@ -1,11 +1,10 @@ -from odoo import api, models +from odoo import models from odoo.tools.safe_eval import safe_eval class MailThread(models.AbstractModel): _inherit = "mail.thread" - @api.multi def _message_add_suggested_recipient( self, result, partner=None, email=None, reason="" ): diff --git a/mail_restrict_follower_selection/readme/CONFIGURE.rst b/mail_restrict_follower_selection/readme/CONFIGURE.rst new file mode 100644 index 0000000..9c23308 --- /dev/null +++ b/mail_restrict_follower_selection/readme/CONFIGURE.rst @@ -0,0 +1,11 @@ +To configure this module, you need to go to `System parameters` and adjust +`mail_restrict_follower_selection.domain` as you see fit. This restricts +followers globally, if you want to restrict only the followers for a certain +record type (or have different restrictions for different record types), +create a parameter `mail_restrict_follower_selection.domain.$your_model`. + +As an example, you could use `[('category_id.name', '=', 'Employees')]` to allow +only contacts with 'Employees' tag to be added as follower - this also is +the default. + +Note: This module won't change existing followers! diff --git a/mail_restrict_follower_selection/readme/CONTRIBUTORS.rst b/mail_restrict_follower_selection/readme/CONTRIBUTORS.rst new file mode 100644 index 0000000..47b2b8d --- /dev/null +++ b/mail_restrict_follower_selection/readme/CONTRIBUTORS.rst @@ -0,0 +1,3 @@ +* Holger Brunn +* Nguyen Tan Phuc +* Enric Tobella diff --git a/mail_restrict_follower_selection/readme/DESCRIPTION.rst b/mail_restrict_follower_selection/readme/DESCRIPTION.rst new file mode 100644 index 0000000..d8867e5 --- /dev/null +++ b/mail_restrict_follower_selection/readme/DESCRIPTION.rst @@ -0,0 +1,7 @@ +This module was written to allow you to restrict the selection of possible +followers. For example, if you use the social ERP functions only internally, +it makes sense to filter possible followers for being employees. Otherwise, +you'll get a quite crowded list of partners to choose from. + +Moreover, the module disables the option to automatically add followers that +do not meet the domain. diff --git a/mail_restrict_follower_selection/static/description/index.html b/mail_restrict_follower_selection/static/description/index.html new file mode 100644 index 0000000..49f0727 --- /dev/null +++ b/mail_restrict_follower_selection/static/description/index.html @@ -0,0 +1,440 @@ + + + + + + +Restrict follower selection + + + +
+

Restrict follower selection

+ + +

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

+

This module was written to allow you to restrict the selection of possible +followers. For example, if you use the social ERP functions only internally, +it makes sense to filter possible followers for being employees. Otherwise, +you’ll get a quite crowded list of partners to choose from.

+

Moreover, the module disables the option to automatically add followers that +do not meet the domain.

+

Table of contents

+ +
+

Configuration

+

To configure this module, you need to go to System parameters and adjust +mail_restrict_follower_selection.domain as you see fit. This restricts +followers globally, if you want to restrict only the followers for a certain +record type (or have different restrictions for different record types), +create a parameter mail_restrict_follower_selection.domain.$your_model.

+

As an example, you could use [(‘category_id.name’, ‘=’, ‘Employees’)] to allow +only contacts with ‘Employees’ tag to be added as follower - this also is +the default.

+

Note: This module won’t change existing followers!

+
+
+

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 smashing it by providing a detailed and welcomed +feedback.

+

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

+
+
+

Credits

+
+

Authors

+
    +
  • Therp BV
  • +
  • Creu Blanca
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+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.

+

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_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py b/mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py index 0b78d65..c4ce705 100644 --- a/mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py +++ b/mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py @@ -10,8 +10,16 @@ from odoo.tests.common import TransactionCase class TestMailRestrictFollowerSelection(TransactionCase): def setUp(self): super().setUp() + self.category_employees = self.env["res.partner.category"].create( + {"name": "Employees"} + ) + self.partner = self.env["res.partner"].create( - {"name": "Partner", "customer": True, "email": "test@test.com"} + { + "name": "Partner", + "category_id": self.category_employees, + "email": "test@test.com", + } ) def test_fields_view_get(self): @@ -45,16 +53,14 @@ class TestMailRestrictFollowerSelection(TransactionCase): compose.action_send_mail() def test_followers_meet(self): - self.partner.write({"customer": True}) - self.assertTrue(self.partner.customer) + self.partner.write({"category_id": self.category_employees}) self.send_action() self.assertIn( self.partner, self.partner.message_follower_ids.mapped("partner_id") ) def test_followers_not_meet(self): - self.partner.write({"customer": False}) - self.assertFalse(self.partner.customer) + self.partner.write({"category_id": False}) self.send_action() self.assertNotIn( self.partner, self.partner.message_follower_ids.mapped("partner_id") From a09f5c806882ca6d630c36abcaf5e41014e81787 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexandre=20D=C3=ADaz?= Date: Wed, 15 Apr 2020 20:47:58 +0200 Subject: [PATCH 14/27] [IMP] mail_restrict_follower_selection: Add condition for tests --- mail_restrict_follower_selection/__manifest__.py | 2 +- mail_restrict_follower_selection/models/mail_thread.py | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/mail_restrict_follower_selection/__manifest__.py b/mail_restrict_follower_selection/__manifest__.py index 3911502..73feb2d 100644 --- a/mail_restrict_follower_selection/__manifest__.py +++ b/mail_restrict_follower_selection/__manifest__.py @@ -4,7 +4,7 @@ { "name": "Restrict follower selection", - "version": "13.0.1.0.0", + "version": "13.0.1.0.1", "author": "Therp BV,Creu Blanca,Odoo Community Association (OCA)", "license": "AGPL-3", "category": "Social Network", diff --git a/mail_restrict_follower_selection/models/mail_thread.py b/mail_restrict_follower_selection/models/mail_thread.py index 0193079..65e616a 100644 --- a/mail_restrict_follower_selection/models/mail_thread.py +++ b/mail_restrict_follower_selection/models/mail_thread.py @@ -1,4 +1,5 @@ from odoo import models +from odoo.tools import config from odoo.tools.safe_eval import safe_eval @@ -11,6 +12,11 @@ class MailThread(models.AbstractModel): result = super(MailThread, self)._message_add_suggested_recipient( result, partner=partner, email=email, reason=reason ) + test_condition = config["test_enable"] and not self.env.context.get( + "test_restrict_follower" + ) + if test_condition or self.env.context.get("no_restrict_follower"): + return result domain = self.env[ "mail.wizard.invite" ]._mail_restrict_follower_selection_get_domain() From dc83104cbf660f15f4ebc96e502688419c5c7b21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexandre=20D=C3=ADaz?= Date: Thu, 16 Apr 2020 19:49:05 +0200 Subject: [PATCH 15/27] [IMP] mail_restrict_follower_selection: Add condition for tests --- mail_restrict_follower_selection/__manifest__.py | 2 +- mail_restrict_follower_selection/models/mail_thread.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mail_restrict_follower_selection/__manifest__.py b/mail_restrict_follower_selection/__manifest__.py index 73feb2d..aa6f46a 100644 --- a/mail_restrict_follower_selection/__manifest__.py +++ b/mail_restrict_follower_selection/__manifest__.py @@ -4,7 +4,7 @@ { "name": "Restrict follower selection", - "version": "13.0.1.0.1", + "version": "13.0.1.0.2", "author": "Therp BV,Creu Blanca,Odoo Community Association (OCA)", "license": "AGPL-3", "category": "Social Network", diff --git a/mail_restrict_follower_selection/models/mail_thread.py b/mail_restrict_follower_selection/models/mail_thread.py index 65e616a..6b1201b 100644 --- a/mail_restrict_follower_selection/models/mail_thread.py +++ b/mail_restrict_follower_selection/models/mail_thread.py @@ -9,7 +9,7 @@ class MailThread(models.AbstractModel): def _message_add_suggested_recipient( self, result, partner=None, email=None, reason="" ): - result = super(MailThread, self)._message_add_suggested_recipient( + result = super()._message_add_suggested_recipient( result, partner=partner, email=email, reason=reason ) test_condition = config["test_enable"] and not self.env.context.get( From e23f569b2deb00ca607ebbfa046f672043b4e825 Mon Sep 17 00:00:00 2001 From: Alessandro Fiorino Date: Thu, 3 Dec 2020 15:52:39 +0000 Subject: [PATCH 16/27] Translated using Weblate (Italian) Currently translated at 75.0% (3 of 4 strings) Translation: social-13.0/social-13.0-mail_restrict_follower_selection Translate-URL: https://translation.odoo-community.org/projects/social-13-0/social-13-0-mail_restrict_follower_selection/it/ --- mail_restrict_follower_selection/i18n/it.po | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mail_restrict_follower_selection/i18n/it.po b/mail_restrict_follower_selection/i18n/it.po index 54ec814..4e2da33 100644 --- a/mail_restrict_follower_selection/i18n/it.po +++ b/mail_restrict_follower_selection/i18n/it.po @@ -9,14 +9,15 @@ msgstr "" "Project-Id-Version: Odoo Server 10.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-17 01:02+0000\n" -"PO-Revision-Date: 2017-05-17 01:02+0000\n" -"Last-Translator: Marius Marolla , 2017\n" +"PO-Revision-Date: 2020-12-03 18:36+0000\n" +"Last-Translator: Alessandro Fiorino \n" "Language-Team: Italian (https://www.transifex.com/oca/teams/23907/it/)\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" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 3.10\n" #. module: mail_restrict_follower_selection #: model:ir.actions.act_window,name:mail_restrict_follower_selection.action_setup @@ -26,7 +27,7 @@ msgstr "Imposta restrizioni sui follower" #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_followers msgid "Document Followers" -msgstr "" +msgstr "Follower Documento" #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_thread From 9174d8a2c513b240ceee58a856290f2b229feb03 Mon Sep 17 00:00:00 2001 From: Jairo Llopis Date: Tue, 26 Jan 2021 14:06:17 +0000 Subject: [PATCH 17/27] [IMP] pre-commit run -a --- mail_restrict_follower_selection/data/ir_actions.xml | 10 +++++++--- .../data/ir_config_parameter.xml | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/mail_restrict_follower_selection/data/ir_actions.xml b/mail_restrict_follower_selection/data/ir_actions.xml index 63c84f0..c41dbab 100644 --- a/mail_restrict_follower_selection/data/ir_actions.xml +++ b/mail_restrict_follower_selection/data/ir_actions.xml @@ -1,7 +1,11 @@ - + - + diff --git a/mail_restrict_follower_selection/data/ir_config_parameter.xml b/mail_restrict_follower_selection/data/ir_config_parameter.xml index 3602566..6c356d7 100644 --- a/mail_restrict_follower_selection/data/ir_config_parameter.xml +++ b/mail_restrict_follower_selection/data/ir_config_parameter.xml @@ -1,4 +1,4 @@ - + mail_restrict_follower_selection.domain From 3d34c5ac892397cd9a518e504bbafe88ad287c15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexandre=20D=2E=20D=C3=ADaz?= Date: Tue, 26 Jan 2021 17:37:52 +0100 Subject: [PATCH 18/27] [IMP] Apply pre-commit changes: Resolve conflicts --- mail_restrict_follower_selection/__manifest__.py | 1 + 1 file changed, 1 insertion(+) diff --git a/mail_restrict_follower_selection/__manifest__.py b/mail_restrict_follower_selection/__manifest__.py index aa6f46a..1a53532 100644 --- a/mail_restrict_follower_selection/__manifest__.py +++ b/mail_restrict_follower_selection/__manifest__.py @@ -8,6 +8,7 @@ "author": "Therp BV,Creu Blanca,Odoo Community Association (OCA)", "license": "AGPL-3", "category": "Social Network", + "website": "https://github.com/OCA/social", "summary": "Define a domain from which followers can be selected", "depends": ["mail"], "data": ["data/ir_config_parameter.xml", "data/ir_actions.xml"], From 3316ab142a1d900043ddc411277364100260daa1 Mon Sep 17 00:00:00 2001 From: Olga Marco Date: Thu, 30 Dec 2021 13:33:52 +0100 Subject: [PATCH 19/27] [MIG] mail_restrict_follower_selection: Migration to 14.0 --- mail_restrict_follower_selection/__manifest__.py | 2 +- .../data/ir_actions.xml | 11 ++++------- .../models/mail_followers.py | 15 +++++++++++++++ .../test_mail_restrict_follower_selection.py | 13 ++++++------- 4 files changed, 26 insertions(+), 15 deletions(-) diff --git a/mail_restrict_follower_selection/__manifest__.py b/mail_restrict_follower_selection/__manifest__.py index 1a53532..2fed8a5 100644 --- a/mail_restrict_follower_selection/__manifest__.py +++ b/mail_restrict_follower_selection/__manifest__.py @@ -4,7 +4,7 @@ { "name": "Restrict follower selection", - "version": "13.0.1.0.2", + "version": "14.0.1.0.0", "author": "Therp BV,Creu Blanca,Odoo Community Association (OCA)", "license": "AGPL-3", "category": "Social Network", diff --git a/mail_restrict_follower_selection/data/ir_actions.xml b/mail_restrict_follower_selection/data/ir_actions.xml index c41dbab..59478e1 100644 --- a/mail_restrict_follower_selection/data/ir_actions.xml +++ b/mail_restrict_follower_selection/data/ir_actions.xml @@ -1,13 +1,10 @@ - - + + Configure the restriction on followers + ir.config_parameter + form Configure the restriction on followers diff --git a/mail_restrict_follower_selection/models/mail_followers.py b/mail_restrict_follower_selection/models/mail_followers.py index a19a27e..06a9aaa 100644 --- a/mail_restrict_follower_selection/models/mail_followers.py +++ b/mail_restrict_follower_selection/models/mail_followers.py @@ -2,6 +2,7 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). from odoo import models +from odoo.tools import config from odoo.tools.safe_eval import safe_eval @@ -19,6 +20,20 @@ class MailFollowers(models.Model): check_existing=False, existing_policy="skip", ): + test_condition = config["test_enable"] and not self.env.context.get( + "test_restrict_follower" + ) + if test_condition or self.env.context.get("no_restrict_follower"): + return super()._add_followers( + res_model, + res_ids, + partner_ids, + partner_subtypes, + channel_ids, + channel_subtypes, + check_existing=check_existing, + existing_policy=existing_policy, + ) domain = self.env[ "mail.wizard.invite" ]._mail_restrict_follower_selection_get_domain() diff --git a/mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py b/mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py index c4ce705..9806569 100644 --- a/mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py +++ b/mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py @@ -33,12 +33,11 @@ class TestMailRestrictFollowerSelection(TransactionCase): compose = ( self.env["mail.compose.message"] .with_context( - { - "mail_post_autofollow": True, - "default_composition_mode": "comment", - "default_model": "res.partner", - "default_use_active_domain": True, - } + mail_post_autofollow=True, + default_composition_mode="comment", + default_model="res.partner", + default_use_active_domain=True, + test_restrict_follower=True, ) .create( { @@ -50,7 +49,7 @@ class TestMailRestrictFollowerSelection(TransactionCase): ) ) self.assertEqual(compose.partner_ids, self.partner) - compose.action_send_mail() + compose.send_mail() def test_followers_meet(self): self.partner.write({"category_id": self.category_employees}) From d6cc4a8aa98be8a7d78a690de2f936375427a154 Mon Sep 17 00:00:00 2001 From: Enrique Date: Thu, 2 Jan 2020 13:45:13 +0100 Subject: [PATCH 20/27] [FIX] mail_restrict_follower_selection: res_model not always in context When creating a record from a record from another model, the model is not in the context (`default_res_model` key). For example: creating an invoice from a sale order. --- .../models/mail_followers.py | 9 ++++---- .../models/mail_wizard_invite.py | 22 ++++++++----------- 2 files changed, 14 insertions(+), 17 deletions(-) diff --git a/mail_restrict_follower_selection/models/mail_followers.py b/mail_restrict_follower_selection/models/mail_followers.py index 06a9aaa..3576e15 100644 --- a/mail_restrict_follower_selection/models/mail_followers.py +++ b/mail_restrict_follower_selection/models/mail_followers.py @@ -35,10 +35,11 @@ class MailFollowers(models.Model): existing_policy=existing_policy, ) domain = self.env[ - "mail.wizard.invite" - ]._mail_restrict_follower_selection_get_domain() - partners = self.env["res.partner"].search( - [("id", "in", partner_ids)] + safe_eval(domain) + 'mail.wizard.invite' + ]._mail_restrict_follower_selection_get_domain(res_model=res_model) + partners = self.env['res.partner'].search( + [('id', 'in', partner_ids)] + + safe_eval(domain) ) _res_ids = res_ids.copy() or [0] new, update = super()._add_followers( diff --git a/mail_restrict_follower_selection/models/mail_wizard_invite.py b/mail_restrict_follower_selection/models/mail_wizard_invite.py index e04c486..0d579f7 100644 --- a/mail_restrict_follower_selection/models/mail_wizard_invite.py +++ b/mail_restrict_follower_selection/models/mail_wizard_invite.py @@ -11,19 +11,15 @@ class MailWizardInvite(models.TransientModel): _inherit = "mail.wizard.invite" @api.model - def _mail_restrict_follower_selection_get_domain(self): - parameter_name = "mail_restrict_follower_selection.domain" - return ( - self.env["ir.config_parameter"] - .sudo() - .get_param( - "{}.{}".format( - parameter_name, self.env.context.get("default_res_model") - ), - self.env["ir.config_parameter"] - .sudo() - .get_param(parameter_name, default="[]"), - ) + def _mail_restrict_follower_selection_get_domain(self, res_model=None): + if not res_model: + res_model = self.env.context.get('default_res_model') + parameter_name = 'mail_restrict_follower_selection.domain' + return self.env['ir.config_parameter'].sudo().get_param( + "{0}.{1}".format(parameter_name, + res_model), + self.env['ir.config_parameter'].sudo().get_param( + parameter_name, default='[]') ) @api.model From 9b95ddd50c7c037f970e57cf43032fc9b6633897 Mon Sep 17 00:00:00 2001 From: angelmoya Date: Tue, 22 Dec 2020 10:18:50 +0100 Subject: [PATCH 21/27] [IMP] mail_restrict_follower_selection: Adding tests and improving pre-commit --- .../models/mail_followers.py | 7 +++---- .../models/mail_wizard_invite.py | 18 +++++++++++------- .../test_mail_restrict_follower_selection.py | 16 ++++++++++++++++ 3 files changed, 30 insertions(+), 11 deletions(-) diff --git a/mail_restrict_follower_selection/models/mail_followers.py b/mail_restrict_follower_selection/models/mail_followers.py index 3576e15..30ca69c 100644 --- a/mail_restrict_follower_selection/models/mail_followers.py +++ b/mail_restrict_follower_selection/models/mail_followers.py @@ -35,11 +35,10 @@ class MailFollowers(models.Model): existing_policy=existing_policy, ) domain = self.env[ - 'mail.wizard.invite' + "mail.wizard.invite" ]._mail_restrict_follower_selection_get_domain(res_model=res_model) - partners = self.env['res.partner'].search( - [('id', 'in', partner_ids)] + - safe_eval(domain) + partners = self.env["res.partner"].search( + [("id", "in", partner_ids)] + safe_eval(domain) ) _res_ids = res_ids.copy() or [0] new, update = super()._add_followers( diff --git a/mail_restrict_follower_selection/models/mail_wizard_invite.py b/mail_restrict_follower_selection/models/mail_wizard_invite.py index 0d579f7..9434f15 100644 --- a/mail_restrict_follower_selection/models/mail_wizard_invite.py +++ b/mail_restrict_follower_selection/models/mail_wizard_invite.py @@ -13,13 +13,17 @@ class MailWizardInvite(models.TransientModel): @api.model def _mail_restrict_follower_selection_get_domain(self, res_model=None): if not res_model: - res_model = self.env.context.get('default_res_model') - parameter_name = 'mail_restrict_follower_selection.domain' - return self.env['ir.config_parameter'].sudo().get_param( - "{0}.{1}".format(parameter_name, - res_model), - self.env['ir.config_parameter'].sudo().get_param( - parameter_name, default='[]') + res_model = self.env.context.get("default_res_model") + parameter_name = "mail_restrict_follower_selection.domain" + return ( + self.env["ir.config_parameter"] + .sudo() + .get_param( + "{}.{}".format(parameter_name, res_model), + self.env["ir.config_parameter"] + .sudo() + .get_param(parameter_name, default="[]"), + ) ) @api.model diff --git a/mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py b/mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py index 9806569..e8bf056 100644 --- a/mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py +++ b/mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py @@ -64,3 +64,19 @@ class TestMailRestrictFollowerSelection(TransactionCase): self.assertNotIn( self.partner, self.partner.message_follower_ids.mapped("partner_id") ) + + def test_message_add_suggested_recipient(self): + res = self.partner.with_context( + test_restrict_follower=True + )._message_add_suggested_recipient({self.partner.id: []}, partner=self.partner) + self.assertEqual(res[self.partner.id][0][0], self.partner.id) + self.env["ir.config_parameter"].create( + { + "key": "mail_restrict_follower_selection.domain.res.partner", + "value": "[('category_id.name', '!=', 'Employees')]", + } + ) + new_res = self.partner.with_context( + test_restrict_follower=True + )._message_add_suggested_recipient({self.partner.id: []}) + self.assertFalse(new_res[self.partner.id][0][0]) From 816d0850aea71c6d269f71751c09c54efe10038e Mon Sep 17 00:00:00 2001 From: oca-travis Date: Tue, 3 May 2022 13:45:58 +0000 Subject: [PATCH 22/27] [UPD] Update mail_restrict_follower_selection.pot --- .../i18n/mail_restrict_follower_selection.pot | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/mail_restrict_follower_selection/i18n/mail_restrict_follower_selection.pot b/mail_restrict_follower_selection/i18n/mail_restrict_follower_selection.pot index 5356952..f893483 100644 --- a/mail_restrict_follower_selection/i18n/mail_restrict_follower_selection.pot +++ b/mail_restrict_follower_selection/i18n/mail_restrict_follower_selection.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 13.0\n" +"Project-Id-Version: Odoo Server 14.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" @@ -18,6 +18,13 @@ msgstr "" msgid "Configure the restriction on followers" msgstr "" +#. module: mail_restrict_follower_selection +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_followers__display_name +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_thread__display_name +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_wizard_invite__display_name +msgid "Display Name" +msgstr "" + #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_followers msgid "Document Followers" @@ -28,7 +35,21 @@ msgstr "" msgid "Email Thread" msgstr "" +#. module: mail_restrict_follower_selection +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_followers__id +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_thread__id +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_wizard_invite__id +msgid "ID" +msgstr "" + #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite msgid "Invite wizard" msgstr "" + +#. module: mail_restrict_follower_selection +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_followers____last_update +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_thread____last_update +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_wizard_invite____last_update +msgid "Last Modified on" +msgstr "" From 9b0baff807f09979d404dc7310c9c8b6098624fc Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Tue, 3 May 2022 13:55:20 +0000 Subject: [PATCH 23/27] [UPD] README.rst --- mail_restrict_follower_selection/README.rst | 10 +++++----- .../static/description/index.html | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/mail_restrict_follower_selection/README.rst b/mail_restrict_follower_selection/README.rst index e09b186..fa09fa3 100644 --- a/mail_restrict_follower_selection/README.rst +++ b/mail_restrict_follower_selection/README.rst @@ -14,13 +14,13 @@ Restrict follower selection :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/13.0/mail_restrict_follower_selection + :target: https://github.com/OCA/social/tree/14.0/mail_restrict_follower_selection :alt: OCA/social .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/social-13-0/social-13-0-mail_restrict_follower_selection + :target: https://translation.odoo-community.org/projects/social-14-0/social-14-0-mail_restrict_follower_selection :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/205/13.0 + :target: https://runbot.odoo-community.org/runbot/205/14.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -59,7 +59,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 smashing it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -92,6 +92,6 @@ 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. -This module is part of the `OCA/social `_ project on GitHub. +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_restrict_follower_selection/static/description/index.html b/mail_restrict_follower_selection/static/description/index.html index 49f0727..5b5b44f 100644 --- a/mail_restrict_follower_selection/static/description/index.html +++ b/mail_restrict_follower_selection/static/description/index.html @@ -367,7 +367,7 @@ ul.auto-toc { !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

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

+

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

This module was written to allow you to restrict the selection of possible followers. For example, if you use the social ERP functions only internally, it makes sense to filter possible followers for being employees. Otherwise, @@ -404,7 +404,7 @@ the default.

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 smashing it by providing a detailed and welcomed -feedback.

+feedback.

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

@@ -431,7 +431,7 @@ If you spotted it first, help us smashing it by providing a detailed and welcome

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.

-

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

+

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.

From 5d7716a557d1691dd13af426ed0634a776d36500 Mon Sep 17 00:00:00 2001 From: OCA Transbot Date: Tue, 3 May 2022 14:53:17 +0000 Subject: [PATCH 24/27] Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: social-14.0/social-14.0-mail_restrict_follower_selection Translate-URL: https://translation.odoo-community.org/projects/social-14-0/social-14-0-mail_restrict_follower_selection/ --- mail_restrict_follower_selection/i18n/de.po | 21 +++++++++++++++++++++ mail_restrict_follower_selection/i18n/fr.po | 21 +++++++++++++++++++++ mail_restrict_follower_selection/i18n/hr.po | 21 +++++++++++++++++++++ mail_restrict_follower_selection/i18n/it.po | 21 +++++++++++++++++++++ mail_restrict_follower_selection/i18n/sl.po | 21 +++++++++++++++++++++ 5 files changed, 105 insertions(+) diff --git a/mail_restrict_follower_selection/i18n/de.po b/mail_restrict_follower_selection/i18n/de.po index eff2226..953f26e 100644 --- a/mail_restrict_follower_selection/i18n/de.po +++ b/mail_restrict_follower_selection/i18n/de.po @@ -21,6 +21,13 @@ msgstr "" msgid "Configure the restriction on followers" msgstr "Beschränkung der Abonnenten konfigurieren" +#. module: mail_restrict_follower_selection +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_followers__display_name +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_thread__display_name +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_wizard_invite__display_name +msgid "Display Name" +msgstr "" + #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_followers msgid "Document Followers" @@ -31,7 +38,21 @@ msgstr "Abonnenten des Dokuments" msgid "Email Thread" msgstr "" +#. module: mail_restrict_follower_selection +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_followers__id +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_thread__id +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_wizard_invite__id +msgid "ID" +msgstr "" + #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite msgid "Invite wizard" msgstr "Assistent zum Einladen von Abonnenten" + +#. module: mail_restrict_follower_selection +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_followers____last_update +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_thread____last_update +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_wizard_invite____last_update +msgid "Last Modified on" +msgstr "" diff --git a/mail_restrict_follower_selection/i18n/fr.po b/mail_restrict_follower_selection/i18n/fr.po index 7f96c92..545f0b1 100644 --- a/mail_restrict_follower_selection/i18n/fr.po +++ b/mail_restrict_follower_selection/i18n/fr.po @@ -24,6 +24,13 @@ msgstr "" msgid "Configure the restriction on followers" msgstr "Configurer les restrictions sur les abonnés" +#. module: mail_restrict_follower_selection +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_followers__display_name +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_thread__display_name +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_wizard_invite__display_name +msgid "Display Name" +msgstr "" + #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_followers msgid "Document Followers" @@ -34,7 +41,21 @@ msgstr "Suiveurs du document" msgid "Email Thread" msgstr "" +#. module: mail_restrict_follower_selection +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_followers__id +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_thread__id +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_wizard_invite__id +msgid "ID" +msgstr "" + #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite msgid "Invite wizard" msgstr "Assistant d'invitation" + +#. module: mail_restrict_follower_selection +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_followers____last_update +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_thread____last_update +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_wizard_invite____last_update +msgid "Last Modified on" +msgstr "" diff --git a/mail_restrict_follower_selection/i18n/hr.po b/mail_restrict_follower_selection/i18n/hr.po index 38a74e1..da6cfb4 100644 --- a/mail_restrict_follower_selection/i18n/hr.po +++ b/mail_restrict_follower_selection/i18n/hr.po @@ -24,6 +24,13 @@ msgstr "" msgid "Configure the restriction on followers" msgstr "Postavi ograničenja na pratitelje" +#. module: mail_restrict_follower_selection +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_followers__display_name +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_thread__display_name +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_wizard_invite__display_name +msgid "Display Name" +msgstr "" + #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_followers msgid "Document Followers" @@ -34,7 +41,21 @@ msgstr "" msgid "Email Thread" msgstr "" +#. module: mail_restrict_follower_selection +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_followers__id +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_thread__id +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_wizard_invite__id +msgid "ID" +msgstr "" + #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite msgid "Invite wizard" msgstr "Čarobnjak za pozivnce" + +#. module: mail_restrict_follower_selection +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_followers____last_update +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_thread____last_update +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_wizard_invite____last_update +msgid "Last Modified on" +msgstr "" diff --git a/mail_restrict_follower_selection/i18n/it.po b/mail_restrict_follower_selection/i18n/it.po index 4e2da33..22960b3 100644 --- a/mail_restrict_follower_selection/i18n/it.po +++ b/mail_restrict_follower_selection/i18n/it.po @@ -24,6 +24,13 @@ msgstr "" msgid "Configure the restriction on followers" msgstr "Imposta restrizioni sui follower" +#. module: mail_restrict_follower_selection +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_followers__display_name +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_thread__display_name +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_wizard_invite__display_name +msgid "Display Name" +msgstr "" + #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_followers msgid "Document Followers" @@ -34,7 +41,21 @@ msgstr "Follower Documento" msgid "Email Thread" msgstr "" +#. module: mail_restrict_follower_selection +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_followers__id +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_thread__id +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_wizard_invite__id +msgid "ID" +msgstr "" + #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite msgid "Invite wizard" msgstr "Wizard Creazione Invito" + +#. module: mail_restrict_follower_selection +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_followers____last_update +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_thread____last_update +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_wizard_invite____last_update +msgid "Last Modified on" +msgstr "" diff --git a/mail_restrict_follower_selection/i18n/sl.po b/mail_restrict_follower_selection/i18n/sl.po index b350b02..c6e049a 100644 --- a/mail_restrict_follower_selection/i18n/sl.po +++ b/mail_restrict_follower_selection/i18n/sl.po @@ -25,6 +25,13 @@ msgstr "" msgid "Configure the restriction on followers" msgstr "Nastavitev omejitev za sledilce" +#. module: mail_restrict_follower_selection +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_followers__display_name +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_thread__display_name +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_wizard_invite__display_name +msgid "Display Name" +msgstr "" + #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_followers msgid "Document Followers" @@ -35,7 +42,21 @@ msgstr "" msgid "Email Thread" msgstr "" +#. module: mail_restrict_follower_selection +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_followers__id +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_thread__id +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_wizard_invite__id +msgid "ID" +msgstr "" + #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite msgid "Invite wizard" msgstr "Čarovnik za vabila" + +#. module: mail_restrict_follower_selection +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_followers____last_update +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_thread____last_update +#: model:ir.model.fields,field_description:mail_restrict_follower_selection.field_mail_wizard_invite____last_update +msgid "Last Modified on" +msgstr "" From 6b2fc04795d3bbff9b44b369723c19003339d508 Mon Sep 17 00:00:00 2001 From: Aungkokolin1997 Date: Thu, 15 Sep 2022 09:37:52 +0630 Subject: [PATCH 25/27] [IMP] mail_restrict_follower_selection: black, isort, prettier --- .../odoo/addons/mail_restrict_follower_selection | 1 + setup/mail_restrict_follower_selection/setup.py | 6 ++++++ 2 files changed, 7 insertions(+) create mode 120000 setup/mail_restrict_follower_selection/odoo/addons/mail_restrict_follower_selection create mode 100644 setup/mail_restrict_follower_selection/setup.py diff --git a/setup/mail_restrict_follower_selection/odoo/addons/mail_restrict_follower_selection b/setup/mail_restrict_follower_selection/odoo/addons/mail_restrict_follower_selection new file mode 120000 index 0000000..298f2f7 --- /dev/null +++ b/setup/mail_restrict_follower_selection/odoo/addons/mail_restrict_follower_selection @@ -0,0 +1 @@ +../../../../mail_restrict_follower_selection \ No newline at end of file diff --git a/setup/mail_restrict_follower_selection/setup.py b/setup/mail_restrict_follower_selection/setup.py new file mode 100644 index 0000000..28c57bb --- /dev/null +++ b/setup/mail_restrict_follower_selection/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +) From 5518f90a6d8d5d37a2043790da43e7ea78c23be9 Mon Sep 17 00:00:00 2001 From: Aungkokolin1997 Date: Thu, 15 Sep 2022 09:43:33 +0630 Subject: [PATCH 26/27] [15.0][MIG] mail_restrict_follower_selection: Migration to 15.0 --- mail_restrict_follower_selection/README.rst | 10 +++++----- mail_restrict_follower_selection/__manifest__.py | 2 +- .../models/mail_followers.py | 12 +++--------- .../static/description/index.html | 8 ++++---- .../tests/test_mail_restrict_follower_selection.py | 2 +- 5 files changed, 14 insertions(+), 20 deletions(-) diff --git a/mail_restrict_follower_selection/README.rst b/mail_restrict_follower_selection/README.rst index fa09fa3..5396f0e 100644 --- a/mail_restrict_follower_selection/README.rst +++ b/mail_restrict_follower_selection/README.rst @@ -14,13 +14,13 @@ Restrict follower selection :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/14.0/mail_restrict_follower_selection + :target: https://github.com/OCA/social/tree/15.0/mail_restrict_follower_selection :alt: OCA/social .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/social-14-0/social-14-0-mail_restrict_follower_selection + :target: https://translation.odoo-community.org/projects/social-15-0/social-15-0-mail_restrict_follower_selection :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/205/14.0 + :target: https://runbot.odoo-community.org/runbot/205/15.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -59,7 +59,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 smashing it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -92,6 +92,6 @@ 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. -This module is part of the `OCA/social `_ project on GitHub. +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_restrict_follower_selection/__manifest__.py b/mail_restrict_follower_selection/__manifest__.py index 2fed8a5..26ba3fd 100644 --- a/mail_restrict_follower_selection/__manifest__.py +++ b/mail_restrict_follower_selection/__manifest__.py @@ -4,7 +4,7 @@ { "name": "Restrict follower selection", - "version": "14.0.1.0.0", + "version": "15.0.1.0.0", "author": "Therp BV,Creu Blanca,Odoo Community Association (OCA)", "license": "AGPL-3", "category": "Social Network", diff --git a/mail_restrict_follower_selection/models/mail_followers.py b/mail_restrict_follower_selection/models/mail_followers.py index 30ca69c..2963492 100644 --- a/mail_restrict_follower_selection/models/mail_followers.py +++ b/mail_restrict_follower_selection/models/mail_followers.py @@ -14,9 +14,7 @@ class MailFollowers(models.Model): res_model, res_ids, partner_ids, - partner_subtypes, - channel_ids, - channel_subtypes, + subtypes, check_existing=False, existing_policy="skip", ): @@ -28,9 +26,7 @@ class MailFollowers(models.Model): res_model, res_ids, partner_ids, - partner_subtypes, - channel_ids, - channel_subtypes, + subtypes, check_existing=check_existing, existing_policy=existing_policy, ) @@ -45,9 +41,7 @@ class MailFollowers(models.Model): res_model, res_ids, partners.ids, - partner_subtypes, - channel_ids, - channel_subtypes, + subtypes, check_existing=check_existing, existing_policy=existing_policy, ) diff --git a/mail_restrict_follower_selection/static/description/index.html b/mail_restrict_follower_selection/static/description/index.html index 5b5b44f..062f7e3 100644 --- a/mail_restrict_follower_selection/static/description/index.html +++ b/mail_restrict_follower_selection/static/description/index.html @@ -3,7 +3,7 @@ - + Restrict follower selection