# -*- coding: utf-8 -*- ############################################################################## # # OpenERP, Open Source Management Solution # Copyright (C) 2013-Today OpenERP SA (). # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # ############################################################################## import openerp from openerp.addons.web import http from openerp.addons.web.http import request from openerp.addons.website.controllers.main import Website as controllers import re import werkzeug.utils controllers = controllers() class website_event(http.Controller): @http.route(['/event//track/'], type='http', auth="public", website=True, multilang=True) def event_track_view(self, event, track, **post): track_obj = request.registry.get('event.track') track = track_obj.browse(request.cr, openerp.SUPERUSER_ID, track.id, context=request.context) values = { 'track': track, 'event': track.event_id, 'main_object': track } return request.website.render("website_event_track.track_view", values) # TODO: not implemented @http.route(['/event//agenda/'], type='http', auth="public", website=True, multilang=True) def event_agenda(self, event, tag=None, **post): values = { 'event': event, 'main_object': event, } return request.website.render("website_event_track.agenda", values) @http.route([ '/event//track/', '/event//track/tag/' ], type='http', auth="public", website=True, multilang=True) def event_tracks(self, event, tag=None, **post): searches = {} if tag: searches.update(tag=tag.id) track_obj = request.registry.get('event.track') track_ids = track_obj.search(request.cr, request.uid, [("id", "in", [track.id for track in event.track_ids]), ("tag_ids", "=", tag.id)], context=request.context) tracks = track_obj.browse(request.cr, request.uid, track_ids, context=request.context) else: tracks = event.track_ids def html2text(html): return re.sub(r'<[^>]+>', "", html) values = { 'event': event, 'main_object': event, 'tracks': tracks, 'tags': event.tracks_tag_ids, 'searches': searches, 'html2text': html2text } return request.website.render("website_event_track.tracks", values) @http.route(['/event//track_proposal/'], type='http', auth="public", website=True, multilang=True) def event_track_proposal(self, event, **post): values = { 'event': event } return request.website.render("website_event_track.event_track_proposal", values) @http.route(['/event//track_proposal/post'], type='http', auth="public", methods=['POST'], website=True, 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, openerp.SUPERUSER_ID, { '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, openerp.SUPERUSER_ID, [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, 'event':event} return request.website.render("website_event_track.event_track_proposal_success", values)