diff --git a/addons/website_event_track/__openerp__.py b/addons/website_event_track/__openerp__.py
index f71f3fa7c6a..5e02b57aa22 100644
--- a/addons/website_event_track/__openerp__.py
+++ b/addons/website_event_track/__openerp__.py
@@ -21,6 +21,7 @@ Adds support for:
'depends': ['website_event'],
'data': [
'data/website_event_track_data.xml',
+ 'views/event_views.xml',
'views/website_event_track_templates.xml',
'views/website_event_track_views.xml',
'data/website_event_track_tip_data.xml',
diff --git a/addons/website_event_track/models/__init__.py b/addons/website_event_track/models/__init__.py
index cc0f7a9afdc..434b7104d5c 100644
--- a/addons/website_event_track/models/__init__.py
+++ b/addons/website_event_track/models/__init__.py
@@ -1 +1,2 @@
import website_event_track
+import event
diff --git a/addons/website_event_track/models/event.py b/addons/website_event_track/models/event.py
new file mode 100644
index 00000000000..4cc1e33e8f0
--- /dev/null
+++ b/addons/website_event_track/models/event.py
@@ -0,0 +1,56 @@
+# -*- coding: utf-8 -*-
+
+from openerp import models, fields, api
+from openerp.tools.translate import _
+from openerp.addons.website.models.website import slug
+
+
+class event_event(models.Model):
+ _inherit = "event.event"
+
+ @api.multi
+ def _count_tracks(self):
+ track_data = self.env['event.track'].read_group([('state', '!=', 'cancel')],
+ ['event_id', 'state'], ['event_id'])
+ result = dict((data['event_id'][0], data['event_id_count']) for data in track_data)
+ for event in self:
+ event.count_tracks = result.get(event.id, 0)
+
+ @api.one
+ def _count_sponsor(self):
+ self.count_sponsor = len(self.sponsor_ids)
+
+ @api.one
+ @api.depends('track_ids.tag_ids')
+ def _get_tracks_tag_ids(self):
+ self.tracks_tag_ids = self.track_ids.mapped('tag_ids').ids
+
+ track_ids = fields.One2many('event.track', 'event_id', 'Tracks')
+ sponsor_ids = fields.One2many('event.sponsor', 'event_id', 'Sponsors')
+ show_track_proposal = fields.Boolean('Tracks Proposals', compute='_get_show_menu', inverse='_set_show_menu', store=True)
+ show_tracks = fields.Boolean('Show Tracks on Website', compute='_get_show_menu', inverse='_set_show_menu', store=True)
+ count_tracks = fields.Integer('Tracks', compute='_count_tracks')
+ allowed_track_tag_ids = fields.Many2many('event.track.tag', relation='event_allowed_track_tags_rel', string='Available Track Tags')
+ tracks_tag_ids = fields.Many2many('event.track.tag', relation='event_track_tags_rel', string='Track Tags', compute='_get_tracks_tag_ids', store=True)
+ count_sponsor = fields.Integer('# Sponsors', compute='_count_sponsor')
+
+ @api.multi
+ def _get_new_menu_pages(self):
+ self.ensure_one()
+ result = super(event_event, self)._get_new_menu_pages()
+ if self.show_tracks:
+ result.append((_('Talks'), '/event/%s/track' % slug(self)))
+ result.append((_('Agenda'), '/event/%s/agenda' % slug(self)))
+ if self.show_track_proposal:
+ result.append((_('Talk Proposals'), '/event/%s/track_proposal' % slug(self)))
+ return result
+
+ @api.multi
+ def _set_show_menu(self):
+ for event in self:
+ # if the number of menu items have changed, then menu items must be regenerated
+ if event.menu_id:
+ nbr_menu_items = len(event._get_new_menu_pages())
+ if nbr_menu_items != len(event.menu_id.child_id):
+ event.menu_id.unlink()
+ return super(event_event, self)._set_show_menu()
diff --git a/addons/website_event_track/models/website_event_track.py b/addons/website_event_track/models/website_event_track.py
index 2d538c4faeb..d648521a72c 100644
--- a/addons/website_event_track/models/website_event_track.py
+++ b/addons/website_event_track/models/website_event_track.py
@@ -124,57 +124,6 @@ class event_track(models.Model):
}
-class event_event(models.Model):
- _inherit = "event.event"
-
- @api.multi
- def _count_tracks(self):
- track_data = self.env['event.track'].read_group([('state', '!=', 'cancel')],
- ['event_id', 'state'], ['event_id'])
- result = dict((data['event_id'][0], data['event_id_count']) for data in track_data)
- for event in self:
- event.count_tracks = result.get(event.id, 0)
-
- @api.one
- def _count_sponsor(self):
- self.count_sponsor = len(self.sponsor_ids)
-
- @api.one
- @api.depends('track_ids.tag_ids')
- def _get_tracks_tag_ids(self):
- self.tracks_tag_ids = self.track_ids.mapped('tag_ids').ids
-
- track_ids = fields.One2many('event.track', 'event_id', 'Tracks')
- sponsor_ids = fields.One2many('event.sponsor', 'event_id', 'Sponsors')
- show_track_proposal = fields.Boolean('Tracks Proposals', compute='_get_show_menu', inverse='_set_show_menu', store=True)
- show_tracks = fields.Boolean('Show Tracks on Website', compute='_get_show_menu', inverse='_set_show_menu', store=True)
- count_tracks = fields.Integer('Tracks', compute='_count_tracks')
- allowed_track_tag_ids = fields.Many2many('event.track.tag', relation='event_allowed_track_tags_rel', string='Available Track Tags')
- tracks_tag_ids = fields.Many2many('event.track.tag', relation='event_track_tags_rel', string='Track Tags', compute='_get_tracks_tag_ids', store=True)
- count_sponsor = fields.Integer('# Sponsors', compute='_count_sponsor')
-
- @api.multi
- def _get_new_menu_pages(self):
- self.ensure_one()
- result = super(event_event, self)._get_new_menu_pages()
- if self.show_tracks:
- result.append((_('Talks'), '/event/%s/track' % slug(self)))
- result.append((_('Agenda'), '/event/%s/agenda' % slug(self)))
- if self.show_track_proposal:
- result.append((_('Talk Proposals'), '/event/%s/track_proposal' % slug(self)))
- return result
-
- @api.multi
- def _set_show_menu(self):
- for event in self:
- # if the number of menu items have changed, then menu items must be regenerated
- if event.menu_id:
- nbr_menu_items = len(event._get_new_menu_pages())
- if nbr_menu_items != len(event.menu_id.child_id):
- event.menu_id.unlink()
- return super(event_event, self)._set_show_menu()
-
-
class event_sponsors_type(models.Model):
_name = "event.sponsor.type"
_order = "sequence"
diff --git a/addons/website_event_track/views/event_views.xml b/addons/website_event_track/views/event_views.xml
new file mode 100644
index 00000000000..4b927f99876
--- /dev/null
+++ b/addons/website_event_track/views/event_views.xml
@@ -0,0 +1,36 @@
+
+
+
+
+ Event Tracks
+
+ event.event
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/website_event_track/views/website_event_track_views.xml b/addons/website_event_track/views/website_event_track_views.xml
index fc114807eff..ec31351f6e1 100644
--- a/addons/website_event_track/views/website_event_track_views.xml
+++ b/addons/website_event_track/views/website_event_track_views.xml
@@ -318,39 +318,5 @@ Tracks define the agenda of your event. These can be a talk, a round table, a me
-
-
- Event Tracks
-
- event.event
-
-