diff --git a/mail_activity_board/__manifest__.py b/mail_activity_board/__manifest__.py index 87e1241..5e6d92b 100644 --- a/mail_activity_board/__manifest__.py +++ b/mail_activity_board/__manifest__.py @@ -8,7 +8,7 @@ "development_status": "Beta", "category": "Social Network", "website": "https://github.com/OCA/social", - "author": "SDi, David Juaneda, Sodexis, Odoo Community Association (OCA)", + "author": "SDi, David Juaneda, Sodexis, ACSONE SA/NV, Odoo Community Association (OCA)", "license": "AGPL-3", "installable": True, "depends": ["calendar", "board"], diff --git a/mail_activity_board/models/mail_activity.py b/mail_activity_board/models/mail_activity.py index 8cfd77a..1862f67 100644 --- a/mail_activity_board/models/mail_activity.py +++ b/mail_activity_board/models/mail_activity.py @@ -17,6 +17,24 @@ class MailActivity(models.Model): calendar_event_id_partner_ids = fields.Many2many( related="calendar_event_id.partner_ids", readonly=True ) + related_model_instance = fields.Reference( + selection="_selection_related_model_instance", + compute="_compute_related_model_instance", + string="Document", + ) + + @api.depends("res_id", "res_model") + def _compute_related_model_instance(self): + for record in self: + ref = False + if record.res_id: + ref = "{},{}".format(record.res_model, record.res_id) + record.related_model_instance = ref + + @api.model + def _selection_related_model_instance(self): + models = self.env["ir.model"].search([("is_mail_activity", "=", True)]) + return [(model.model, model.name) for model in models] def open_origin(self): self.ensure_one() diff --git a/mail_activity_board/readme/CONTRIBUTORS.rst b/mail_activity_board/readme/CONTRIBUTORS.rst index 5530d75..adad24f 100644 --- a/mail_activity_board/readme/CONTRIBUTORS.rst +++ b/mail_activity_board/readme/CONTRIBUTORS.rst @@ -9,3 +9,7 @@ * `Pesol `_: * Pedro Gonzalez (pedro.gonzalez@pesol.es) + +* `ACSONE SA/NV `_ + + * Laurent Mignon diff --git a/mail_activity_board/tests/test_mail_activity_board.py b/mail_activity_board/tests/test_mail_activity_board.py index 6aede0d..f83d971 100644 --- a/mail_activity_board/tests/test_mail_activity_board.py +++ b/mail_activity_board/tests/test_mail_activity_board.py @@ -202,3 +202,11 @@ class TestMailActivityBoardMethods(TransactionCase): for act in acts: self.assertIn(act, self.partner_client.activity_ids.ids) + + def test_related_model_instance(self): + """This test case checks the direct access from the activity to the + linked model instance + """ + self.assertEqual(self.act3.related_model_instance, self.partner_client) + self.act3.write({"res_id": False, "res_model": False}) + self.assertFalse(self.act3.related_model_instance) diff --git a/mail_activity_board/views/mail_activity_view.xml b/mail_activity_board/views/mail_activity_view.xml index 2949532..9c3f365 100644 --- a/mail_activity_board/views/mail_activity_view.xml +++ b/mail_activity_board/views/mail_activity_view.xml @@ -4,6 +4,45 @@ VIEWS --> + + + mail.activity.view.form.popup (in mail_activity_board) + mail.activity + + + + + + + + + + + mail.activity.view.form.calendar (in mail_activity_board) + mail.activity + + + + + + + 1 + + + + mail.activity.boards.view.form @@ -18,7 +57,8 @@ class="centre oe_link" nolabel="1" > -

+ +

@@ -88,7 +128,12 @@ name="decoration-success" >(date_deadline > current_date) - + + + + + 1 +