Skip to content

Commit 9ab7f24

Browse files
committed
[FIX]mail_activity_done: Fix activity_state search.
1 parent f00dd76 commit 9ab7f24

File tree

2 files changed

+41
-11
lines changed

2 files changed

+41
-11
lines changed

mail_activity_done/models/mail_activity.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# Copyright 2018-22 ForgeFlow <http://www.forgeflow.com>
22
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html).
3+
4+
35
from odoo import api, fields, models
46
from odoo.osv import expression
57

@@ -92,3 +94,23 @@ def _read_progress_bar(self, domain, group_by, progress_bar):
9294
"""
9395
domain = expression.AND([domain, [("activity_ids.done", "=", False)]])
9496
return super()._read_progress_bar(domain, group_by, progress_bar)
97+
98+
def _search_activity_state(self, operator, value):
99+
execute_org = self._cr.execute
100+
101+
def execute(query, params=None, log_exceptions=True):
102+
return execute_org(
103+
query.replace(
104+
"WHERE mail_activity.res_model = %(res_model_table)s",
105+
"WHERE mail_activity.res_model = %(res_model_table)s AND "
106+
"mail_activity.done = FALSE",
107+
),
108+
params=params,
109+
log_exceptions=log_exceptions,
110+
)
111+
112+
self._cr.execute = execute
113+
try:
114+
return super()._search_activity_state(operator, value)
115+
finally:
116+
self._cr.execute = execute_org

mail_activity_done/tests/test_mail_activity_done.py

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,6 @@
88
class TestMailActivityDoneMethods(TransactionCase):
99
def setUp(self):
1010
super(TestMailActivityDoneMethods, self).setUp()
11-
12-
self.employee = self.env["res.users"].create(
13-
{
14-
"company_id": self.env.ref("base.main_company").id,
15-
"name": "Test User",
16-
"login": "testuser",
17-
"groups_id": [(6, 0, [self.env.ref("base.group_user").id])],
18-
}
19-
)
2011
activity_type = self.env["mail.activity.type"].search(
2112
[("name", "=", "Meeting")], limit=1
2213
)
@@ -26,18 +17,29 @@ def setUp(self):
2617
"res_id": self.env.ref("base.res_partner_1").id,
2718
"res_model": "res.partner",
2819
"res_model_id": self.env["ir.model"]._get("res.partner").id,
29-
"user_id": self.employee.id,
20+
"user_id": self.env.user.id,
21+
"date_deadline": date.today(),
22+
}
23+
)
24+
self.act2 = self.env["mail.activity"].create(
25+
{
26+
"activity_type_id": activity_type.id,
27+
"res_id": self.env.ref("base.res_partner_1").id,
28+
"res_model": "res.partner",
29+
"res_model_id": self.env["ir.model"]._get("res.partner").id,
30+
"user_id": self.env.user.id,
3031
"date_deadline": date.today(),
3132
}
3233
)
34+
self.act2._action_done()
3335

3436
def test_mail_activity_done(self):
3537
self.act1._action_done()
3638
self.assertTrue(self.act1.exists())
3739
self.assertEqual(self.act1.state, "done")
3840

3941
def test_systray_get_activities(self):
40-
act_count = self.employee.with_user(self.employee).systray_get_activities()
42+
act_count = self.env.user.systray_get_activities()
4143
self.assertEqual(
4244
len(act_count), 1, "Number of activities should be equal to one"
4345
)
@@ -56,3 +58,9 @@ def test_read_progress_bar(self):
5658
self.assertEqual(self.act1.state, "done")
5759
result = res_partner._read_progress_bar(**params)
5860
self.assertEqual(len(result), 0)
61+
62+
def test_activity_state_search(self):
63+
today_activities = self.env["res.partner"].search(
64+
[("activity_state", "=", "today")]
65+
)
66+
self.assertEqual(len(today_activities), 1)

0 commit comments

Comments
 (0)