From 9e9b8e7106b6a098e2f73159666a59a40b00c6f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A0n=20Todorovich?= Date: Mon, 9 Aug 2021 15:10:40 -0300 Subject: [PATCH 01/17] [ADD] mail_autosubscribe --- mail_autosubscribe/__init__.py | 1 + mail_autosubscribe/__manifest__.py | 20 +++ mail_autosubscribe/models/__init__.py | 5 + .../models/mail_autosubscribe.py | 42 ++++++ mail_autosubscribe/models/mail_template.py | 34 +++++ mail_autosubscribe/models/mail_thread.py | 27 ++++ mail_autosubscribe/models/models.py | 37 +++++ mail_autosubscribe/models/res_partner.py | 16 +++ mail_autosubscribe/readme/CONFIGURE.rst | 8 ++ mail_autosubscribe/readme/CONTRIBUTORS.rst | 3 + mail_autosubscribe/readme/DESCRIPTION.rst | 5 + mail_autosubscribe/readme/ROADMAP.rst | 3 + .../security/ir.model.access.csv | 3 + mail_autosubscribe/tests/__init__.py | 1 + mail_autosubscribe/tests/models/__init__.py | 1 + mail_autosubscribe/tests/models/fake_order.py | 13 ++ .../tests/test_mail_autosubscribe.py | 132 ++++++++++++++++++ .../views/mail_autosubscribe.xml | 53 +++++++ mail_autosubscribe/views/mail_template.xml | 19 +++ mail_autosubscribe/views/res_partner.xml | 35 +++++ 20 files changed, 458 insertions(+) create mode 100644 mail_autosubscribe/__init__.py create mode 100644 mail_autosubscribe/__manifest__.py create mode 100644 mail_autosubscribe/models/__init__.py create mode 100644 mail_autosubscribe/models/mail_autosubscribe.py create mode 100644 mail_autosubscribe/models/mail_template.py create mode 100644 mail_autosubscribe/models/mail_thread.py create mode 100644 mail_autosubscribe/models/models.py create mode 100644 mail_autosubscribe/models/res_partner.py create mode 100644 mail_autosubscribe/readme/CONFIGURE.rst create mode 100644 mail_autosubscribe/readme/CONTRIBUTORS.rst create mode 100644 mail_autosubscribe/readme/DESCRIPTION.rst create mode 100644 mail_autosubscribe/readme/ROADMAP.rst create mode 100644 mail_autosubscribe/security/ir.model.access.csv create mode 100644 mail_autosubscribe/tests/__init__.py create mode 100644 mail_autosubscribe/tests/models/__init__.py create mode 100644 mail_autosubscribe/tests/models/fake_order.py create mode 100644 mail_autosubscribe/tests/test_mail_autosubscribe.py create mode 100644 mail_autosubscribe/views/mail_autosubscribe.xml create mode 100644 mail_autosubscribe/views/mail_template.xml create mode 100644 mail_autosubscribe/views/res_partner.xml diff --git a/mail_autosubscribe/__init__.py b/mail_autosubscribe/__init__.py new file mode 100644 index 000000000..0650744f6 --- /dev/null +++ b/mail_autosubscribe/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/mail_autosubscribe/__manifest__.py b/mail_autosubscribe/__manifest__.py new file mode 100644 index 000000000..6be09d178 --- /dev/null +++ b/mail_autosubscribe/__manifest__.py @@ -0,0 +1,20 @@ +# Copyright 2021 Camptocamp (http://www.camptocamp.com). +# @author Iván Todorovich +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +{ + "name": "Mail Autosubscribe", + "summary": "Automatically subscribe partners to its company's business documents", + "version": "14.0.1.0.0", + "author": "Camptocamp SA, Odoo Community Association (OCA)", + "license": "AGPL-3", + "category": "Marketing", + "depends": ["mail"], + "website": "https://github.com/OCA/social", + "data": [ + "security/ir.model.access.csv", + "views/mail_autosubscribe.xml", + "views/mail_template.xml", + "views/res_partner.xml", + ], +} diff --git a/mail_autosubscribe/models/__init__.py b/mail_autosubscribe/models/__init__.py new file mode 100644 index 000000000..84c59e66d --- /dev/null +++ b/mail_autosubscribe/models/__init__.py @@ -0,0 +1,5 @@ +from . import models +from . import res_partner +from . import mail_thread +from . import mail_autosubscribe +from . import mail_template diff --git a/mail_autosubscribe/models/mail_autosubscribe.py b/mail_autosubscribe/models/mail_autosubscribe.py new file mode 100644 index 000000000..96e0382c3 --- /dev/null +++ b/mail_autosubscribe/models/mail_autosubscribe.py @@ -0,0 +1,42 @@ +# Copyright 2021 Camptocamp (http://www.camptocamp.com). +# @author Iván Todorovich +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import api, fields, models + + +class MailAutosubscribe(models.Model): + _name = "mail.autosubscribe" + _description = "Mail Autosubscribe" + + _sql_constraints = [ + ( + "model_id_unique", + "UNIQUE(model_id)", + "There's already a rule for this model", + ) + ] + + model_id = fields.Many2one( + "ir.model", + required=True, + index=True, + ondelete="cascade", + ) + model = fields.Char( + related="model_id.model", + string="Model Name", + store=True, + index=True, + ) + name = fields.Char( + compute="_compute_name", + store=True, + readonly=False, + ) + + @api.depends("model_id") + def _compute_name(self): + for rec in self: + if not rec.name: + rec.name = rec.model_id.name diff --git a/mail_autosubscribe/models/mail_template.py b/mail_autosubscribe/models/mail_template.py new file mode 100644 index 000000000..abbf25197 --- /dev/null +++ b/mail_autosubscribe/models/mail_template.py @@ -0,0 +1,34 @@ +# Copyright 2021 Camptocamp (http://www.camptocamp.com). +# @author Iván Todorovich +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class MailTemplate(models.Model): + _inherit = "mail.template" + + use_autosubscribe_followers = fields.Boolean(default=True) + + def generate_recipients(self, results, res_ids): + res = super().generate_recipients(results, res_ids) + autosubscribe_followers = ( + self.use_autosubscribe_followers + and not self.env.context.get("no_autosubscribe_followers") + # In this case, autosubscribers will be added by + # :func:`_message_get_default_recipients` + and not self.use_default_to + and not self.env.context.get("tpl_force_default_to") + ) + if autosubscribe_followers: + for res_id in res.keys(): + partners = ( + self.env["res.partner"].sudo().browse(res[res_id]["partner_ids"]) + ) + ResModel = self.env[self.model] + followers = ResModel._message_get_autosubscribe_followers(partners) + follower_ids = [ + follower.id for follower in followers if follower not in partners + ] + res[res_id]["partner_ids"] += follower_ids + return res diff --git a/mail_autosubscribe/models/mail_thread.py b/mail_autosubscribe/models/mail_thread.py new file mode 100644 index 000000000..94f421113 --- /dev/null +++ b/mail_autosubscribe/models/mail_thread.py @@ -0,0 +1,27 @@ +# Copyright 2021 Camptocamp (http://www.camptocamp.com). +# @author Iván Todorovich +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import models + + +class MailThread(models.AbstractModel): + _inherit = "mail.thread" + + def message_subscribe(self, partner_ids=None, channel_ids=None, subtype_ids=None): + # Overload to automatically subscribe autosubscribe followers. + autosubscribe_followers = not self.env.context.get("no_autosubscribe_followers") + if partner_ids and autosubscribe_followers: + partners = self.env["res.partner"].sudo().browse(partner_ids) + followers = self._message_get_autosubscribe_followers(partners) + follower_ids = [ + follower.id + for follower in followers + if follower not in partners and follower not in self.message_partner_ids + ] + partner_ids += follower_ids + return super().message_subscribe( + partner_ids=partner_ids, + channel_ids=channel_ids, + subtype_ids=subtype_ids, + ) diff --git a/mail_autosubscribe/models/models.py b/mail_autosubscribe/models/models.py new file mode 100644 index 000000000..77f1a5d88 --- /dev/null +++ b/mail_autosubscribe/models/models.py @@ -0,0 +1,37 @@ +# Copyright 2021 Camptocamp (http://www.camptocamp.com). +# @author Iván Todorovich +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import api, models + + +class BaseModel(models.AbstractModel): + _inherit = "base" + + @api.model + def _message_get_autosubscribe_followers_domain(self, partners): + return [ + ("id", "child_of", partners.commercial_partner_id.ids), + ("mail_autosubscribe_ids.model", "=", self._name), + ] + + @api.model + def _message_get_autosubscribe_followers(self, partners): + domain = self._message_get_autosubscribe_followers_domain(partners) + return self.env["res.partner"].sudo().search(domain) + + def _message_get_default_recipients(self): + # Overload to include auto follow document partners in the composer + # Note: This only works if the template is configured with 'Default recipients' + res = super()._message_get_default_recipients() + if self.env.context.get("no_autosubscribe_followers"): + return res + for rec in self: + partner_ids = res[rec.id]["partner_ids"] + partners = self.env["res.partner"].sudo().browse(partner_ids) + followers = rec._message_get_autosubscribe_followers(partners) + follower_ids = [ + follower.id for follower in followers if follower not in partners + ] + partner_ids += follower_ids + return res diff --git a/mail_autosubscribe/models/res_partner.py b/mail_autosubscribe/models/res_partner.py new file mode 100644 index 000000000..a3848abd8 --- /dev/null +++ b/mail_autosubscribe/models/res_partner.py @@ -0,0 +1,16 @@ +# Copyright 2021 Camptocamp (http://www.camptocamp.com). +# @author Iván Todorovich +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class ResPartner(models.Model): + _inherit = "res.partner" + + mail_autosubscribe_ids = fields.Many2many( + "mail.autosubscribe", + string="Autosubscribe Models", + column1="partner_id", + column2="model_id", + ) diff --git a/mail_autosubscribe/readme/CONFIGURE.rst b/mail_autosubscribe/readme/CONFIGURE.rst new file mode 100644 index 000000000..f8af04401 --- /dev/null +++ b/mail_autosubscribe/readme/CONFIGURE.rst @@ -0,0 +1,8 @@ +Go to Configuration > Technical > Automation > Autosubscribe Models and configure +the models for which you want the feature to work. + +Then, on each partner, you can check the company documents subscriptions in the +field `In copy of`. + +This feature can be disabled on specific templates, if required, by disabling the +Autosubscribe followers field. diff --git a/mail_autosubscribe/readme/CONTRIBUTORS.rst b/mail_autosubscribe/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000..df7472d00 --- /dev/null +++ b/mail_autosubscribe/readme/CONTRIBUTORS.rst @@ -0,0 +1,3 @@ +* `Camptocamp `_ + + * Iván Todorovich diff --git a/mail_autosubscribe/readme/DESCRIPTION.rst b/mail_autosubscribe/readme/DESCRIPTION.rst new file mode 100644 index 000000000..cf2d11484 --- /dev/null +++ b/mail_autosubscribe/readme/DESCRIPTION.rst @@ -0,0 +1,5 @@ +This module allows you to configure partners that will be automatically in copy +of their company's business documents. + +For example, you can configure an accountant to be in copy of all invoices +sent for a given commercial partner, regardless of the invoicing address. diff --git a/mail_autosubscribe/readme/ROADMAP.rst b/mail_autosubscribe/readme/ROADMAP.rst new file mode 100644 index 000000000..893174032 --- /dev/null +++ b/mail_autosubscribe/readme/ROADMAP.rst @@ -0,0 +1,3 @@ +* Consider implementing domain-based autosubscription rules. + This was considered during first development but it wasn't a requirement at the time. + If pursuit, this has to be done carefully to avoid affecting performance. diff --git a/mail_autosubscribe/security/ir.model.access.csv b/mail_autosubscribe/security/ir.model.access.csv new file mode 100644 index 000000000..e517cc4b1 --- /dev/null +++ b/mail_autosubscribe/security/ir.model.access.csv @@ -0,0 +1,3 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_mail_autosubscribe_user,access_mail_autosubscribe_user,model_mail_autosubscribe,base.group_user,1,0,0,0 +access_mail_autosubscribe_system,access_mail_autosubscribe_system,model_mail_autosubscribe,base.group_system,1,1,1,1 diff --git a/mail_autosubscribe/tests/__init__.py b/mail_autosubscribe/tests/__init__.py new file mode 100644 index 000000000..a59dadaee --- /dev/null +++ b/mail_autosubscribe/tests/__init__.py @@ -0,0 +1 @@ +from . import test_mail_autosubscribe diff --git a/mail_autosubscribe/tests/models/__init__.py b/mail_autosubscribe/tests/models/__init__.py new file mode 100644 index 000000000..4327a4b6e --- /dev/null +++ b/mail_autosubscribe/tests/models/__init__.py @@ -0,0 +1 @@ +from . import fake_order diff --git a/mail_autosubscribe/tests/models/fake_order.py b/mail_autosubscribe/tests/models/fake_order.py new file mode 100644 index 000000000..b14a40f17 --- /dev/null +++ b/mail_autosubscribe/tests/models/fake_order.py @@ -0,0 +1,13 @@ +# Copyright 2021 Camptocamp (http://www.camptocamp.com). +# @author Iván Todorovich +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class FakeOrder(models.Model): + _name = "fake.order" + _inherit = "mail.thread" + _description = "Fake sale.order like model" + + partner_id = fields.Many2one("res.partner", required=True) diff --git a/mail_autosubscribe/tests/test_mail_autosubscribe.py b/mail_autosubscribe/tests/test_mail_autosubscribe.py new file mode 100644 index 000000000..62d15733c --- /dev/null +++ b/mail_autosubscribe/tests/test_mail_autosubscribe.py @@ -0,0 +1,132 @@ +# Copyright 2021 Camptocamp (http://www.camptocamp.com). +# @author Iván Todorovich +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo_test_helper import FakeModelLoader + +from odoo.tests.common import Form, SavepointCase, tagged + + +@tagged("post_install", "-at_install") +class TestMailAutosubscribe(SavepointCase): + @classmethod + def setUpClass(cls): + super().setUpClass() + # Setup env + cls.env = cls.env(context=dict(cls.env.context, tracking_disable=True)) + # Load fake order model + cls.loader = FakeModelLoader(cls.env, cls.__module__) + cls.loader.backup_registry() + from .models.fake_order import FakeOrder + + cls.loader.update_registry((FakeOrder,)) + cls.fake_order_model = cls.env["ir.model"].search( + [("model", "=", "fake.order")] + ) + # Email Template + cls.mail_template = cls.env["mail.template"].create( + { + "model_id": cls.fake_order_model.id, + "name": "Fake Order: Send by Mail", + "subject": "Fake Order: ${object.partner_id.name}", + "partner_to": "${object.partner_id.id}", + "body_html": "Hello, this is a fake order", + } + ) + # Partners + cls.commercial_partner = cls.env.ref("base.res_partner_4") + cls.partner_1 = cls.env.ref("base.res_partner_address_13") + cls.partner_2 = cls.env.ref("base.res_partner_address_14") + cls.partner_3 = cls.env.ref("base.res_partner_address_24") + # Autosubscribe rules + cls.autosubscribe_fake_order = cls.env["mail.autosubscribe"].create( + {"model_id": cls.fake_order_model.id} + ) + cls.partner_3.mail_autosubscribe_ids = [(4, cls.autosubscribe_fake_order.id)] + # Empty fake.order + cls.order = cls.env["fake.order"].create({"partner_id": cls.partner_2.id}) + + @classmethod + def tearDownClass(cls): + cls.loader.restore_registry() + return super().tearDownClass() + + def test_message_subscribe(self): + """Test autosubscribe on a basic workflow""" + self.assertFalse(self.order.message_partner_ids, "No subscribers yet") + self.order.message_subscribe([self.order.partner_id.id]) + self.assertEqual( + self.order.message_partner_ids, + self.partner_2 | self.partner_3, + "Partner 3 is automatically subscribed", + ) + + def test_message_subscribe_disabled(self): + """Test autosubscribe on a basic workflow (disabled)""" + self.partner_3.mail_autosubscribe_ids = [(5, False)] + self.assertFalse(self.order.message_partner_ids, "No subscribers yet") + self.order.message_subscribe([self.order.partner_id.id]) + self.assertEqual( + self.order.message_partner_ids, + self.partner_2, + "Partner 2 is the only subscriber", + ) + + def test_mail_template(self): + """Test autosubscribe when partner is set in the mail.template partners_to""" + self.mail_template.send_mail(self.order.id) + message = self.order.message_ids[0] + self.assertEqual(message.partner_ids, self.partner_2 | self.partner_3) + + def test_mail_template_disabled(self): + """Test autosubscribe when the partner is not an autosubscribe follower""" + self.partner_3.mail_autosubscribe_ids = [(5, False)] + self.mail_template.send_mail(self.order.id) + message = self.order.message_ids[0] + self.assertEqual(message.partner_ids, self.partner_2) + + def test_mail_template_no_autosubscribe_followers(self): + """Test autosubscribe doesn't apply if it's disabled on the template""" + self.mail_template.use_autosubscribe_followers = False + self.mail_template.send_mail(self.order.id) + message = self.order.message_ids[0] + self.assertEqual(message.partner_ids, self.partner_2) + + def test_mail_template_default_recipients(self): + """Test autosubscribe when using default recipients""" + self.mail_template.use_default_to = True + self.mail_template.send_mail(self.order.id) + message = self.order.message_ids[0] + self.assertEqual(message.partner_ids, self.partner_2 | self.partner_3) + + def test_mail_message_composer(self): + """Test autosubscribe when using the mail composer""" + self.assertFalse(self.order.message_partner_ids, "No subscribers yet") + composer = Form( + self.env["mail.compose.message"].with_context( + default_model="fake.order", + default_res_id=self.order.id, + default_use_template=True, + default_template_id=self.mail_template.id, + default_composition_mode="comment", + ) + ) + composer.save().send_mail() + message = self.order.message_ids[0] + self.assertEqual(message.partner_ids, self.partner_2 | self.partner_3) + + def test_mail_message_composer_no_autosubscribe_followers(self): + """Test autosubscribe when using the mail composer and it's disabled""" + self.mail_template.use_autosubscribe_followers = False + composer = Form( + self.env["mail.compose.message"].with_context( + default_model="fake.order", + default_res_id=self.order.id, + default_use_template=True, + default_template_id=self.mail_template.id, + default_composition_mode="comment", + ) + ) + composer.save().send_mail() + message = self.order.message_ids[0] + self.assertEqual(message.partner_ids, self.partner_2) diff --git a/mail_autosubscribe/views/mail_autosubscribe.xml b/mail_autosubscribe/views/mail_autosubscribe.xml new file mode 100644 index 000000000..c0a13dc0b --- /dev/null +++ b/mail_autosubscribe/views/mail_autosubscribe.xml @@ -0,0 +1,53 @@ + + + + + + mail.autosubscribe + +
+ +
+

+ +

+
+ + + + + +
+
+
+
+ + + mail.autosubscribe + + + + + + + + + + Mail Auto Subscribe + mail.autosubscribe + tree,form + + + + +
diff --git a/mail_autosubscribe/views/mail_template.xml b/mail_autosubscribe/views/mail_template.xml new file mode 100644 index 000000000..c41388f9a --- /dev/null +++ b/mail_autosubscribe/views/mail_template.xml @@ -0,0 +1,19 @@ + + + + + + mail.template + + + + + + + + + diff --git a/mail_autosubscribe/views/res_partner.xml b/mail_autosubscribe/views/res_partner.xml new file mode 100644 index 000000000..411dd59ec --- /dev/null +++ b/mail_autosubscribe/views/res_partner.xml @@ -0,0 +1,35 @@ + + + + + + res.partner + + + + + + + + + + + + From c481b24c66ea77da9e2e098ad821c92ec72bb829 Mon Sep 17 00:00:00 2001 From: oca-travis Date: Thu, 12 Aug 2021 06:10:41 +0000 Subject: [PATCH 02/17] [UPD] Update mail_autosubscribe.pot --- .../i18n/mail_autosubscribe.pot | 126 ++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 mail_autosubscribe/i18n/mail_autosubscribe.pot diff --git a/mail_autosubscribe/i18n/mail_autosubscribe.pot b/mail_autosubscribe/i18n/mail_autosubscribe.pot new file mode 100644 index 000000000..4b473f975 --- /dev/null +++ b/mail_autosubscribe/i18n/mail_autosubscribe.pot @@ -0,0 +1,126 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mail_autosubscribe +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.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_autosubscribe +#: model:ir.model.fields,field_description:mail_autosubscribe.field_res_partner__mail_autosubscribe_ids +#: model:ir.model.fields,field_description:mail_autosubscribe.field_res_users__mail_autosubscribe_ids +#: model:ir.ui.menu,name:mail_autosubscribe.menu_mail_autosubscribe +msgid "Autosubscribe Models" +msgstr "" + +#. module: mail_autosubscribe +#: model:ir.model,name:mail_autosubscribe.model_base +msgid "Base" +msgstr "" + +#. module: mail_autosubscribe +#: model:ir.model,name:mail_autosubscribe.model_res_partner +msgid "Contact" +msgstr "" + +#. module: mail_autosubscribe +#: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_autosubscribe__create_uid +msgid "Created by" +msgstr "" + +#. module: mail_autosubscribe +#: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_autosubscribe__create_date +msgid "Created on" +msgstr "" + +#. module: mail_autosubscribe +#: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_autosubscribe__display_name +#: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_template__display_name +#: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_thread__display_name +#: model:ir.model.fields,field_description:mail_autosubscribe.field_res_partner__display_name +msgid "Display Name" +msgstr "" + +#. module: mail_autosubscribe +#: model:ir.model,name:mail_autosubscribe.model_mail_template +msgid "Email Templates" +msgstr "" + +#. module: mail_autosubscribe +#: model:ir.model,name:mail_autosubscribe.model_mail_thread +msgid "Email Thread" +msgstr "" + +#. module: mail_autosubscribe +#: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_autosubscribe__id +#: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_template__id +#: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_thread__id +#: model:ir.model.fields,field_description:mail_autosubscribe.field_res_partner__id +msgid "ID" +msgstr "" + +#. module: mail_autosubscribe +#: model_terms:ir.ui.view,arch_db:mail_autosubscribe.view_partner_form +msgid "In copy of" +msgstr "" + +#. module: mail_autosubscribe +#: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_autosubscribe____last_update +#: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_template____last_update +#: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_thread____last_update +#: model:ir.model.fields,field_description:mail_autosubscribe.field_res_partner____last_update +msgid "Last Modified on" +msgstr "" + +#. module: mail_autosubscribe +#: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_autosubscribe__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: mail_autosubscribe +#: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_autosubscribe__write_date +msgid "Last Updated on" +msgstr "" + +#. module: mail_autosubscribe +#: model:ir.actions.act_window,name:mail_autosubscribe.action_mail_autosubscribe +msgid "Mail Auto Subscribe" +msgstr "" + +#. module: mail_autosubscribe +#: model:ir.model,name:mail_autosubscribe.model_mail_autosubscribe +msgid "Mail Autosubscribe" +msgstr "" + +#. module: mail_autosubscribe +#: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_autosubscribe__model_id +msgid "Model" +msgstr "" + +#. module: mail_autosubscribe +#: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_autosubscribe__model +msgid "Model Name" +msgstr "" + +#. module: mail_autosubscribe +#: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_autosubscribe__name +#: model_terms:ir.ui.view,arch_db:mail_autosubscribe.view_mail_autosubscribe_form +msgid "Name" +msgstr "" + +#. module: mail_autosubscribe +#: model:ir.model.constraint,message:mail_autosubscribe.constraint_mail_autosubscribe_model_id_unique +msgid "There's already a rule for this model" +msgstr "" + +#. module: mail_autosubscribe +#: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_template__use_autosubscribe_followers +msgid "Use Autosubscribe Followers" +msgstr "" From 3425b7df46b0e4330687312658fd6a13120ce06b Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Thu, 12 Aug 2021 06:15:21 +0000 Subject: [PATCH 03/17] [UPD] README.rst --- mail_autosubscribe/README.rst | 98 ++++ .../static/description/index.html | 447 ++++++++++++++++++ 2 files changed, 545 insertions(+) create mode 100644 mail_autosubscribe/README.rst create mode 100644 mail_autosubscribe/static/description/index.html diff --git a/mail_autosubscribe/README.rst b/mail_autosubscribe/README.rst new file mode 100644 index 000000000..764236571 --- /dev/null +++ b/mail_autosubscribe/README.rst @@ -0,0 +1,98 @@ +================== +Mail Autosubscribe +================== + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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/14.0/mail_autosubscribe + :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_autosubscribe + :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 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module allows you to configure partners that will be automatically in copy +of their company's business documents. + +For example, you can configure an accountant to be in copy of all invoices +sent for a given commercial partner, regardless of the invoicing address. + +**Table of contents** + +.. contents:: + :local: + +Configuration +============= + +Go to Configuration > Technical > Automation > Autosubscribe Models and configure +the models for which you want the feature to work. + +Then, on each partner, you can check the company documents subscriptions in the +field `In copy of`. + +This feature can be disabled on specific templates, if required, by disabling the +Autosubscribe followers field. + +Known issues / Roadmap +====================== + +* Consider implementing domain-based autosubscription rules. + This was considered during first development but it wasn't a requirement at the time. + If pursuit, this has to be done carefully to avoid affecting performance. + +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 +~~~~~~~ + +* Camptocamp SA + +Contributors +~~~~~~~~~~~~ + +* `Camptocamp `_ + + * Iván Todorovich + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +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_autosubscribe/static/description/index.html b/mail_autosubscribe/static/description/index.html new file mode 100644 index 000000000..4b1deb1dc --- /dev/null +++ b/mail_autosubscribe/static/description/index.html @@ -0,0 +1,447 @@ + + + + + + +Mail Autosubscribe + + + +
+

Mail Autosubscribe

+ + +

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

+

This module allows you to configure partners that will be automatically in copy +of their company’s business documents.

+

For example, you can configure an accountant to be in copy of all invoices +sent for a given commercial partner, regardless of the invoicing address.

+

Table of contents

+ +
+

Configuration

+

Go to Configuration > Technical > Automation > Autosubscribe Models and configure +the models for which you want the feature to work.

+

Then, on each partner, you can check the company documents subscriptions in the +field In copy of.

+

This feature can be disabled on specific templates, if required, by disabling the +Autosubscribe followers field.

+
+
+

Known issues / Roadmap

+
    +
  • Consider implementing domain-based autosubscription rules. +This was considered during first development but it wasn’t a requirement at the time. +If pursuit, this has to be done carefully to avoid affecting performance.
  • +
+
+
+

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

+
    +
  • Camptocamp SA
  • +
+
+
+

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.

+
+
+
+ + From 249fa32af06d35fd5a37341e5e80580edc5eb0a9 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Thu, 12 Aug 2021 06:15:21 +0000 Subject: [PATCH 04/17] [ADD] icon.png --- mail_autosubscribe/static/description/icon.png | Bin 0 -> 9455 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 mail_autosubscribe/static/description/icon.png diff --git a/mail_autosubscribe/static/description/icon.png b/mail_autosubscribe/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 From a8fb1c5a6e1620051c7fe4c694bc02e7f01d004f Mon Sep 17 00:00:00 2001 From: jabelchi Date: Tue, 25 Jan 2022 12:50:40 +0000 Subject: [PATCH 05/17] Added translation using Weblate (Catalan) --- mail_autosubscribe/i18n/ca.po | 127 ++++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 mail_autosubscribe/i18n/ca.po diff --git a/mail_autosubscribe/i18n/ca.po b/mail_autosubscribe/i18n/ca.po new file mode 100644 index 000000000..9d3d585c3 --- /dev/null +++ b/mail_autosubscribe/i18n/ca.po @@ -0,0 +1,127 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mail_autosubscribe +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: ca\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_autosubscribe +#: model:ir.model.fields,field_description:mail_autosubscribe.field_res_partner__mail_autosubscribe_ids +#: model:ir.model.fields,field_description:mail_autosubscribe.field_res_users__mail_autosubscribe_ids +#: model:ir.ui.menu,name:mail_autosubscribe.menu_mail_autosubscribe +msgid "Autosubscribe Models" +msgstr "" + +#. module: mail_autosubscribe +#: model:ir.model,name:mail_autosubscribe.model_base +msgid "Base" +msgstr "" + +#. module: mail_autosubscribe +#: model:ir.model,name:mail_autosubscribe.model_res_partner +msgid "Contact" +msgstr "" + +#. module: mail_autosubscribe +#: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_autosubscribe__create_uid +msgid "Created by" +msgstr "" + +#. module: mail_autosubscribe +#: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_autosubscribe__create_date +msgid "Created on" +msgstr "" + +#. module: mail_autosubscribe +#: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_autosubscribe__display_name +#: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_template__display_name +#: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_thread__display_name +#: model:ir.model.fields,field_description:mail_autosubscribe.field_res_partner__display_name +msgid "Display Name" +msgstr "" + +#. module: mail_autosubscribe +#: model:ir.model,name:mail_autosubscribe.model_mail_template +msgid "Email Templates" +msgstr "" + +#. module: mail_autosubscribe +#: model:ir.model,name:mail_autosubscribe.model_mail_thread +msgid "Email Thread" +msgstr "" + +#. module: mail_autosubscribe +#: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_autosubscribe__id +#: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_template__id +#: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_thread__id +#: model:ir.model.fields,field_description:mail_autosubscribe.field_res_partner__id +msgid "ID" +msgstr "" + +#. module: mail_autosubscribe +#: model_terms:ir.ui.view,arch_db:mail_autosubscribe.view_partner_form +msgid "In copy of" +msgstr "" + +#. module: mail_autosubscribe +#: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_autosubscribe____last_update +#: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_template____last_update +#: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_thread____last_update +#: model:ir.model.fields,field_description:mail_autosubscribe.field_res_partner____last_update +msgid "Last Modified on" +msgstr "" + +#. module: mail_autosubscribe +#: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_autosubscribe__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: mail_autosubscribe +#: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_autosubscribe__write_date +msgid "Last Updated on" +msgstr "" + +#. module: mail_autosubscribe +#: model:ir.actions.act_window,name:mail_autosubscribe.action_mail_autosubscribe +msgid "Mail Auto Subscribe" +msgstr "" + +#. module: mail_autosubscribe +#: model:ir.model,name:mail_autosubscribe.model_mail_autosubscribe +msgid "Mail Autosubscribe" +msgstr "" + +#. module: mail_autosubscribe +#: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_autosubscribe__model_id +msgid "Model" +msgstr "" + +#. module: mail_autosubscribe +#: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_autosubscribe__model +msgid "Model Name" +msgstr "" + +#. module: mail_autosubscribe +#: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_autosubscribe__name +#: model_terms:ir.ui.view,arch_db:mail_autosubscribe.view_mail_autosubscribe_form +msgid "Name" +msgstr "" + +#. module: mail_autosubscribe +#: model:ir.model.constraint,message:mail_autosubscribe.constraint_mail_autosubscribe_model_id_unique +msgid "There's already a rule for this model" +msgstr "" + +#. module: mail_autosubscribe +#: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_template__use_autosubscribe_followers +msgid "Use Autosubscribe Followers" +msgstr "" From 9284d78e60a0231f640bc973b5efab92ccc20b06 Mon Sep 17 00:00:00 2001 From: jabelchi Date: Tue, 25 Jan 2022 12:57:58 +0000 Subject: [PATCH 06/17] Translated using Weblate (Catalan) Currently translated at 100.0% (20 of 20 strings) Translation: social-14.0/social-14.0-mail_autosubscribe Translate-URL: https://translation.odoo-community.org/projects/social-14-0/social-14-0-mail_autosubscribe/ca/ --- mail_autosubscribe/i18n/ca.po | 44 ++++++++++++++++++----------------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/mail_autosubscribe/i18n/ca.po b/mail_autosubscribe/i18n/ca.po index 9d3d585c3..3568db2b1 100644 --- a/mail_autosubscribe/i18n/ca.po +++ b/mail_autosubscribe/i18n/ca.po @@ -6,40 +6,42 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 14.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2022-01-25 15:40+0000\n" +"Last-Translator: jabelchi \n" "Language-Team: none\n" "Language: ca\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 4.3.2\n" #. module: mail_autosubscribe #: model:ir.model.fields,field_description:mail_autosubscribe.field_res_partner__mail_autosubscribe_ids #: model:ir.model.fields,field_description:mail_autosubscribe.field_res_users__mail_autosubscribe_ids #: model:ir.ui.menu,name:mail_autosubscribe.menu_mail_autosubscribe msgid "Autosubscribe Models" -msgstr "" +msgstr "Models autosubscripció" #. module: mail_autosubscribe #: model:ir.model,name:mail_autosubscribe.model_base msgid "Base" -msgstr "" +msgstr "Base" #. module: mail_autosubscribe #: model:ir.model,name:mail_autosubscribe.model_res_partner msgid "Contact" -msgstr "" +msgstr "Contacte" #. module: mail_autosubscribe #: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_autosubscribe__create_uid msgid "Created by" -msgstr "" +msgstr "Creat per" #. module: mail_autosubscribe #: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_autosubscribe__create_date msgid "Created on" -msgstr "" +msgstr "Creat el" #. module: mail_autosubscribe #: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_autosubscribe__display_name @@ -47,17 +49,17 @@ msgstr "" #: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_thread__display_name #: model:ir.model.fields,field_description:mail_autosubscribe.field_res_partner__display_name msgid "Display Name" -msgstr "" +msgstr "Nom a mostrar" #. module: mail_autosubscribe #: model:ir.model,name:mail_autosubscribe.model_mail_template msgid "Email Templates" -msgstr "" +msgstr "Plantilles de correu" #. module: mail_autosubscribe #: model:ir.model,name:mail_autosubscribe.model_mail_thread msgid "Email Thread" -msgstr "" +msgstr "Fil de correus" #. module: mail_autosubscribe #: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_autosubscribe__id @@ -65,12 +67,12 @@ msgstr "" #: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_thread__id #: model:ir.model.fields,field_description:mail_autosubscribe.field_res_partner__id msgid "ID" -msgstr "" +msgstr "ID" #. module: mail_autosubscribe #: model_terms:ir.ui.view,arch_db:mail_autosubscribe.view_partner_form msgid "In copy of" -msgstr "" +msgstr "En còpia de" #. module: mail_autosubscribe #: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_autosubscribe____last_update @@ -78,50 +80,50 @@ msgstr "" #: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_thread____last_update #: model:ir.model.fields,field_description:mail_autosubscribe.field_res_partner____last_update msgid "Last Modified on" -msgstr "" +msgstr "Darrera modificació el" #. module: mail_autosubscribe #: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_autosubscribe__write_uid msgid "Last Updated by" -msgstr "" +msgstr "Darrera actualització per" #. module: mail_autosubscribe #: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_autosubscribe__write_date msgid "Last Updated on" -msgstr "" +msgstr "Darrera modificació el" #. module: mail_autosubscribe #: model:ir.actions.act_window,name:mail_autosubscribe.action_mail_autosubscribe msgid "Mail Auto Subscribe" -msgstr "" +msgstr "Auto subscripció de correu electrònic" #. module: mail_autosubscribe #: model:ir.model,name:mail_autosubscribe.model_mail_autosubscribe msgid "Mail Autosubscribe" -msgstr "" +msgstr "Autosubscripció Email" #. module: mail_autosubscribe #: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_autosubscribe__model_id msgid "Model" -msgstr "" +msgstr "Model" #. module: mail_autosubscribe #: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_autosubscribe__model msgid "Model Name" -msgstr "" +msgstr "Nom del model" #. module: mail_autosubscribe #: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_autosubscribe__name #: model_terms:ir.ui.view,arch_db:mail_autosubscribe.view_mail_autosubscribe_form msgid "Name" -msgstr "" +msgstr "Nom" #. module: mail_autosubscribe #: model:ir.model.constraint,message:mail_autosubscribe.constraint_mail_autosubscribe_model_id_unique msgid "There's already a rule for this model" -msgstr "" +msgstr "Ja existeix una regla per a aquest model" #. module: mail_autosubscribe #: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_template__use_autosubscribe_followers msgid "Use Autosubscribe Followers" -msgstr "" +msgstr "Usar seguidors autosubscrits" From fcf2031e8419e46c85b76553beac37de4513ae02 Mon Sep 17 00:00:00 2001 From: nicolas Date: Tue, 12 Apr 2022 08:43:56 -0300 Subject: [PATCH 07/17] [MIG] mail_autosubscribe: Migration to 15.0 --- mail_autosubscribe/__manifest__.py | 2 +- mail_autosubscribe/models/mail_thread.py | 3 +-- mail_autosubscribe/tests/test_mail_autosubscribe.py | 4 ++-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/mail_autosubscribe/__manifest__.py b/mail_autosubscribe/__manifest__.py index 6be09d178..ad70c7cec 100644 --- a/mail_autosubscribe/__manifest__.py +++ b/mail_autosubscribe/__manifest__.py @@ -5,7 +5,7 @@ { "name": "Mail Autosubscribe", "summary": "Automatically subscribe partners to its company's business documents", - "version": "14.0.1.0.0", + "version": "15.0.1.0.0", "author": "Camptocamp SA, Odoo Community Association (OCA)", "license": "AGPL-3", "category": "Marketing", diff --git a/mail_autosubscribe/models/mail_thread.py b/mail_autosubscribe/models/mail_thread.py index 94f421113..be8d4738c 100644 --- a/mail_autosubscribe/models/mail_thread.py +++ b/mail_autosubscribe/models/mail_thread.py @@ -8,7 +8,7 @@ from odoo import models class MailThread(models.AbstractModel): _inherit = "mail.thread" - def message_subscribe(self, partner_ids=None, channel_ids=None, subtype_ids=None): + def message_subscribe(self, partner_ids=None, subtype_ids=None): # Overload to automatically subscribe autosubscribe followers. autosubscribe_followers = not self.env.context.get("no_autosubscribe_followers") if partner_ids and autosubscribe_followers: @@ -22,6 +22,5 @@ class MailThread(models.AbstractModel): partner_ids += follower_ids return super().message_subscribe( partner_ids=partner_ids, - channel_ids=channel_ids, subtype_ids=subtype_ids, ) diff --git a/mail_autosubscribe/tests/test_mail_autosubscribe.py b/mail_autosubscribe/tests/test_mail_autosubscribe.py index 62d15733c..6c16f0368 100644 --- a/mail_autosubscribe/tests/test_mail_autosubscribe.py +++ b/mail_autosubscribe/tests/test_mail_autosubscribe.py @@ -4,11 +4,11 @@ from odoo_test_helper import FakeModelLoader -from odoo.tests.common import Form, SavepointCase, tagged +from odoo.tests.common import Form, TransactionCase, tagged @tagged("post_install", "-at_install") -class TestMailAutosubscribe(SavepointCase): +class TestMailAutosubscribe(TransactionCase): @classmethod def setUpClass(cls): super().setUpClass() From c3595f8672df879f677e772b628f53ee70e02315 Mon Sep 17 00:00:00 2001 From: oca-ci Date: Tue, 24 May 2022 17:34:03 +0000 Subject: [PATCH 08/17] [UPD] Update mail_autosubscribe.pot --- mail_autosubscribe/i18n/mail_autosubscribe.pot | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/mail_autosubscribe/i18n/mail_autosubscribe.pot b/mail_autosubscribe/i18n/mail_autosubscribe.pot index 4b473f975..dec950e83 100644 --- a/mail_autosubscribe/i18n/mail_autosubscribe.pot +++ b/mail_autosubscribe/i18n/mail_autosubscribe.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 14.0\n" +"Project-Id-Version: Odoo Server 15.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" @@ -42,9 +42,6 @@ msgstr "" #. module: mail_autosubscribe #: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_autosubscribe__display_name -#: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_template__display_name -#: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_thread__display_name -#: model:ir.model.fields,field_description:mail_autosubscribe.field_res_partner__display_name msgid "Display Name" msgstr "" @@ -60,9 +57,6 @@ msgstr "" #. module: mail_autosubscribe #: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_autosubscribe__id -#: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_template__id -#: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_thread__id -#: model:ir.model.fields,field_description:mail_autosubscribe.field_res_partner__id msgid "ID" msgstr "" @@ -73,9 +67,6 @@ msgstr "" #. module: mail_autosubscribe #: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_autosubscribe____last_update -#: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_template____last_update -#: model:ir.model.fields,field_description:mail_autosubscribe.field_mail_thread____last_update -#: model:ir.model.fields,field_description:mail_autosubscribe.field_res_partner____last_update msgid "Last Modified on" msgstr "" From 789be83fa34e0975efd75abab30e67fcf417d0bd Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Tue, 24 May 2022 17:37:09 +0000 Subject: [PATCH 09/17] [UPD] README.rst --- mail_autosubscribe/README.rst | 10 +++++----- mail_autosubscribe/static/description/index.html | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/mail_autosubscribe/README.rst b/mail_autosubscribe/README.rst index 764236571..67a6ed924 100644 --- a/mail_autosubscribe/README.rst +++ b/mail_autosubscribe/README.rst @@ -14,13 +14,13 @@ Mail Autosubscribe :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_autosubscribe + :target: https://github.com/OCA/social/tree/15.0/mail_autosubscribe :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_autosubscribe + :target: https://translation.odoo-community.org/projects/social-15-0/social-15-0-mail_autosubscribe :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| @@ -61,7 +61,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. @@ -93,6 +93,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_autosubscribe/static/description/index.html b/mail_autosubscribe/static/description/index.html index 4b1deb1dc..d075ad76f 100644 --- a/mail_autosubscribe/static/description/index.html +++ b/mail_autosubscribe/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 allows you to configure partners that will be automatically in copy of their company’s business documents.

For example, you can configure an accountant to be in copy of all invoices @@ -408,7 +408,7 @@ If pursuit, this has to be done carefully to avoid affecting performance.

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.

@@ -438,7 +438,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 18a42ad63fe121e77e174b607ebd971ed18a8d5c Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Tue, 24 May 2022 17:37:10 +0000 Subject: [PATCH 10/17] mail_autosubscribe 15.0.1.0.1 --- mail_autosubscribe/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mail_autosubscribe/__manifest__.py b/mail_autosubscribe/__manifest__.py index ad70c7cec..2a9e5d632 100644 --- a/mail_autosubscribe/__manifest__.py +++ b/mail_autosubscribe/__manifest__.py @@ -5,7 +5,7 @@ { "name": "Mail Autosubscribe", "summary": "Automatically subscribe partners to its company's business documents", - "version": "15.0.1.0.0", + "version": "15.0.1.0.1", "author": "Camptocamp SA, Odoo Community Association (OCA)", "license": "AGPL-3", "category": "Marketing", From fccc6ea6052eeb12d54741bb2717c82d3fabb2a9 Mon Sep 17 00:00:00 2001 From: Joel Zilli Date: Tue, 5 Jul 2022 13:27:33 -0300 Subject: [PATCH 11/17] [FIX] mail_autosubscribe: check partners type make sure partner is a tuple --- mail_autosubscribe/models/mail_thread.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mail_autosubscribe/models/mail_thread.py b/mail_autosubscribe/models/mail_thread.py index be8d4738c..e8ffeceb0 100644 --- a/mail_autosubscribe/models/mail_thread.py +++ b/mail_autosubscribe/models/mail_thread.py @@ -19,7 +19,10 @@ class MailThread(models.AbstractModel): for follower in followers if follower not in partners and follower not in self.message_partner_ids ] - partner_ids += follower_ids + if isinstance(partner_ids, tuple): + partner_ids += tuple(follower_ids) + else: + partner_ids += follower_ids return super().message_subscribe( partner_ids=partner_ids, subtype_ids=subtype_ids, From 917064be82ce5c21fff995ea41410761113e4c21 Mon Sep 17 00:00:00 2001 From: yajo Date: Thu, 7 Jul 2022 07:20:18 +0000 Subject: [PATCH 12/17] [FIX] mail_autosubscribe: missing dependency This should fix the tests, that are currently failing on CI with: ``` 2022-07-05 16:19:13,250 259 INFO odoo odoo.service.server: Starting post tests 2022-07-05 16:19:13,253 259 ERROR odoo odoo.tests.loader: Can not `import mail_autosubscribe`. Traceback (most recent call last): File "/opt/odoo/odoo/tests/loader.py", line 33, in _get_tests_modules mod = importlib.import_module('.tests', modpath) File "/usr/lib/python3.8/importlib/__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "", line 1014, in _gcd_import File "", line 991, in _find_and_load File "", line 975, in _find_and_load_unlocked File "", line 671, in _load_unlocked File "", line 848, in exec_module File "", line 219, in _call_with_frames_removed File "/__w/social/social/mail_autosubscribe/tests/__init__.py", line 1, in from . import test_mail_autosubscribe File "/__w/social/social/mail_autosubscribe/tests/test_mail_autosubscribe.py", line 5, in from odoo_test_helper import FakeModelLoader ModuleNotFoundError: No module named 'odoo_test_helper' ``` --- mail_autosubscribe/__manifest__.py | 3 +++ mail_autosubscribe/readme/CONTRIBUTORS.rst | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/mail_autosubscribe/__manifest__.py b/mail_autosubscribe/__manifest__.py index 2a9e5d632..0183c34f3 100644 --- a/mail_autosubscribe/__manifest__.py +++ b/mail_autosubscribe/__manifest__.py @@ -10,6 +10,9 @@ "license": "AGPL-3", "category": "Marketing", "depends": ["mail"], + "external_dependencies": { + "python": ["odoo_test_helper"], + }, "website": "https://github.com/OCA/social", "data": [ "security/ir.model.access.csv", diff --git a/mail_autosubscribe/readme/CONTRIBUTORS.rst b/mail_autosubscribe/readme/CONTRIBUTORS.rst index df7472d00..0024277d9 100644 --- a/mail_autosubscribe/readme/CONTRIBUTORS.rst +++ b/mail_autosubscribe/readme/CONTRIBUTORS.rst @@ -1,3 +1,7 @@ * `Camptocamp `_ * Iván Todorovich + +* `Moduon `__ + + * Jairo Llopis From 7c1e79258f20d401ffa51cf2b75a86e085080954 Mon Sep 17 00:00:00 2001 From: nicolas Date: Fri, 8 Jul 2022 08:31:34 -0300 Subject: [PATCH 13/17] [FIX] mail_autosubscribe: fix email template --- mail_autosubscribe/tests/test_mail_autosubscribe.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mail_autosubscribe/tests/test_mail_autosubscribe.py b/mail_autosubscribe/tests/test_mail_autosubscribe.py index 6c16f0368..27969c827 100644 --- a/mail_autosubscribe/tests/test_mail_autosubscribe.py +++ b/mail_autosubscribe/tests/test_mail_autosubscribe.py @@ -28,8 +28,8 @@ class TestMailAutosubscribe(TransactionCase): { "model_id": cls.fake_order_model.id, "name": "Fake Order: Send by Mail", - "subject": "Fake Order: ${object.partner_id.name}", - "partner_to": "${object.partner_id.id}", + "subject": "Fake Order: {{object.partner_id.name}}", + "partner_to": "{{object.partner_id.id}}", "body_html": "Hello, this is a fake order", } ) @@ -111,7 +111,7 @@ class TestMailAutosubscribe(TransactionCase): default_composition_mode="comment", ) ) - composer.save().send_mail() + composer.save().action_send_mail() message = self.order.message_ids[0] self.assertEqual(message.partner_ids, self.partner_2 | self.partner_3) @@ -127,6 +127,6 @@ class TestMailAutosubscribe(TransactionCase): default_composition_mode="comment", ) ) - composer.save().send_mail() + composer.save().action_send_mail() message = self.order.message_ids[0] self.assertEqual(message.partner_ids, self.partner_2) From dcc7e691ad371299a55700f5950b74105b3f206f Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Mon, 11 Jul 2022 06:30:37 +0000 Subject: [PATCH 14/17] [UPD] README.rst --- mail_autosubscribe/README.rst | 4 ++++ mail_autosubscribe/static/description/index.html | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/mail_autosubscribe/README.rst b/mail_autosubscribe/README.rst index 67a6ed924..3ba053c03 100644 --- a/mail_autosubscribe/README.rst +++ b/mail_autosubscribe/README.rst @@ -80,6 +80,10 @@ Contributors * Iván Todorovich +* `Moduon `__ + + * Jairo Llopis + Maintainers ~~~~~~~~~~~ diff --git a/mail_autosubscribe/static/description/index.html b/mail_autosubscribe/static/description/index.html index d075ad76f..3f280f7af 100644 --- a/mail_autosubscribe/static/description/index.html +++ b/mail_autosubscribe/static/description/index.html @@ -429,6 +429,13 @@ If you spotted it first, help us smashing it by providing a detailed and welcome +
  • Moduon

    +
    +
      +
    • Jairo Llopis
    • +
    +
    +
  • From 9698c73a19b5643e8d7a7a1217aa638bc1e48201 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Mon, 11 Jul 2022 06:30:37 +0000 Subject: [PATCH 15/17] mail_autosubscribe 15.0.1.0.2 --- mail_autosubscribe/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mail_autosubscribe/__manifest__.py b/mail_autosubscribe/__manifest__.py index 0183c34f3..7d55b17ab 100644 --- a/mail_autosubscribe/__manifest__.py +++ b/mail_autosubscribe/__manifest__.py @@ -5,7 +5,7 @@ { "name": "Mail Autosubscribe", "summary": "Automatically subscribe partners to its company's business documents", - "version": "15.0.1.0.1", + "version": "15.0.1.0.2", "author": "Camptocamp SA, Odoo Community Association (OCA)", "license": "AGPL-3", "category": "Marketing", From 229606426ed779bb7ec4dcd03d68c463e749bffb Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Thu, 21 Jul 2022 06:32:31 +0000 Subject: [PATCH 16/17] mail_autosubscribe 15.0.1.0.3 --- mail_autosubscribe/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mail_autosubscribe/__manifest__.py b/mail_autosubscribe/__manifest__.py index 7d55b17ab..03c582c49 100644 --- a/mail_autosubscribe/__manifest__.py +++ b/mail_autosubscribe/__manifest__.py @@ -5,7 +5,7 @@ { "name": "Mail Autosubscribe", "summary": "Automatically subscribe partners to its company's business documents", - "version": "15.0.1.0.2", + "version": "15.0.1.0.3", "author": "Camptocamp SA, Odoo Community Association (OCA)", "license": "AGPL-3", "category": "Marketing", From 416abcdc7f7fa0a965c6a526ef6b7399adc0cd47 Mon Sep 17 00:00:00 2001 From: Vandan Pandeji Date: Tue, 28 Mar 2023 23:01:42 +0530 Subject: [PATCH 17/17] [MIG]Dmail_autosubscribe: Migration to V16.0 --- mail_autosubscribe/__manifest__.py | 2 +- requirements.txt | 2 ++ setup/mail_autosubscribe/odoo/addons/mail_autosubscribe | 1 + setup/mail_autosubscribe/setup.py | 6 ++++++ 4 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 requirements.txt create mode 120000 setup/mail_autosubscribe/odoo/addons/mail_autosubscribe create mode 100644 setup/mail_autosubscribe/setup.py diff --git a/mail_autosubscribe/__manifest__.py b/mail_autosubscribe/__manifest__.py index 03c582c49..5c0c9100f 100644 --- a/mail_autosubscribe/__manifest__.py +++ b/mail_autosubscribe/__manifest__.py @@ -5,7 +5,7 @@ { "name": "Mail Autosubscribe", "summary": "Automatically subscribe partners to its company's business documents", - "version": "15.0.1.0.3", + "version": "16.0.1.0.0", "author": "Camptocamp SA, Odoo Community Association (OCA)", "license": "AGPL-3", "category": "Marketing", diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 000000000..fb06c6fa4 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,2 @@ +# generated from manifests external_dependencies +odoo_test_helper diff --git a/setup/mail_autosubscribe/odoo/addons/mail_autosubscribe b/setup/mail_autosubscribe/odoo/addons/mail_autosubscribe new file mode 120000 index 000000000..c5e462451 --- /dev/null +++ b/setup/mail_autosubscribe/odoo/addons/mail_autosubscribe @@ -0,0 +1 @@ +../../../../mail_autosubscribe \ No newline at end of file diff --git a/setup/mail_autosubscribe/setup.py b/setup/mail_autosubscribe/setup.py new file mode 100644 index 000000000..28c57bb64 --- /dev/null +++ b/setup/mail_autosubscribe/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +)