summaryrefslogtreecommitdiff
path: root/addons/website_event/models/event.py
diff options
context:
space:
mode:
Diffstat (limited to 'addons/website_event/models/event.py')
-rw-r--r--addons/website_event/models/event.py44
1 files changed, 43 insertions, 1 deletions
diff --git a/addons/website_event/models/event.py b/addons/website_event/models/event.py
index 4b16f0fa49e..50ea7696575 100644
--- a/addons/website_event/models/event.py
+++ b/addons/website_event/models/event.py
@@ -35,6 +35,48 @@ class event(osv.osv):
_name = 'event.event'
_inherit = ['event.event','website.seo.metadata']
+ def _get_new_menu_pages(serf, cr, uid, event, context=None):
+ context = context or {}
+ todo = [
+ (_('Introduction'), 'website_event.template_intro'),
+ (_('Location'), 'website_event.template_location')
+ ]
+ web = request.registry['website']
+ result = []
+ for name,path in todo:
+ newpath = web.new_page(request.cr, request.uid, path, request.context)
+ url = "/event/event.id/page/" + newpath
+ result.append((name, newpath))
+ return result
+
+ def _set_show_menu(self, cr, uid, ids, name, value, arg, context=None):
+ menuobj = self.pool.get('website.menu')
+ for event in self.browse(cr, uid, ids, context=context):
+ if event.menu_id and not value:
+ menuobj.unlink(cr, uid, [event.menu_id.id], context=context)
+ elif value and not event.menu_id:
+ root = menuobj.create(cr, uid, {
+ 'name': event.name
+ }, context=context)
+ tocreate = self._get_new_menu_pages(cr, uid, event, context)
+ tocreate.append((_('Register'), '/event/register/'+str(event.id)))
+ sequence = 0
+ for name,url in tocreate:
+ menuobj.create(cr, uid, {
+ 'name': name,
+ 'url': url,
+ 'parent_id': root,
+ 'sequence': sequence
+ }, context=context)
+ sequence += 1
+ return True
+
+ def _get_show_menu(self, cr, uid, ids, field_name, arg, context=None):
+ res = dict.fromkeys(ids, '')
+ for event in self.browse(cr, uid, ids, context=context):
+ res[event.id] = bool(event.menu_id)
+ return res
+
def _website_url(self, cr, uid, ids, field_name, arg, context=None):
res = dict.fromkeys(ids, '')
base_url = self.pool.get('ir.config_parameter').get_param(cr, uid, 'web.base.url')
@@ -55,7 +97,7 @@ class event(osv.osv):
help="Website communication history",
),
'website_url': fields.function(_website_url, string="Website url"),
- 'show_menu': fields.boolean('Dedicated Menu'),
+ 'show_menu': fields.function(_get_show_menu, fnct_inv=_set_show_menu, type='boolean', string='Dedicated Menu'),
'menu_id': fields.many2one('website.menu', 'Event Menu'),
}
_defaults = {