From fa58a445d9aa5995b49fce3c958730d45414e964 Mon Sep 17 00:00:00 2001 From: Jordi Ballester Alomar Date: Tue, 11 Jun 2019 16:42:58 +0200 Subject: [PATCH] [mail_activity_done] set activities as inactive when they have been completed. --- mail_activity_done/__manifest__.py | 2 +- mail_activity_done/hooks.py | 1 + .../migrations/11.0.2.0.0/post-migration.py | 12 ++++++++++++ mail_activity_done/models/mail_activity.py | 9 +++++++++ mail_activity_done/views/mail_activity_views.xml | 13 ++++++------- 5 files changed, 29 insertions(+), 8 deletions(-) create mode 100644 mail_activity_done/migrations/11.0.2.0.0/post-migration.py diff --git a/mail_activity_done/__manifest__.py b/mail_activity_done/__manifest__.py index 43348ef7..c03772dc 100644 --- a/mail_activity_done/__manifest__.py +++ b/mail_activity_done/__manifest__.py @@ -2,7 +2,7 @@ # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html). { "name": "Mail Activity Done", - "version": "11.0.1.1.0", + "version": "11.0.2.0.0", "author": "Eficent," "Odoo Community Association (OCA)", "license": "LGPL-3", diff --git a/mail_activity_done/hooks.py b/mail_activity_done/hooks.py index 619cd44f..6af398ef 100644 --- a/mail_activity_done/hooks.py +++ b/mail_activity_done/hooks.py @@ -39,6 +39,7 @@ def post_load_hook(): for activity in self: record = self.env[activity.res_model].browse(activity.res_id) activity.done = True + activity.active = False activity.date_done = fields.Date.today() record.message_post_with_view( 'mail.message_activity_done', diff --git a/mail_activity_done/migrations/11.0.2.0.0/post-migration.py b/mail_activity_done/migrations/11.0.2.0.0/post-migration.py new file mode 100644 index 00000000..b163a08a --- /dev/null +++ b/mail_activity_done/migrations/11.0.2.0.0/post-migration.py @@ -0,0 +1,12 @@ +# Copyright 2019 Eficent +# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html). + + +def migrate(cr, version): + if not version: + return + cr.execute(""" + UPDATE mail_activity SET + active = False + WHERE done=True; + """) diff --git a/mail_activity_done/models/mail_activity.py b/mail_activity_done/models/mail_activity.py index c91e9003..593a3571 100644 --- a/mail_activity_done/models/mail_activity.py +++ b/mail_activity_done/models/mail_activity.py @@ -7,6 +7,7 @@ class MailActivity(models.Model): _inherit = 'mail.activity' + active = fields.Boolean(default=True) done = fields.Boolean(default=False) state = fields.Selection(selection_add=[ ('done', 'Done')], compute='_compute_state') @@ -19,3 +20,11 @@ class MailActivity(models.Model): super(MailActivity, self)._compute_state() for record in self.filtered(lambda activity: activity.done): record.state = 'done' + + +class MailActivityMixin(models.AbstractModel): + + _inherit = 'mail.activity.mixin' + activity_ids = fields.One2many( + domain=lambda self: [('res_model', '=', self._name), + ('active', '=', True)]) diff --git a/mail_activity_done/views/mail_activity_views.xml b/mail_activity_done/views/mail_activity_views.xml index e3d49e47..933c4b9f 100644 --- a/mail_activity_done/views/mail_activity_views.xml +++ b/mail_activity_done/views/mail_activity_views.xml @@ -27,19 +27,18 @@ - - + + - [('date_deadline', '<', context_today().strftime('%Y-%m-%d')), ('done', '!=', True)] + [('date_deadline', '<', context_today().strftime('%Y-%m-%d'))] - [('date_deadline', '=', context_today().strftime('%Y-%m-%d')), ('done', '!=', True)] + [('date_deadline', '=', context_today().strftime('%Y-%m-%d'))] - [('date_deadline', '>', context_today().strftime('%Y-%m-%d')), ('done', '!=', True)] + [('date_deadline', '>', context_today().strftime('%Y-%m-%d'))]