[IMP] new featuers for complex events
bzr revid: fp@tinyerp.com-20131124223802-20rpekho195fu2l5
This commit is contained in:
parent
5ee03592cf
commit
d19b85f873
|
@ -546,7 +546,7 @@ class website_menu(osv.osv):
|
|||
|
||||
def get_menu(self, cr, uid, website_id, context=None):
|
||||
root_domain = [('parent_id', '=', False)] # ('website_id', '=', website_id),
|
||||
menu_ids = self.search(cr, uid, root_domain, context=context)
|
||||
menu_ids = self.search(cr, uid, root_domain, order='id', context=context)
|
||||
menu = self.browse(cr, uid, menu_ids, context=context)
|
||||
return menu[0]
|
||||
|
||||
|
|
|
@ -163,6 +163,13 @@ class website_event(http.Controller):
|
|||
|
||||
return request.website.render("website_event.index", values)
|
||||
|
||||
@website.route(['/event/<model("event.event"):event>/page/<page:page>'], type='http', auth="public", multilang=True)
|
||||
def event_page(self, event, page, **post):
|
||||
values = {
|
||||
'event': event,
|
||||
}
|
||||
return request.website.render(page, values)
|
||||
|
||||
@website.route(['/event/<model("event.event"):event>'], type='http', auth="public", multilang=True)
|
||||
def event(self, event=None, **post):
|
||||
if event.menu_id and event.menu_id.child_id:
|
||||
|
|
|
@ -46,10 +46,10 @@ class event(osv.osv):
|
|||
web = self.pool.get('website')
|
||||
result = []
|
||||
for name,path in todo:
|
||||
name = name+' '+event.name
|
||||
newpath = web.new_page(cr, uid, name, path, ispage=False, context=context)
|
||||
url = "/event/event.id/page/" + newpath
|
||||
result.append((name, newpath))
|
||||
name2 = name+' '+event.name
|
||||
newpath = web.new_page(cr, uid, name2, path, ispage=False, context=context)
|
||||
url = "/event/"+str(event.id)+"/page/" + newpath
|
||||
result.append((name, url))
|
||||
return result
|
||||
|
||||
def _set_show_menu(self, cr, uid, ids, name, value, arg, context=None):
|
||||
|
|
|
@ -72,7 +72,7 @@
|
|||
</span>
|
||||
</t>
|
||||
<h4 class="media-heading">
|
||||
<a t-href="/event/#{ event.id }/"><span t-field="event.name"> </span></a>
|
||||
<a t-href="/event/#{(not event.menu_id) and 'register/' or ''}#{ event.id }/"><span t-field="event.name"> </span></a>
|
||||
<small t-if="not event.website_published" class="label label-danger">not published</small>
|
||||
</h4>
|
||||
<div>
|
||||
|
@ -172,7 +172,7 @@
|
|||
<div class="row mt8">
|
||||
<div class="col-sm-7" id="event_menu">
|
||||
<ol class="breadcrumb mb0" t-if="not event.menu_id">
|
||||
<li t-if="not event.type"><a href="/event">All Events</a></li>
|
||||
<li><a href="/event">All Events</a></li>
|
||||
<li t-if="event.type">
|
||||
<a t-href="/event?type=#{event.type.id}" t-esc="event.type.name"/>
|
||||
</li>
|
||||
|
|
|
@ -35,11 +35,27 @@ from openerp import tools
|
|||
import urllib
|
||||
|
||||
class website_event(http.Controller):
|
||||
@website.route(['/event/detail/<model("event.event"):event>'], type='http', auth="public", multilang=True)
|
||||
def event_detail(self, event=None, **post):
|
||||
@website.route(['/event/track_view/<model("event.track"):track>'], type='http', auth="public", multilang=True)
|
||||
def event_track_view(self, track, **post):
|
||||
# TODO: not implemented
|
||||
values = { 'track': track, 'event': track.event_id}
|
||||
return request.website.render("website_event_track.track_view", values)
|
||||
|
||||
@website.route(['/event/tracks/<model("event.event"):event>'], type='http', auth="public", multilang=True)
|
||||
def event_tracks(self, event, tag=None, **post):
|
||||
# TODO: filter on tracks: tags, search keywords
|
||||
values = {
|
||||
'event': event,
|
||||
'tracks': event.track_ids,
|
||||
'tags': event.track_tag_ids,
|
||||
'searches': {}
|
||||
}
|
||||
print 'ICI'
|
||||
return request.website.render("website_event_track.tracks", values)
|
||||
|
||||
@website.route(['/event/detail/<model("event.event"):event>'], type='http', auth="public", multilang=True)
|
||||
def event_detail(self, event, **post):
|
||||
values = { 'event': event }
|
||||
return request.website.render("website_event_track.event_home", values)
|
||||
|
||||
@website.route(['/event/track_proposal/<model("event.event"):event>'], type='http', auth="public", multilang=True)
|
||||
|
|
|
@ -2,19 +2,28 @@
|
|||
<openerp>
|
||||
<data>
|
||||
|
||||
<record id="event_tag1" model="event.tag">
|
||||
<field name="name">Technical</field>
|
||||
<record id="event_tag1" model="event.track.tag">
|
||||
<field name="name">Webinar</field>
|
||||
</record>
|
||||
<record id="event_tag2" model="event.tag">
|
||||
<field name="name">Business</field>
|
||||
<record id="event_tag2" model="event.track.tag">
|
||||
<field name="name">Exhibition</field>
|
||||
</record>
|
||||
<record id="event_tag3" model="event.tag">
|
||||
<field name="name">Lightning Talks</field>
|
||||
</record>
|
||||
<record id="event_tag4" model="event.tag">
|
||||
<field name="name">Round Table</field>
|
||||
<record id="event_tag3" model="event.track.tag">
|
||||
<field name="name">Conference</field>
|
||||
</record>
|
||||
|
||||
<record id="event_track_tag1" model="event.track.tag">
|
||||
<field name="name">Technical</field>
|
||||
</record>
|
||||
<record id="event_track_tag2" model="event.track.tag">
|
||||
<field name="name">Business</field>
|
||||
</record>
|
||||
<record id="event_track_tag3" model="event.track.tag">
|
||||
<field name="name">Lightning Talks</field>
|
||||
</record>
|
||||
<record id="event_track_tag4" model="event.track.tag">
|
||||
<field name="name">Round Table</field>
|
||||
</record>
|
||||
|
||||
<record id="event_track_location1" model="event.track.location">
|
||||
<field name="name">Room 1</field>
|
||||
|
@ -32,6 +41,11 @@
|
|||
<!--
|
||||
This should be done at the end so that the menu is complete
|
||||
-->
|
||||
<record id="event.event_0" model="event.event">
|
||||
<field name="show_tracks">True</field>
|
||||
<field name="show_track_proposal">True</field>
|
||||
<field name="show_blog">True</field>
|
||||
</record>
|
||||
<record id="event.event_0" model="event.event">
|
||||
<field name="show_menu">True</field>
|
||||
</record>
|
||||
|
|
|
@ -88,7 +88,7 @@ class event_track(osv.osv):
|
|||
'show_attachments': lambda self, cr, uid, ctx: True,
|
||||
'duration': lambda *args: 0,
|
||||
'stage_id': _default_stage_id,
|
||||
'priority': 3
|
||||
'priority': '2'
|
||||
}
|
||||
def _read_group_stage_ids(self, cr, uid, ids, domain, read_group_order=None, access_rights_uid=None, context=None):
|
||||
stage_obj = self.pool.get('event.track.stage')
|
||||
|
@ -122,9 +122,11 @@ class event_event(osv.osv):
|
|||
def _get_new_menu_pages(self, cr, uid, event, context=None):
|
||||
context = context or {}
|
||||
result = super(event_event, self)._get_new_menu_pages(cr, uid, event, context=context)
|
||||
if event.show_tracks:
|
||||
result.append( (_('Agenda'), '/event/tracks/'+str(event.id)))
|
||||
if event.blog_id:
|
||||
pass
|
||||
result.append( (_('News'), '/blog/cat/'+str(event.blog_ig.id)))
|
||||
if event.show_track_proposal:
|
||||
result.append( _('Talk Proposals'), '/event/track_proposal/'+str(event.id))
|
||||
result.append( (_('Talk Proposals'), '/event/track_proposal/'+str(event.id)))
|
||||
return result
|
||||
|
||||
|
|
|
@ -35,6 +35,56 @@
|
|||
</t>
|
||||
</template>
|
||||
|
||||
<template id="tracks">
|
||||
<t t-call="website_event.layout">
|
||||
<div class="oe_structure"/>
|
||||
<div class="container">
|
||||
<div class="row mt16">
|
||||
<div class="col-md-3 css_noprint">
|
||||
|
||||
<ul class="nav nav-pills nav-stacked">
|
||||
<li t-att-class="(not searches.get('tag')) and 'active' or ''"><a href="/event/tracks/#{ event.id }">All</a></li>
|
||||
<t t-foreach="tags" t-as="tag">
|
||||
<li t-att-class="searches.get('tag') == tag.id and 'active' or ''">
|
||||
<a t-href="/event/tracks/#{ event.id }&tag=#{ tag.id }">
|
||||
<t t-esc="tag.name"/>
|
||||
</a>
|
||||
</li>
|
||||
</t>
|
||||
</ul>
|
||||
|
||||
</div><div class="col-md-9">
|
||||
|
||||
<ul class="media-list">
|
||||
<li t-foreach="event.track_ids" t-as="track" class="media">
|
||||
<div class="media-body">
|
||||
<h4 class="media-heading">
|
||||
<a t-href="/event/track_view/#{track.id}"><span t-field="track.name"> </span></a>
|
||||
<!-- <small t-if="not track.website_published" class="label label-danger">not published</small> -->
|
||||
</h4>
|
||||
<p>TODO: NOT Implemented</p>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
</template>
|
||||
|
||||
|
||||
<template id="track_view">
|
||||
<t t-call="website_event.layout">
|
||||
<div class="oe_structure"/>
|
||||
<div class="container">
|
||||
<h1>Not Implmented</h1>
|
||||
<h2 t-esc="track.name"/>
|
||||
</div>
|
||||
</t>
|
||||
</template>
|
||||
|
||||
|
||||
<template id="event_track_proposal">
|
||||
<t t-call="website_event.layout">
|
||||
<div class="oe_structure"/>
|
||||
|
|
Loading…
Reference in New Issue