[IMP] new featuers for complex events

bzr revid: fp@tinyerp.com-20131124223802-20rpekho195fu2l5
This commit is contained in:
Fabien Pinckaers 2013-11-24 23:38:02 +01:00
parent 5ee03592cf
commit d19b85f873
8 changed files with 110 additions and 21 deletions

View File

@ -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]

View File

@ -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:

View File

@ -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):

View File

@ -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>

View File

@ -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)

View File

@ -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>

View File

@ -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

View File

@ -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 }&amp;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"/>