[IMP] website_event, website_event_track, website_event_sale : prepare migration

- change method decorator (api.one -> api.multi) for `_set_show_menu`
and `_set_show_menu`
- rename controller class
This commit is contained in:
Jérome Maes
2016-04-14 11:56:44 +02:00
parent 6aee28e685
commit ca8a47c352
5 changed files with 40 additions and 33 deletions
+2 -1
View File
@@ -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/<int:page>', '/events', '/events/page/<int:page>'], type='http', auth="public", website=True)
def events(self, page=1, **searches):
cr, uid, context = request.cr, request.uid, request.context
+23 -19
View File
@@ -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)
@@ -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. '''
@@ -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/<model("event.event"):event>/register'], type='http', auth="public", website=True)
def event_register(self, event, **post):
+11 -9
View File
@@ -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):