diff --git a/mail_activity_done/models/mail_activity.py b/mail_activity_done/models/mail_activity.py index a1dc30acda..1d11086f69 100644 --- a/mail_activity_done/models/mail_activity.py +++ b/mail_activity_done/models/mail_activity.py @@ -1,9 +1,6 @@ # Copyright 2018-22 ForgeFlow # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html). - - from odoo import api, fields, models -from odoo.osv import expression delete_sentinel = object() @@ -90,10 +87,27 @@ class MailActivityMixin(models.AbstractModel): def _read_progress_bar(self, domain, group_by, progress_bar): """ Exclude completed activities from progress bar result. - Pass an extra domain to super to filter out records with only done activities. """ - domain = expression.AND([domain, [("activity_ids.done", "=", False)]]) - return super()._read_progress_bar(domain, group_by, progress_bar) + execute_org = self._cr.execute + + def execute(query, params=None, log_exceptions=True): + original_where = "WHERE res_model = '{}'".format(self._name) + replace_where = ( + "WHERE res_model = '{}' AND mail_activity.done = FALSE".format( + self._name + ) + ) + return execute_org( + query.replace(original_where, replace_where), + params=params, + log_exceptions=log_exceptions, + ) + + self._cr.execute = execute + try: + return super()._read_progress_bar(domain, group_by, progress_bar) + finally: + self._cr.execute = execute_org def _search_activity_state(self, operator, value): execute_org = self._cr.execute