[IMP] event tracks, done track submission, a few data, some fixes

bzr revid: fp@tinyerp.com-20131222144057-8vxt7mouxako39wp
This commit is contained in:
Fabien Pinckaers 2013-12-22 15:40:57 +01:00
parent 049f0c26e1
commit 9cc6b3c30f
5 changed files with 133 additions and 20 deletions

View File

@ -23,7 +23,9 @@ from openerp.addons.web import http
from openerp.addons.web.http import request
from openerp.addons.website.models import website
from openerp.addons.website.controllers.main import Website as controllers
import re
import werkzeug.utils
controllers = controllers()
@ -79,8 +81,49 @@ class website_event(http.Controller):
values = { 'event': event }
return request.website.render("website_event_track.event_track_proposal", values)
@website.route(['/event/<model("event.event"):event>/track_proposal/success/'], type='http', auth="public", multilang=True)
def event_track_proposal_success(self, event, **post):
website.preload_records(event, on_error="website_event.404")
values = { 'event': event }
@website.route(['/event/<model("event.event"):event>/track_proposal/post'], type='http', auth="public", multilang=True)
def event_track_proposal_post(self, event, **post):
cr, uid, context = request.cr, request.uid, request.context
tobj = request.registry['event.track']
tags = []
for tag in event.allowed_track_tag_ids:
if post.get('tag_'+str(tag.id)):
tags.append(tag.id)
e = werkzeug.utils.escape
track_description = '''<section data-snippet-id="text-block">
<div class="container">
<div class="row">
<div class="col-md-12 text-center">
<h2>%s</h2>
</div>
<div class="col-md-12">
<p>%s</p>
</div>
<div class="col-md-12">
<h3>About The Author</h3>
<p>%s</p>
</div>
</div>
</div>
</section>''' % (e(post['track_name']),
e(post['description']), e(post['biography']))
track_id = tobj.create(cr, uid, {
'name': post['track_name'],
'event_id': event.id,
'tag_ids': [(6, 0, tags)],
'user_id': False,
'description': track_description
}, context=context)
tobj.message_post(cr, uid, [track_id], body="""Proposed By: %s<br/>
Mail: <a href="mailto:%s">%s</a><br/>
Phone: %s""" % (e(post['partner_name']), e(post['email_from']),
e(post['email_from']), e(post['phone'])), context=context)
track = tobj.browse(cr, uid, track_id, context=context)
values = {'track': track}
return request.website.render("website_event_track.event_track_proposal_success", values)

View File

@ -79,5 +79,54 @@
<field name="partner_id" ref="base.res_partner_14"/>
</record>
<!-- Tracks -->
<record id="track_1" model="event.track">
<field name="name">A Better Future With OpenERP eCommerce</field>
<field name="event_id" ref="event.event_0"/>
<field name="website_published" eval="True"/>
<field name="duration" eval="1"/>
<field name="date">2014-12-01 10:00:00</field>
<field name="speaker_ids" eval="[(6, 0, [ref('base.res_partner_address_12')])]"/>
<field name="location_id" ref="website_event_track.event_track_location2"/>
<field name="stage_id" ref="website_event_track.event_track_stage3"/>
<field name="tag_ids" eval="[(6, 0, [ref('website_event_track.event_track_tag2'), ref('website_event_track.event_track_tag3')])]"/>
<field name="description" type="xml">
<section data-snippet-id="text-block">
<div class="container">
<div class="row">
<div class="col-md-12 text-center">
<h2>A Better Future With OpenERP Commerce</h2>
<h3 class="text-muted mt0">by Georges Lucas, OpenCorp Director</h3>
</div>
<div class="col-md-12">
<p>
Apart from being an enterprise management software, OpenERP is
used nowadays for a great variety of enterprise frontends.
</p><p>
The talk illustrates the impact of OpenERP in areas such as the
company website, online events management, eCommerce, online
recruitments, social media marketing, etc.
</p>
</div>
<div class="col-md-12">
<h3>About The Author</h3>
<p>
Georges Lucas is <b>Director at OpenElec</b>. He develops software
since he has 13 years old.
He sold his first company at 30 years old and manage to
grow OpenCorp from 1 to 55 employees mostly by reselling
services on OpenERP.
</p><p>
Georges is the <b>author of several books</b>, including Amazon best seller
"How OpenERP will change the business world!".
</p>
</div>
</div>
</div>
</section>
</field>
</record>
</data>
</openerp>

View File

@ -60,6 +60,14 @@ class event_track(osv.osv):
_name = "event.track"
_order = 'date'
_inherit = ['mail.thread', 'ir.needaction_mixin', 'website.seo.metadata']
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')
for track in self.browse(cr, uid, ids, context=context):
res[track.id] = "%s/event/%d/track/%d" % (base_url, track.event_id.id, track.id)
return res
_columns = {
'name': fields.char('Track Title', required=True),
'user_id': fields.many2one('res.users', 'Responsible'),
@ -75,6 +83,7 @@ class event_track(osv.osv):
'color': fields.integer('Color Index'),
'priority': fields.selection([('3','Low'),('2','Medium (*)'),('1','High (**)'),('0','Highest (***)')], 'Priority', required=True),
'website_published': fields.boolean('Available in the website'),
'website_url': fields.function(_website_url, string="Website url", type="char"),
}
def set_priority(self, cr, uid, ids, priority, context={}):
return self.write(cr, uid, ids, {'priority' : priority})
@ -86,6 +95,7 @@ class event_track(osv.osv):
_defaults = {
'user_id': lambda self, cr, uid, ctx: uid,
'website_published': lambda self, cr, uid, ctx: False,
'show_attachments': lambda self, cr, uid, ctx: True,
'duration': lambda *args: 0,
'stage_id': _default_stage_id,
@ -122,7 +132,7 @@ class event_event(osv.osv):
'show_tracks': fields.boolean('Multiple Tracks'),
'show_blog': fields.boolean('News'),
'tracks_tag_ids': fields.function(_get_tracks_tag_ids, type='one2many', relation='event.track.tag', string='Tags of Tracks'),
'allowed_track_tag_ids': fields.many2many('event.track.tag', string='Accepted Tracks'),
'allowed_track_tag_ids': fields.many2many('event.track.tag', string='Accepted Tags', help="List of available tags for track proposals."),
}
_defaults = {
'show_track_proposal': False,

View File

@ -173,6 +173,12 @@
</xpath>
<xpath expr="//notebook" position="inside">
<page string="Tracks">
<div class="oe_right oe_button_box">
<button name="%(website_event_track.act_event_list_tracks)d" type="action" string="Tracks"/>
</div>
<group col="2" class="oe_title">
<field name="allowed_track_tag_ids" widget="many2many_tags"/>
</group>
<field name="track_ids" context="{'default_event_id': active_id}"/>
</page>
<page string="Sponsorships">
@ -189,10 +195,6 @@
</page>
</xpath>
<xpath expr="//div[@class='oe_right oe_button_box']" position="inside">
<button name="%(website_event_track.act_event_list_tracks)d" type="action" string="Tracks"/>
</xpath>
<xpath expr="//field[@name='organizer_id']" position="after">
<field name="allowed_track_tag_ids" widget="many2many_tags"/>
</xpath>
</field>
</record>
@ -288,8 +290,12 @@
<field name="stage_id" widget="statusbar"/>
</header>
<sheet string="Track">
<div class="oe_right oe_button_box">
<field name="website_url" invisible="1"/>
<field name="website_published" class="pull-right" widget="website_button"/>
</div>
<div class="oe_title">
<label for="name" class="oe_edit_only"/>
<label for="name" class="oe_edit_only"/>
<h1>
<field name="name"/>
</h1>
@ -309,7 +315,6 @@
<field name="duration" widget="float_time"/>
<field name="tag_ids" widget="many2many_tags"/>
</group>
<field name="description" colspan="4"/>
</group>
</sheet>
<div class="oe_chatter">

View File

@ -152,7 +152,7 @@
</p>
</section>
<section class="row">
<div class="col-md-7">
<div class="col-md-8">
<div class="oe_structure">
<section data-snippet-id="text">
<h3 class="page-header mt16">
@ -177,9 +177,9 @@
</section>
</div>
<section id="forms" t-if="event.show_track_proposal">
<form class="form-horizontal mt32" action="/event/#{event.id}/track_proposal/success" method="post" enctype="multipart/form-data">
<form class="form-horizontal mt32" t-attf-action="/event/#{event.id}/track_proposal/post" method="post" enctype="multipart/form-data">
<div class="form-group">
<label class="col-md-3 col-sm-4 control-label" for="partner_name">Speaker Name</label>
<label class="col-md-3 col-sm-4 control-label" for="partner_name">Your Name</label>
<div class="col-md-7 col-sm-8">
<input type="text" class="form-control" name="partner_name" required="True" />
</div>
@ -196,17 +196,23 @@
<input type="text" class="form-control" name="phone" required="True" />
</div>
</div>
<div class="form-group">
<div class="form-group" t-if="len(event.allowed_track_tag_ids)">
<label class="col-md-3 col-sm-4 control-label" for="phone">Tags</label>
<div class="col-md-7 col-sm-8">
<div class="col-md-9 col-sm-8">
<div class="row">
<div class="col-sm-4" t-foreach="event.allowed_track_tag_ids" t-as="tag">
<input type="checkbox" t-att-value="tag.id" name="tags"/>
<label class="col-sm-4" t-foreach="event.allowed_track_tag_ids" t-as="tag">
<input type="checkbox" value="1" t-attf-name="tag_#{str(tag.id)}"/>
<t t-esc="tag.name"/>
</div>
</label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-md-3 col-sm-4 control-label" for="track_name">Talk Title</label>
<div class="col-md-7 col-sm-8">
<input type="text" class="form-control" name="track_name" required="True"/>
</div>
</div>
<div class="form-group">
<label class="col-md-3 col-sm-4 control-label" for="phone">Speaker Biography</label>
<div class="col-md-7 col-sm-8">
@ -227,7 +233,7 @@
</form>
</section>
<div class="oe_structure"/>
</div><div class="col-md-4 col-md-offset-1">
</div><div class="col-md-3 col-md-offset-1">
<div class="panel panel-default">
<div class="panel-heading">
<h4>Talks Types</h4>