From 785770feee265789e2095cdcb2151ed53f16d2c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A0=20Gil=20Sorribes?= Date: Mon, 6 May 2019 09:58:10 +0200 Subject: [PATCH 1/5] [12.0][FIX] mail_activity_done module --- mail_activity_done/models/res_users.py | 1 + 1 file changed, 1 insertion(+) diff --git a/mail_activity_done/models/res_users.py b/mail_activity_done/models/res_users.py index 8d81aa637..69bac79c3 100644 --- a/mail_activity_done/models/res_users.py +++ b/mail_activity_done/models/res_users.py @@ -44,6 +44,7 @@ class ResUsers(models.Model): self.env[activity['model']]._original_module), 'total_count': 0, 'today_count': 0, 'overdue_count': 0, 'planned_count': 0, + 'type': 'activity', } user_activities[activity['model']][ '%s_count' % activity['states']] += activity['count'] From 1db8566b8f5ca5737c4b7e53bd9afe50a4e4576f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A0=20Gil=20Sorribes?= Date: Tue, 7 May 2019 17:24:53 +0200 Subject: [PATCH 2/5] [FIX] search view --- .../views/mail_activity_views.xml | 27 +++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/mail_activity_done/views/mail_activity_views.xml b/mail_activity_done/views/mail_activity_views.xml index e3d49e470..3a8e061ac 100644 --- a/mail_activity_done/views/mail_activity_views.xml +++ b/mail_activity_done/views/mail_activity_views.xml @@ -27,9 +27,9 @@ - - @@ -44,6 +44,29 @@ + + res.partner.view.search.inherit.mail + res.partner + + + + + + + + [('activity_ids.date_deadline', '<', context_today().strftime('%Y-%m-%d')), ('activity_ids.done', '!=', True)] + + + [('activity_ids.date_deadline', '=', context_today().strftime('%Y-%m-%d')), ('activity_ids.done', '!=', True)] + + + [('activity_ids.date_deadline', '>', context_today().strftime('%Y-%m-%d')), ('activity_ids.done', '!=', True)] + + + + mail.activity.view.tree mail.activity From b889c7c6e024840b96adc097cd0a5e581f0a01d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A0=20Gil=20Sorribes?= Date: Tue, 7 May 2019 17:25:20 +0200 Subject: [PATCH 3/5] [ADD] uninstall_hook to remove done activities --- mail_activity_done/__init__.py | 2 +- mail_activity_done/__manifest__.py | 2 +- mail_activity_done/hooks.py | 12 ++++++++++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/mail_activity_done/__init__.py b/mail_activity_done/__init__.py index 74fbdef23..320b63a4c 100644 --- a/mail_activity_done/__init__.py +++ b/mail_activity_done/__init__.py @@ -1,2 +1,2 @@ from . import models -from .hooks import post_load_hook, pre_init_hook +from .hooks import post_load_hook, pre_init_hook, uninstall_hook diff --git a/mail_activity_done/__manifest__.py b/mail_activity_done/__manifest__.py index f539b3d78..31e60803f 100644 --- a/mail_activity_done/__manifest__.py +++ b/mail_activity_done/__manifest__.py @@ -16,5 +16,5 @@ ], "pre_init_hook": "pre_init_hook", "post_load": "post_load_hook", - + 'uninstall_hook': 'uninstall_hook', } diff --git a/mail_activity_done/hooks.py b/mail_activity_done/hooks.py index 619cd44f7..7528dd0f1 100644 --- a/mail_activity_done/hooks.py +++ b/mail_activity_done/hooks.py @@ -52,3 +52,15 @@ def post_load_hook(): if not hasattr(MailActivity, 'action_feedback_original'): MailActivity.action_feedback_original = MailActivity.action_feedback MailActivity.action_feedback = new_action_feedback + + +def uninstall_hook(cr, registry): + """ The objective of this hook is to remove all activities that are done + upon module uninstall + """ + cr.execute( + """ + DELETE FROM mail_activity + WHERE done=True + """ + ) From f4a81b46c8184cdb34a32466c08c7dd1d2449d2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A0=20Gil=20Sorribes?= Date: Fri, 10 May 2019 13:41:52 +0200 Subject: [PATCH 4/5] [UPD] Version number --- mail_activity_done/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mail_activity_done/__manifest__.py b/mail_activity_done/__manifest__.py index 31e60803f..8ea8d24ac 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": "12.0.1.1.0", + "version": "12.0.1.2.0", "author": "Eficent," "Odoo Community Association (OCA)", "license": "LGPL-3", From ba905c51ba917cb4e2bab5f52215a76f13a2f79a Mon Sep 17 00:00:00 2001 From: Jordi Ballester Alomar Date: Tue, 11 Jun 2019 16:42:58 +0200 Subject: [PATCH 5/5] [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/12.0.2.0.0/post-migration.py | 12 +++++++++++ mail_activity_done/models/mail_activity.py | 9 ++++++++ .../views/mail_activity_views.xml | 21 +++++++++---------- 5 files changed, 33 insertions(+), 12 deletions(-) create mode 100644 mail_activity_done/migrations/12.0.2.0.0/post-migration.py diff --git a/mail_activity_done/__manifest__.py b/mail_activity_done/__manifest__.py index 8ea8d24ac..3f52695df 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": "12.0.1.2.0", + "version": "12.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 7528dd0f1..ebc5a5755 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/12.0.2.0.0/post-migration.py b/mail_activity_done/migrations/12.0.2.0.0/post-migration.py new file mode 100644 index 000000000..b163a08ae --- /dev/null +++ b/mail_activity_done/migrations/12.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 c91e90038..593a35714 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 3a8e061ac..ee095c2be 100644 --- a/mail_activity_done/views/mail_activity_views.xml +++ b/mail_activity_done/views/mail_activity_views.xml @@ -27,19 +27,18 @@ - + + domain="[('active', '=', False), ('state', '=', 'done')]"/> - [('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'))] @@ -51,18 +50,18 @@ + domain="[('activity_ids.active', '=', True)]"/> + domain="[('activity_ids.active', '=', False), ('activity_ids.state', '=', 'done')]"/> - [('activity_ids.date_deadline', '<', context_today().strftime('%Y-%m-%d')), ('activity_ids.done', '!=', True)] + [('activity_ids.date_deadline', '<', context_today().strftime('%Y-%m-%d'))] - [('activity_ids.date_deadline', '=', context_today().strftime('%Y-%m-%d')), ('activity_ids.done', '!=', True)] + [('activity_ids.date_deadline', '=', context_today().strftime('%Y-%m-%d'))] - [('activity_ids.date_deadline', '>', context_today().strftime('%Y-%m-%d')), ('activity_ids.done', '!=', True)] + [('activity_ids.date_deadline', '>', context_today().strftime('%Y-%m-%d'))]