Skip to content

Commit

Permalink
[MIG] mail_restrict_follower_selection: Migration to 18.0
Browse files Browse the repository at this point in the history
  • Loading branch information
Kimkhoi3010 committed Oct 22, 2024
1 parent 7d337a4 commit 4f40938
Show file tree
Hide file tree
Showing 5 changed files with 33 additions and 33 deletions.
2 changes: 1 addition & 1 deletion mail_restrict_follower_selection/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

{
"name": "Restrict follower selection",
"version": "17.0.1.0.0",
"version": "18.0.1.0.0",
"author": "Therp BV,Creu Blanca,Odoo Community Association (OCA)",
"license": "AGPL-3",
"category": "Social Network",
Expand Down
8 changes: 5 additions & 3 deletions mail_restrict_follower_selection/models/mail_followers.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,11 @@ def _add_followers(
check_existing=check_existing,
existing_policy=existing_policy,
)
domain = self.env[
"mail.wizard.invite"
]._mail_restrict_follower_selection_get_domain(res_model=res_model)
domain = str(
self.env["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(
Expand Down
26 changes: 13 additions & 13 deletions mail_restrict_follower_selection/models/mail_thread.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,18 +23,18 @@ def _message_add_suggested_recipient(
"mail.wizard.invite"
]._mail_restrict_follower_selection_get_domain()
eval_domain = safe_eval(
domain, locals_dict={"ref": lambda str_id: _id_get(self.env, str_id)}
str(domain), locals_dict={"ref": lambda str_id: _id_get(self.env, str_id)}
)
for key in result:
items_to_remove = []
for item in result[key]:
partner_id = item[0]
if partner_id:
partner = self.env["res.partner"].search(
[("id", "=", partner_id)] + eval_domain
)
if not partner:
items_to_remove.append(item)
for item in items_to_remove:
result[key].remove(item)
items_to_remove = []
for item in result:
partner_id = item.get("partner_id", False)
if partner_id:
partner_count = self.env["res.partner"].search_count(
[("id", "=", partner_id)] + eval_domain
)
if not partner_count:
items_to_remove.append(item)
for item in items_to_remove:
result.remove(item)

return result
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ def get_view(self, view_id=None, view_type="form", **options):
arch = etree.fromstring(result["arch"])
domain = self._mail_restrict_follower_selection_get_domain()
eval_domain = safe_eval(
domain, locals_dict={"ref": lambda str_id: _id_get(self.env, str_id)}
str(domain), locals_dict={"ref": lambda str_id: _id_get(self.env, str_id)}
)
for field in arch.xpath('//field[@name="partner_ids"]'):
field.attrib["domain"] = str(eval_domain)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@ def setUp(self):
def _use_ref_in_domain(self):
"""Change the general domain to test the safe_eval."""
param = self.env.ref("mail_restrict_follower_selection.parameter_domain")
param.value = "[('country_id', '!=', ref('base.ch'))]"
country_id = self.env.ref("base.ch").id
param.value = f"[('country_id', '!=', {country_id})]"

def test_fields_view_get(self):
result = self.env["mail.wizard.invite"].get_view(view_type="form")
Expand Down Expand Up @@ -78,18 +79,18 @@ def test_followers_not_meet(self):
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)
)._message_add_suggested_recipient([], partner=self.partner)
self.assertEqual(res[0]["partner_id"], self.partner.id)

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])
)._message_add_suggested_recipient([])
self.assertFalse(new_res[0].get("partner_id"))

def test_fields_view_get_eval(self):
def test_get_view_eval(self):
"""Check using safe_eval in field_view_get."""
self._use_ref_in_domain()
result = self.env["mail.wizard.invite"].fields_view_get(view_type="form")
result = self.env["mail.wizard.invite"].get_view(view_type="form")
for field in etree.fromstring(result["arch"]).xpath(
'//field[@name="partner_ids"]'
):
Expand All @@ -101,13 +102,10 @@ def test_message_add_suggested_recipient_eval(self):
"""Check using safe_eval when adding recipients."""
self._use_ref_in_domain()
partner = self.partner.with_context(test_restrict_follower=True)
res = partner._message_add_suggested_recipient(
{self.partner.id: []}, partner=self.partner
)
self.assertEqual(res[self.partner.id][0][0], self.partner.id)
res = partner._message_add_suggested_recipient([], partner=self.partner)
self.assertEqual(res[0]["partner_id"], self.partner.id)

# Partner from Swizterland should be excluded
partner.country_id = self.switzerland
res = partner._message_add_suggested_recipient(
{self.partner.id: []}, partner=self.partner
)
self.assertFalse(res[self.partner.id])
res = partner._message_add_suggested_recipient([], partner=self.partner)
self.assertFalse(res)

0 comments on commit 4f40938

Please sign in to comment.