diff --git a/addons/website_event/controllers/main.py b/addons/website_event/controllers/main.py index 6bf3801a961..31efc6b7123 100644 --- a/addons/website_event/controllers/main.py +++ b/addons/website_event/controllers/main.py @@ -14,7 +14,8 @@ from openerp.http import request from openerp.tools.translate import _ -class website_event(http.Controller): +class WebsiteEventController(http.Controller): + @http.route(['/event', '/event/page/', '/events', '/events/page/'], type='http', auth="public", website=True) def events(self, page=1, **searches): cr, uid, context = request.cr, request.uid, request.context diff --git a/addons/website_event/models/event.py b/addons/website_event/models/event.py index 27bec7f26c8..b57bccd6a8b 100644 --- a/addons/website_event/models/event.py +++ b/addons/website_event/models/event.py @@ -47,8 +47,10 @@ class event(models.Model): " of the event on the website.", store=True) menu_id = fields.Many2one('website.menu', 'Event Menu', copy=False) - @api.one + @api.multi def _get_new_menu_pages(self): + """ Retuns a list of tuple ('Page name', 'relative page url') for the event """ + self.ensure_one() todo = [ (_('Introduction'), 'website_event.template_intro'), (_('Location'), 'website_event.template_location') @@ -62,27 +64,29 @@ class event(models.Model): result.append((_('Register'), '/event/%s/register' % slug(self))) return result - @api.one + @api.multi def _set_show_menu(self): - if self.menu_id and not self.show_menu: - self.menu_id.unlink() - elif self.show_menu and not self.menu_id: - root_menu = self.env['website.menu'].create({'name': self.name}) - to_create_menus = self._get_new_menu_pages()[0] # TDE CHECK api.one -> returns a list with one item ? - seq = 0 - for name, url in to_create_menus: - self.env['website.menu'].create({ - 'name': name, - 'url': url, - 'parent_id': root_menu.id, - 'sequence': seq, - }) - seq += 1 - self.menu_id = root_menu + for event in self: + if event.menu_id and not event.show_menu: + event.menu_id.unlink() + elif event.show_menu and not event.menu_id: + root_menu = self.env['website.menu'].create({'name': event.name}) + to_create_menus = event._get_new_menu_pages() + seq = 0 + for name, url in to_create_menus: + self.env['website.menu'].create({ + 'name': name, + 'url': url, + 'parent_id': root_menu.id, + 'sequence': seq, + }) + seq += 1 + event.menu_id = root_menu - @api.one + @api.multi def _get_show_menu(self): - self.show_menu = bool(self.menu_id) + for event in self: + event.show_menu = bool(event.menu_id) def google_map_img(self, cr, uid, ids, zoom=8, width=298, height=298, context=None): event = self.browse(cr, uid, ids[0], context=context) diff --git a/addons/website_event_questions/controllers/main.py b/addons/website_event_questions/controllers/main.py index 7d78d7fa11e..31ff54b45af 100644 --- a/addons/website_event_questions/controllers/main.py +++ b/addons/website_event_questions/controllers/main.py @@ -1,9 +1,9 @@ # -*- coding: utf-8 -*- -from openerp.addons.website_event.controllers.main import website_event +from openerp.addons.website_event.controllers.main import WebsiteEventController -class website_event(website_event): +class website_event(WebsiteEventController): def _process_registration_details(self, details): ''' Process data posted from the attendee details form. ''' diff --git a/addons/website_event_sale/controllers/main.py b/addons/website_event_sale/controllers/main.py index 85e75e27e95..764832d4da8 100644 --- a/addons/website_event_sale/controllers/main.py +++ b/addons/website_event_sale/controllers/main.py @@ -4,11 +4,11 @@ from openerp import SUPERUSER_ID from openerp.addons.web import http from openerp.addons.web.http import request -from openerp.addons.website_event.controllers.main import website_event +from openerp.addons.website_event.controllers.main import WebsiteEventController from openerp.tools.translate import _ -class website_event(website_event): +class website_event(WebsiteEventController): @http.route(['/event//register'], type='http', auth="public", website=True) def event_register(self, event, **post): diff --git a/addons/website_event_track/models/event.py b/addons/website_event_track/models/event.py index 0e2873fca80..2d538c4faeb 100644 --- a/addons/website_event_track/models/event.py +++ b/addons/website_event_track/models/event.py @@ -153,9 +153,10 @@ class event_event(models.Model): 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.one + @api.multi def _get_new_menu_pages(self): - result = super(event_event, self)._get_new_menu_pages()[0] # TDE CHECK api.one -> returns a list with one item ? + 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))) @@ -163,14 +164,15 @@ class event_event(models.Model): result.append((_('Talk Proposals'), '/event/%s/track_proposal' % slug(self))) return result - @api.one + @api.multi def _set_show_menu(self): - # if the number of menu items have changed, then menu items must be regenerated - if self.menu_id: - nbr_menu_items = len(self._get_new_menu_pages()[0]) - if nbr_menu_items != len(self.menu_id.child_id): - self.menu_id.unlink() - return super(event_event, self)._set_show_menu()[0] + 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):