[MIG] mail_restrict_follower_selection : Migration to 13.0

pull/517/head
Joan Sisquella 2020-03-10 10:26:49 +01:00
parent ee66e363a0
commit 5c34bed5e8
7 changed files with 35 additions and 9 deletions

View File

@ -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",

View File

@ -2,6 +2,6 @@
<odoo noupdate="1">
<record id="parameter_domain" model="ir.config_parameter">
<field name="key">mail_restrict_follower_selection.domain</field>
<field name="value">[('customer', '=', True)]</field>
<field name="value">[('category_id.name', '=', 'Employees')]</field>
</record>
</odoo>

View File

@ -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=""
):

View File

@ -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!

View File

@ -0,0 +1,3 @@
* Holger Brunn <hbrunn@therp.nl>
* Nguyen Tan Phuc <phuc.nt@komit-consulting.com>
* Enric Tobella <etobella@creublanca.es>

View File

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

View File

@ -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")