diff --git a/addons/website_event_track/controllers/event.py b/addons/website_event_track/controllers/event.py index 4ca9cfa4280..dad04cb6d29 100644 --- a/addons/website_event_track/controllers/event.py +++ b/addons/website_event_track/controllers/event.py @@ -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//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//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 = '''
+
+
+
+

%s

+
+
+

%s

+
+
+

About The Author

+

%s

+
+
+
+
''' % (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
+ Mail: %s
+ 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) diff --git a/addons/website_event_track/data/event_demo.xml b/addons/website_event_track/data/event_demo.xml index 904e1bda061..c8f243bb092 100644 --- a/addons/website_event_track/data/event_demo.xml +++ b/addons/website_event_track/data/event_demo.xml @@ -79,5 +79,54 @@ + + + + A Better Future With OpenERP eCommerce + + + + 2014-12-01 10:00:00 + + + + + +
+
+
+
+

A Better Future With OpenERP Commerce

+

by Georges Lucas, OpenCorp Director

+
+
+

+ Apart from being an enterprise management software, OpenERP is + used nowadays for a great variety of enterprise frontends. +

+ The talk illustrates the impact of OpenERP in areas such as the + company website, online events management, eCommerce, online + recruitments, social media marketing, etc. +

+
+
+

About The Author

+

+ Georges Lucas is Director at OpenElec. 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. +

+ Georges is the author of several books, including Amazon best seller + "How OpenERP will change the business world!". +

+
+
+
+
+
+
+ diff --git a/addons/website_event_track/models/event.py b/addons/website_event_track/models/event.py index 99376fe913e..b7d8224a559 100644 --- a/addons/website_event_track/models/event.py +++ b/addons/website_event_track/models/event.py @@ -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, diff --git a/addons/website_event_track/views/event_backend.xml b/addons/website_event_track/views/event_backend.xml index ff9af7a46ba..d11da948aab 100644 --- a/addons/website_event_track/views/event_backend.xml +++ b/addons/website_event_track/views/event_backend.xml @@ -173,6 +173,12 @@ +
+
+ + +
@@ -189,10 +195,6 @@
-