diff options
| author | Deep Bundela <dbu@odoo.com> | 2016-04-04 14:25:13 +0200 |
|---|---|---|
| committer | Jérome Maes <jem@openerp.com> | 2016-04-14 11:56:45 +0200 |
| commit | a2426e420dcc8d5c4ba2139b9094945d1ab5686f (patch) | |
| tree | cf1f60407cfbcc99c3a4f6e690a98d3309448994 /addons | |
| parent | 07c84d08f8d9605b6c9761fa217fa1bcd4a3f337 (diff) | |
[MOV] website_event_track : split files per models
Diffstat (limited to 'addons')
| -rw-r--r-- | addons/website_event_track/__openerp__.py | 1 | ||||
| -rw-r--r-- | addons/website_event_track/models/__init__.py | 1 | ||||
| -rw-r--r-- | addons/website_event_track/models/event.py | 56 | ||||
| -rw-r--r-- | addons/website_event_track/models/website_event_track.py | 51 | ||||
| -rw-r--r-- | addons/website_event_track/views/event_views.xml | 36 | ||||
| -rw-r--r-- | addons/website_event_track/views/website_event_track_views.xml | 34 |
6 files changed, 94 insertions, 85 deletions
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 @@ +<?xml version="1.0" encoding="utf-8"?> +<odoo> + <!-- Events Organisation/CONFIGURATION/EVENTS --> + <record id="view_event_form" model="ir.ui.view"> + <field name="name">Event Tracks</field> + <field name="inherit_id" ref="event.view_event_form"/> + <field name="model">event.event</field> + <field name="arch" type="xml"> + <div name="button_box" position="inside"> + <button name="%(action_event_track_from_event)d" + type="action" + class="oe_stat_button" + icon="fa-inbox" + attrs="{'invisible': [('show_tracks', '=', False), ('show_track_proposal', '=', False)]}"> + <field name="count_tracks" widget="statinfo"/> + </button> + <button name="%(action_event_sponsor_from_event)d" + type="action" + class="oe_stat_button" + icon="fa-users"> + <field name="count_sponsor" widget="statinfo" string="Sponsors"/> + </button> + </div> + <xpath expr="//div[@class='oe_title']" position="inside"> + <div name="event_checkboxes"> + <field name="show_menu"/> + <label for="show_menu"/> + <field name="show_tracks" attrs="{'invisible': [('show_menu', '=', False)]}"/> + <label for="show_tracks" attrs="{'invisible': [('show_menu', '=', False)]}"/> + <field name="show_track_proposal" attrs="{'invisible': [('show_menu', '=', False)]}"/> + <label for="show_track_proposal" attrs="{'invisible': [('show_menu', '=', False)]}"/> + </div> + </xpath> + </field> + </record> +</odoo> 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 <menuitem id="menu_event_track_tag" action="action_event_track_tag" parent="event.menu_event_configuration"/> - <!-- Events Organisation/CONFIGURATION/EVENTS --> - <record model="ir.ui.view" id="view_event_form"> - <field name="name">Event Tracks</field> - <field name="inherit_id" ref="event.view_event_form"/> - <field name="model">event.event</field> - <field name="arch" type="xml"> - <div name="button_box" position="inside"> - <button name="%(action_event_track_from_event)d" - type="action" - class="oe_stat_button" - icon="fa-inbox" - attrs="{'invisible': [('show_tracks', '=', False), ('show_track_proposal', '=', False)]}"> - <field name="count_tracks" widget="statinfo"/> - </button> - <button name="%(action_event_sponsor_from_event)d" - type="action" - class="oe_stat_button" - icon="fa-users"> - <field name="count_sponsor" widget="statinfo" string="Sponsors"/> - </button> - </div> - <xpath expr="//div[@class='oe_title']" position="inside"> - <div name="event_checkboxes"> - <field name="show_menu"/> - <label for="show_menu"/> - <field name="show_tracks" attrs="{'invisible': [('show_menu', '=', False)]}"/> - <label for="show_tracks" attrs="{'invisible': [('show_menu', '=', False)]}"/> - <field name="show_track_proposal" attrs="{'invisible': [('show_menu', '=', False)]}"/> - <label for="show_track_proposal" attrs="{'invisible': [('show_menu', '=', False)]}"/> - </div> - </xpath> - </field> - </record> - </data> </openerp> |
