diff --git a/addons/website_event_track_online/__manifest__.py b/addons/website_event_track_online/__manifest__.py
index ba43d258771..c6de6027c8e 100644
--- a/addons/website_event_track_online/__manifest__.py
+++ b/addons/website_event_track_online/__manifest__.py
@@ -19,7 +19,9 @@
'security/ir.model.access.csv',
'views/assets.xml',
'views/event_event_views.xml',
+ 'views/event_sponsor_views.xml',
'views/event_templates_registration.xml',
+ 'views/event_track_templates_reminder.xml',
'views/event_track_templates.xml',
'views/event_track_templates_reminder.xml',
'views/event_track_views.xml',
@@ -29,6 +31,7 @@
'views/event_menus.xml',
],
'demo': [
+ 'data/event_sponsor_demo.xml',
'data/event_track_demo.xml',
'data/event_track_tag_demo.xml',
'data/event_track_visitor_demo.xml',
diff --git a/addons/website_event_track_online/data/event_sponsor_demo.xml b/addons/website_event_track_online/data/event_sponsor_demo.xml
new file mode 100644
index 00000000000..f2576038acf
--- /dev/null
+++ b/addons/website_event_track_online/data/event_sponsor_demo.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/website_event_track_online/models/__init__.py b/addons/website_event_track_online/models/__init__.py
index acdcaefaa1a..7553bc67199 100644
--- a/addons/website_event_track_online/models/__init__.py
+++ b/addons/website_event_track_online/models/__init__.py
@@ -2,6 +2,7 @@
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from . import event_event
+from . import event_sponsor
from . import event_track_visitor
from . import event_track
from . import event_track_tag
diff --git a/addons/website_event_track_online/models/event_sponsor.py b/addons/website_event_track_online/models/event_sponsor.py
new file mode 100644
index 00000000000..16bec7c9fe4
--- /dev/null
+++ b/addons/website_event_track_online/models/event_sponsor.py
@@ -0,0 +1,62 @@
+# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+
+from odoo import api, fields, models
+from odoo.modules.module import get_resource_path
+
+
+class Sponsor(models.Model):
+ _name = 'event.sponsor'
+ _inherit = ['event.sponsor']
+
+ # contact information
+ name = fields.Char('Sponsor Name', compute='_compute_name', readonly=False, store=True)
+ email = fields.Char('Sponsor Email', compute='_compute_email', readonly=False, store=True)
+ phone = fields.Char('Sponsor Phone', compute='_compute_phone', readonly=False, store=True)
+ mobile = fields.Char('Sponsor Mobile', compute='_compute_mobile', readonly=False, store=True)
+ # image
+ image_512 = fields.Image(
+ string="Logo", max_width=512, max_height=512,
+ compute='_compute_image_512', readonly=False, store=True)
+ image_256 = fields.Image("Image 256", related="image_512", max_width=256, max_height=256, store=False)
+ image_128 = fields.Image("Image 128", related="image_512", max_width=128, max_height=128, store=False)
+ website_image_url = fields.Char(
+ string='Image URL', max_width=256, max_height=256,
+ compute='_compute_website_image_url', compute_sudo=True, store=False)
+
+ @api.depends('partner_id')
+ def _compute_name(self):
+ self._synchronize_with_partner('name')
+
+ @api.depends('partner_id')
+ def _compute_email(self):
+ self._synchronize_with_partner('email')
+
+ @api.depends('partner_id')
+ def _compute_phone(self):
+ self._synchronize_with_partner('phone')
+
+ @api.depends('partner_id')
+ def _compute_mobile(self):
+ self._synchronize_with_partner('mobile')
+
+ @api.depends('partner_id')
+ def _compute_image_512(self):
+ self._synchronize_with_partner('image_512')
+
+ @api.depends('image_256', 'partner_id.image_256')
+ def _compute_website_image_url(self):
+ for sponsor in self:
+ if sponsor.image_256:
+ sponsor.website_image_url = self.env['website'].image_url(sponsor, 'image_256', size=256)
+ elif sponsor.partner_id.image_256:
+ sponsor.website_image_url = self.env['website'].image_url(sponsor.partner_id, 'image_256', size=256)
+ else:
+ sponsor.website_image_url = get_resource_path('website_event_track', 'static/src/img', 'event_sponsor_default_%d.png' % (sponsor.id % 1))
+
+ def _synchronize_with_partner(self, fname):
+ """ Synchronize with partner if not set. Setting a value does not write
+ on partner as this may be event-specific information. """
+ for sponsor in self:
+ if not sponsor[fname]:
+ sponsor[fname] = sponsor.partner_id[fname]
diff --git a/addons/website_event_track_online/views/event_sponsor_views.xml b/addons/website_event_track_online/views/event_sponsor_views.xml
new file mode 100644
index 00000000000..b229e5266a9
--- /dev/null
+++ b/addons/website_event_track_online/views/event_sponsor_views.xml
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+