From b8966ac660cb6b899cd8e91b513cb2fc321548d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Debauche?= Date: Mon, 27 Jan 2020 13:52:15 +0000 Subject: [PATCH] [IMP] website_event_track: improve event sponsor integration Purpose ======= Improve sponsor management in order to transform it into a real business document allowing to communicate with them directly. Specifications ============== Add integration with mailgateway and activities through mail.thread and mail.activity.mixin inheritance. Improve sponsor views: add a real form view and add a small kanban view displaying some partner / sponsor information. Task ID 2119333 PR #40949 --- .../models/event_sponsor.py | 26 ++++++- .../views/event_sponsor_views.xml | 76 +++++++++++++++++-- 2 files changed, 90 insertions(+), 12 deletions(-) diff --git a/addons/website_event_track/models/event_sponsor.py b/addons/website_event_track/models/event_sponsor.py index 53a587e1a2b..8c4ec119c67 100644 --- a/addons/website_event_track/models/event_sponsor.py +++ b/addons/website_event_track/models/event_sponsor.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. -from odoo import fields, models +from odoo import fields, models, _ class SponsorType(models.Model): @@ -16,11 +16,29 @@ class SponsorType(models.Model): class Sponsor(models.Model): _name = "event.sponsor" _description = 'Event Sponsor' - _order = "sequence" + _order = "sequence, sponsor_type_id" + _rec_name = 'partner_name' + _inherit = ['mail.thread', 'mail.activity.mixin'] event_id = fields.Many2one('event.event', 'Event', required=True) sponsor_type_id = fields.Many2one('event.sponsor.type', 'Sponsoring Type', required=True) partner_id = fields.Many2one('res.partner', 'Sponsor/Customer', required=True) + partner_name = fields.Char('Name', related='partner_id.name') + partner_email = fields.Char('Email', related='partner_id.email') + partner_phone = fields.Char('Phone', related='partner_id.phone') + partner_mobile = fields.Char('Mobile', related='partner_id.mobile') url = fields.Char('Sponsor Website') - sequence = fields.Integer('Sequence', store=True, related='sponsor_type_id.sequence', readonly=False) - image_128 = fields.Image(string="Logo", related='partner_id.image_128', store=True, readonly=False) + sequence = fields.Integer('Sequence') + image_128 = fields.Image( + string="Logo", related='partner_id.image_128', store=True, readonly=False) + + def _message_get_suggested_recipients(self): + recipients = super(Sponsor, self)._message_get_suggested_recipients() + for sponsor in self: + if sponsor.partner_id: + sponsor._message_add_suggested_recipient( + recipients, + partner=sponsor.partner_id, + reason=_('Sponsor') + ) + return recipients diff --git a/addons/website_event_track/views/event_sponsor_views.xml b/addons/website_event_track/views/event_sponsor_views.xml index dd44044f9b6..3d48dbf6396 100644 --- a/addons/website_event_track/views/event_sponsor_views.xml +++ b/addons/website_event_track/views/event_sponsor_views.xml @@ -9,8 +9,8 @@
- +
@@ -46,23 +46,83 @@ - - Event Sponsors - event.sponsor - tree,form - {'search_default_event_id': active_id, 'default_event_id': active_id} + + event.sponsor.view.form + event.sponsor + +
+ + +

+ + + + + + + + + + + + + +
+
+ + + +
+
+
- event.sponsor.tree + event.sponsor.view.tree event.sponsor - + + + + + event.sponsor.view.kanban + event.sponsor + + + + + + + + +
+
+ Sponsor image +
+

+
Level:
+ + +
+
+
+
+
+
+
+
+ + + Event Sponsors + event.sponsor + kanban,tree,form + {'search_default_event_id': active_id, 'default_event_id': active_id} +