From b26980b03c059b977516d72a3d228ba04deac358 Mon Sep 17 00:00:00 2001 From: emagdalena Date: Wed, 16 Oct 2019 21:30:52 +0200 Subject: [PATCH] [IMP] mail_activity_done: black, isort --- mail_activity_done/LICENSE | 2 +- mail_activity_done/__manifest__.py | 14 ++---- mail_activity_done/hooks.py | 25 +++++----- .../migrations/12.0.2.0.0/post-migration.py | 6 ++- mail_activity_done/models/mail_activity.py | 19 ++++---- mail_activity_done/models/res_users.py | 47 ++++++++++--------- .../tests/test_mail_activity_done.py | 46 ++++++++++-------- 7 files changed, 82 insertions(+), 77 deletions(-) diff --git a/mail_activity_done/LICENSE b/mail_activity_done/LICENSE index 12334e0fd..7a9e77739 100644 --- a/mail_activity_done/LICENSE +++ b/mail_activity_done/LICENSE @@ -856,4 +856,4 @@ Public License instead of this License. But first, please read . -************************************************************************** \ No newline at end of file +************************************************************************** diff --git a/mail_activity_done/__manifest__.py b/mail_activity_done/__manifest__.py index 3f52695df..f20c0b809 100644 --- a/mail_activity_done/__manifest__.py +++ b/mail_activity_done/__manifest__.py @@ -3,18 +3,12 @@ { "name": "Mail Activity Done", "version": "12.0.2.0.0", - "author": "Eficent," - "Odoo Community Association (OCA)", + "author": "Eficent," "Odoo Community Association (OCA)", "license": "LGPL-3", "category": "Discuss", - "depends": [ - 'mail', - ], - "data": [ - 'views/templates.xml', - 'views/mail_activity_views.xml', - ], + "depends": ["mail"], + "data": ["views/templates.xml", "views/mail_activity_views.xml"], "pre_init_hook": "pre_init_hook", "post_load": "post_load_hook", - 'uninstall_hook': 'uninstall_hook', + "uninstall_hook": "uninstall_hook", } diff --git a/mail_activity_done/hooks.py b/mail_activity_done/hooks.py index ebc5a5755..b67b52f09 100644 --- a/mail_activity_done/hooks.py +++ b/mail_activity_done/hooks.py @@ -1,23 +1,27 @@ # Copyright 2018 Eficent Business and IT Consulting Services S.L. # Copyright 2018 Odoo, S.A. # License AGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html). -from odoo.addons.mail.models.mail_activity import MailActivity from odoo import fields +from odoo.addons.mail.models.mail_activity import MailActivity + def pre_init_hook(cr): """ The objective of this hook is to default to false all values of field 'done' of mail.activity """ - cr.execute("""SELECT column_name + cr.execute( + """SELECT column_name FROM information_schema.columns WHERE table_name='mail_activity' AND - column_name='done'""") + column_name='done'""" + ) if not cr.fetchone(): cr.execute( """ ALTER TABLE mail_activity ADD COLUMN done boolean; - """) + """ + ) cr.execute( """ @@ -28,12 +32,11 @@ def pre_init_hook(cr): def post_load_hook(): - def new_action_feedback(self, feedback=False): - if 'done' not in self._fields: + if "done" not in self._fields: return self.action_feedback_original(feedback=feedback) - message = self.env['mail.message'] + message = self.env["mail.message"] if feedback: self.write(dict(feedback=feedback)) for activity in self: @@ -42,15 +45,15 @@ def post_load_hook(): activity.active = False activity.date_done = fields.Date.today() record.message_post_with_view( - 'mail.message_activity_done', - values={'activity': activity}, - subtype_id=self.env.ref('mail.mt_activities').id, + "mail.message_activity_done", + values={"activity": activity}, + subtype_id=self.env.ref("mail.mt_activities").id, mail_activity_type_id=activity.activity_type_id.id, ) message |= record.message_ids[0] return message.ids and message.ids[0] or False - if not hasattr(MailActivity, 'action_feedback_original'): + if not hasattr(MailActivity, "action_feedback_original"): MailActivity.action_feedback_original = MailActivity.action_feedback MailActivity.action_feedback = new_action_feedback 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 index b163a08ae..577584d9e 100644 --- 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 @@ -5,8 +5,10 @@ def migrate(cr, version): if not version: return - cr.execute(""" + 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 593a35714..b009d3c58 100644 --- a/mail_activity_done/models/mail_activity.py +++ b/mail_activity_done/models/mail_activity.py @@ -5,26 +5,23 @@ from odoo import api, fields, models class MailActivity(models.Model): - _inherit = 'mail.activity' + _inherit = "mail.activity" active = fields.Boolean(default=True) done = fields.Boolean(default=False) - state = fields.Selection(selection_add=[ - ('done', 'Done')], compute='_compute_state') - date_done = fields.Date( - 'Completed Date', index=True, readonly=True, - ) + state = fields.Selection(selection_add=[("done", "Done")], compute="_compute_state") + date_done = fields.Date("Completed Date", index=True, readonly=True) - @api.depends('date_deadline', 'done') + @api.depends("date_deadline", "done") def _compute_state(self): super(MailActivity, self)._compute_state() for record in self.filtered(lambda activity: activity.done): - record.state = 'done' + record.state = "done" class MailActivityMixin(models.AbstractModel): - _inherit = 'mail.activity.mixin' + _inherit = "mail.activity.mixin" activity_ids = fields.One2many( - domain=lambda self: [('res_model', '=', self._name), - ('active', '=', True)]) + domain=lambda self: [("res_model", "=", self._name), ("active", "=", True)] + ) diff --git a/mail_activity_done/models/res_users.py b/mail_activity_done/models/res_users.py index 69bac79c3..59c0e40ee 100644 --- a/mail_activity_done/models/res_users.py +++ b/mail_activity_done/models/res_users.py @@ -4,7 +4,7 @@ from odoo import api, fields, models, modules class ResUsers(models.Model): - _inherit = 'res.users' + _inherit = "res.users" @api.model def systray_get_activities(self): @@ -25,31 +25,34 @@ class ResUsers(models.Model): AND act.done = False GROUP BY m.id, states, act.res_model; """ - self.env.cr.execute(query, { - 'today': fields.Date.context_today(self), - 'user_id': self.env.uid, - }) + self.env.cr.execute( + query, {"today": fields.Date.context_today(self), "user_id": self.env.uid} + ) activity_data = self.env.cr.dictfetchall() - model_ids = [a['id'] for a in activity_data] - model_names = {n[0]: n[1] for n in self.env['ir.model'].browse( - model_ids).name_get()} + model_ids = [a["id"] for a in activity_data] + model_names = { + n[0]: n[1] for n in self.env["ir.model"].browse(model_ids).name_get() + } user_activities = {} for activity in activity_data: - if not user_activities.get(activity['model']): - user_activities[activity['model']] = { - 'name': model_names[activity['id']], - 'model': activity['model'], - 'icon': modules.module.get_module_icon( - self.env[activity['model']]._original_module), - 'total_count': 0, 'today_count': 0, - 'overdue_count': 0, 'planned_count': 0, - 'type': 'activity', + if not user_activities.get(activity["model"]): + user_activities[activity["model"]] = { + "name": model_names[activity["id"]], + "model": activity["model"], + "icon": modules.module.get_module_icon( + 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'] - if activity['states'] in ('today', 'overdue'): - user_activities[activity['model']][ - 'total_count'] += activity['count'] + user_activities[activity["model"]][ + "%s_count" % activity["states"] + ] += activity["count"] + if activity["states"] in ("today", "overdue"): + user_activities[activity["model"]]["total_count"] += activity["count"] return list(user_activities.values()) diff --git a/mail_activity_done/tests/test_mail_activity_done.py b/mail_activity_done/tests/test_mail_activity_done.py index 548efa93f..6558436a5 100644 --- a/mail_activity_done/tests/test_mail_activity_done.py +++ b/mail_activity_done/tests/test_mail_activity_done.py @@ -1,35 +1,41 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -from odoo.tests.common import TransactionCase from datetime import date +from odoo.tests.common import TransactionCase + class TestMailActivityDoneMethods(TransactionCase): - def setUp(self): super(TestMailActivityDoneMethods, self).setUp() - self.employee = self.env['res.users'].create({ - 'company_id': self.env.ref("base.main_company").id, - 'name': "Test User", - 'login': "testuser", - 'groups_id': [(6, 0, [self.env.ref('base.group_user').id])] - }) - activity_type = self.env['mail.activity.type'].search( - [('name', '=', 'Meeting')], limit=1) - self.act1 = self.env['mail.activity'].create({ - 'activity_type_id': activity_type.id, - 'res_id': self.env.ref("base.res_partner_1").id, - 'res_model_id': self.env['ir.model']._get('res.partner').id, - 'user_id': self.employee.id, - 'date_deadline': date.today(), - }) + self.employee = self.env["res.users"].create( + { + "company_id": self.env.ref("base.main_company").id, + "name": "Test User", + "login": "testuser", + "groups_id": [(6, 0, [self.env.ref("base.group_user").id])], + } + ) + activity_type = self.env["mail.activity.type"].search( + [("name", "=", "Meeting")], limit=1 + ) + self.act1 = self.env["mail.activity"].create( + { + "activity_type_id": activity_type.id, + "res_id": self.env.ref("base.res_partner_1").id, + "res_model_id": self.env["ir.model"]._get("res.partner").id, + "user_id": self.employee.id, + "date_deadline": date.today(), + } + ) def test_mail_activity_done(self): self.act1.done = True - self.assertEquals(self.act1.state, 'done') + self.assertEquals(self.act1.state, "done") def test_systray_get_activities(self): act_count = self.employee.sudo(self.employee).systray_get_activities() - self.assertEqual(len(act_count), 1, - "Number of activities should be equal to one") + self.assertEqual( + len(act_count), 1, "Number of activities should be equal to one" + )