[IMP] event tracks, done track submission, a few data, some fixes
bzr revid: fp@tinyerp.com-20131222144057-8vxt7mouxako39wp
This commit is contained in:
parent
049f0c26e1
commit
9cc6b3c30f
|
@ -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)
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Reference in New Issue