summaryrefslogtreecommitdiff
path: root/addons/website_event
diff options
context:
space:
mode:
authorParamjit Singh Sahota <psa@tinyerp.com>2013-12-24 11:01:25 +0530
committerParamjit Singh Sahota <psa@tinyerp.com>2013-12-24 11:01:25 +0530
commit18d8368ee11eef0a74bacdb8f293414331bfa8da (patch)
treefc21df70cbd2901396c2bcf2fee0b52d750abd43 /addons/website_event
parent5900672160c2bd5ae1d9257f20dbb5c51a193996 (diff)
parent123185757f51ee7e146d7295864556999d2a6938 (diff)
[MERGE] Merged lp:~openerp-dev/openobject-addons/trunk-website-al
bzr revid: psa@tinyerp.com-20131224053125-3lrogsrgd3ccp0i6
Diffstat (limited to 'addons/website_event')
-rw-r--r--addons/website_event/controllers/main.py70
-rw-r--r--addons/website_event/data/event_data.xml19
-rw-r--r--addons/website_event/data/event_demo.xml27
-rw-r--r--addons/website_event/models/__init__.py1
-rw-r--r--addons/website_event/models/event.py63
-rw-r--r--addons/website_event/models/website.py10
-rw-r--r--addons/website_event/static/src/js/website.tour.event.js163
-rw-r--r--addons/website_event/static/src/js/website_event.editor.js16
-rw-r--r--addons/website_event/static/src/xml/website_event.xml2
-rw-r--r--addons/website_event/views/website_event.xml670
-rw-r--r--addons/website_event/views/website_event_sale_backend.xml24
11 files changed, 685 insertions, 380 deletions
diff --git a/addons/website_event/controllers/main.py b/addons/website_event/controllers/main.py
index e811c13c5b0..638c5ded6e5 100644
--- a/addons/website_event/controllers/main.py
+++ b/addons/website_event/controllers/main.py
@@ -23,10 +23,8 @@ from openerp import SUPERUSER_ID
from openerp.addons.web import http
from openerp.addons.web.http import request
from openerp.tools.translate import _
-from openerp.addons import website_sale
from openerp.addons.website.models import website
from openerp.addons.website.controllers.main import Website as controllers
-from openerp.addons.website_sale.controllers.main import Ecommerce as Ecommerce
controllers = controllers()
@@ -36,7 +34,7 @@ from openerp import tools
import urllib
class website_event(http.Controller):
- @website.route(['/event/', '/event/page/<int:page>/'], type='http', auth="public", multilang=True)
+ @website.route(['/event/', '/event/page/<int:page>'], type='http', auth="public", multilang=True)
def events(self, page=1, **searches):
cr, uid, context = request.cr, request.uid, request.context
event_obj = request.registry['event.event']
@@ -163,27 +161,47 @@ class website_event(http.Controller):
return request.website.render("website_event.index", values)
- @website.route(['/event/<int:event_id>'], type='http', auth="public", multilang=True)
- def event(self, event_id=None, **post):
- event_obj = request.registry['event.event']
- event = event_obj.browse(request.cr, request.uid, event_id, dict(request.context, show_address_only=1))
+ @website.route(['/event/<model("event.event"):event>/page/<page:page>'], type='http', auth="public", multilang=True)
+ def event_page(self, event, page, **post):
+ website.preload_records(event, on_error="website_event.404")
+ values = {
+ 'event': event,
+ 'main_object': event
+ }
+ return request.website.render(page, values)
+
+ @website.route(['/event/<model("event.event"):event>'], type='http', auth="public", multilang=True)
+ def event(self, event, **post):
+ website.preload_records(event, on_error="website_event.404")
+ if event.menu_id and event.menu_id.child_id:
+ target_url = event.menu_id.child_id[0].url
+ else:
+ target_url = '/event/%s/register' % str(event.id)
+ if post.get('enable_editor') == '1':
+ target_url += '?enable_editor=1'
+ return request.redirect(target_url);
+
+ @website.route(['/event/<model("event.event"):event>/register'], type='http', auth="public", multilang=True)
+ def event_register(self, event, **post):
+ website.preload_records(event, on_error="website_event.404")
values = {
- 'event_id': event,
+ 'event': event,
'main_object': event,
'range': range,
- 'float': float,
+ 'main_object': event,
}
return request.website.render("website_event.event_description_full", values)
- @website.route(['/event/<int:event_id>/add_cart'], type='http', auth="public", multilang=True)
- def add_cart(self, event_id=None, **post):
+ @website.route(['/event/add_cart'], type='http', auth="public", multilang=True)
+ def add_cart(self, event_id, **post):
user_obj = request.registry['res.users']
order_line_obj = request.registry.get('sale.order.line')
ticket_obj = request.registry.get('event.event.ticket')
+ order_obj = request.registry.get('sale.order')
- order = request.context['website_sale_order']
+ order = request.registry['website'].get_current_order(request.cr, request.uid, context=request.context)
if not order:
- order = website_sale.controllers.main.get_order()
+ order = request.registry['website']._get_order(request.cr, request.uid, context=request.context)
partner_id = user_obj.browse(request.cr, SUPERUSER_ID, request.uid,
context=request.context).partner_id.id
@@ -221,9 +239,8 @@ class website_event(http.Controller):
partner_id=partner_id, context=request.context)['value']
_values.update(values)
- order_line_id = order_line_obj.create(request.cr, SUPERUSER_ID,
- _values, context=request.context)
- order.write({'order_line': [(4, order_line_id)]}, context=request.context)
+ order_line_id = order_line_obj.create(request.cr, SUPERUSER_ID, _values, context=request.context)
+ order_obj.write(request.cr, SUPERUSER_ID, [order.id], {'order_line': [(4, order_line_id)]}, context=request.context)
if not _values:
return request.redirect("/event/%s/" % event_id)
@@ -242,13 +259,26 @@ class website_event(http.Controller):
return controllers.publish(id, object)
@website.route('/event/add_event/', type='http', auth="user", multilang=True, methods=['POST'])
- def add_event(self, **kwargs):
+ def add_event(self, event_name="New Event", **kwargs):
Event = request.registry.get('event.event')
date_begin = datetime.today() + timedelta(days=(15)) # FIXME: better defaults
- event_id = Event.create(request.cr, request.uid, {
- 'name': 'New Event',
+
+ vals = {
+ 'name': event_name,
'date_begin': date_begin.strftime('%Y-%m-%d'),
'date_end': (date_begin + timedelta(days=(1))).strftime('%Y-%m-%d'),
- }, context=request.context)
+ }
+ try:
+ dummy, res_id = request.registry.get('ir.model.data').get_object_reference(request.cr, request.uid, 'event_sale', 'product_product_event')
+ vals['event_ticket_ids'] = [[0,0,{
+ 'name': _('Subscription'),
+ 'product_id': res_id,
+ 'deadline' : vals.get('date_begin'),
+ 'price': 0,
+ }]]
+ except ValueError:
+ pass
+
+ event_id = Event.create(request.cr, request.uid, vals, context=request.context)
return request.redirect("/event/%s/?enable_editor=1" % event_id)
diff --git a/addons/website_event/data/event_data.xml b/addons/website_event/data/event_data.xml
index baf732b781b..f46d18001ed 100644
--- a/addons/website_event/data/event_data.xml
+++ b/addons/website_event/data/event_data.xml
@@ -6,32 +6,17 @@
<field name="name">Events</field>
<field name="url">/event</field>
<field name="parent_id" ref="website.main_menu"/>
- <field name="sequence" type="int">40</field>
+ <field name="sequence" type="int">30</field>
</record>
<record id="action_open_website" model="ir.actions.act_url">
<field name="name">Website Home</field>
<field name="target">self</field>
- <field name="url">/event</field>
+ <field name="url">/event?tutorial.event=true</field>
</record>
<record id="base.open_menu" model="ir.actions.todo">
<field name="action_id" ref="action_open_website"/>
<field name="state">open</field>
</record>
-
- <record id="view_event_twitter_form" model="ir.ui.view">
- <field name="name">view_event_twitter_form</field>
- <field name="model">event.event</field>
- <field name="inherit_id" ref="event.view_event_form"/>
- <field name="arch" type="xml">
- <data>
- <xpath expr="//field[@name='speaker_confirmed']" position="after">
- <field name="twitter_hashtag"/>
- </xpath>
- </data>
- </field>
- </record>
-
-
</data>
</openerp>
diff --git a/addons/website_event/data/event_demo.xml b/addons/website_event/data/event_demo.xml
index 35654f0282e..1b1576eef0c 100644
--- a/addons/website_event/data/event_demo.xml
+++ b/addons/website_event/data/event_demo.xml
@@ -5,6 +5,7 @@
<record id="base.res_partner_6" model="res.partner">
<field name="website_published">True</field>
</record>
+
<record id="event.event_0" model="event.event">
<field name="website_published">True</field>
<field name="twitter_hashtag">openerp</field>
@@ -17,8 +18,7 @@
<h4>to learn .JS development</h4>
</div>
-
-<div class="carousel-image hidden-xs"><img alt="Banner OpenERP Image" src="/website/static/src/img/banner/banner_picture.png"></div>
+<img class="carousel-image hidden-xs" alt="Banner OpenERP Image" src="/website/static/src/img/banner/banner_picture.png">
</div>
</div>
</div>
@@ -115,7 +115,7 @@
<div class="col-md-12 mb16 mt16" data-snippet-id="colmd">
<p><strong>Objectives:</strong></p>
-<p>Having attended this course, participants should be able to:</p>
+<p><strong>Having attended this course, participants should be able to:</strong></p>
<ul><li>Understand the development concepts and architecture;</li>
<li>Install and administer your own server;</li>
@@ -142,10 +142,10 @@
</div>
-<div class="container dark">
+<div class="container oe_dark">
<div class="row">
<div class="col-md-12" data-snippet-id="colmd">
-<h1 class="text-center">A great content...</h1>
+<h1 class="text-center">Read Great Contents</h1>
<h3 class="text-muted text-center">What do people&nbsp;say about this course?</h3>
</div>
@@ -180,8 +180,7 @@
<h4>to learn .JS development</h4>
</div>
-
-<div class="carousel-image hidden-xs"><img alt="Banner OpenERP Image" src="/website/static/src/img/banner/banner_picture.png"></div>
+<img class="carousel-image hidden-xs" alt="Banner OpenERP Image" src="/website/static/src/img/banner/banner_picture.png">
</div>
</div>
</div>
@@ -278,7 +277,7 @@
<div class="col-md-12 mb16 mt16" data-snippet-id="colmd">
<p><strong>Objectives:</strong></p>
-<p>Having attended this course, participants should be able to:</p>
+<p><strong>Having attended this course, participants should be able to:</strong></p>
<ul><li>Understand the development concepts and architecture;</li>
<li>Install and administer your own server;</li>
@@ -305,10 +304,10 @@
</div>
-<div class="container dark">
+<div class="container oe_dark">
<div class="row">
<div class="col-md-12" data-snippet-id="colmd">
-<h1 class="text-center">A great content...</h1>
+<h1 class="text-center">Read Great Contents</h1>
<h3 class="text-muted text-center">What do people&nbsp;say about this course?</h3>
</div>
@@ -356,7 +355,7 @@
<h4>to learn .JS development</h4>
</div>
-<div class="carousel-image hidden-xs"><img alt="Banner OpenERP Image" src="/website/static/src/img/banner/banner_picture.png"></div>
+<img class="carousel-image hidden-xs" alt="Banner OpenERP Image" src="/website/static/src/img/banner/banner_picture.png">
</div>
</div>
</div>
@@ -453,7 +452,7 @@
<div class="col-md-12 mb16 mt16" data-snippet-id="colmd">
<p><strong>Objectives:</strong></p>
-<p>Having attended this course, participants should be able to:</p>
+<p><strong>Having attended this course, participants should be able to:</strong></p>
<ul><li>Understand the development concepts and architecture;</li>
<li>Install and administer your own server;</li>
@@ -480,10 +479,10 @@
</div>
-<div class="container dark">
+<div class="container oe_dark">
<div class="row">
<div class="col-md-12" data-snippet-id="colmd">
-<h1 class="text-center">A great content...</h1>
+<h1 class="text-center">Read Great Contents</h1>
<h3 class="text-muted text-center">What do people&nbsp;say about this course?</h3>
</div>
diff --git a/addons/website_event/models/__init__.py b/addons/website_event/models/__init__.py
index e7c003730cf..cb598ddaa69 100644
--- a/addons/website_event/models/__init__.py
+++ b/addons/website_event/models/__init__.py
@@ -1 +1,2 @@
import event
+import website
diff --git a/addons/website_event/models/event.py b/addons/website_event/models/event.py
index b405c73b291..5d42243a053 100644
--- a/addons/website_event/models/event.py
+++ b/addons/website_event/models/event.py
@@ -19,9 +19,12 @@
#
##############################################################################
-from openerp.osv import osv, fields
+from openerp.osv import orm, osv, fields
from openerp import SUPERUSER_ID
+from openerp.tools.translate import _
+import re
+
# defined for access rules
class product(osv.osv):
@@ -35,6 +38,51 @@ class event(osv.osv):
_name = 'event.event'
_inherit = ['event.event','website.seo.metadata']
+ def _get_new_menu_pages(self, cr, uid, event, context=None):
+ context = context or {}
+ todo = [
+ (_('Introduction'), 'website_event.template_intro'),
+ (_('Location'), 'website_event.template_location')
+ ]
+ web = self.pool.get('website')
+ result = []
+ for name,path in todo:
+ 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):
+ menuobj = self.pool.get('website.menu')
+ eventobj = self.pool.get('event.event')
+ for event in self.browse(cr, uid, [ids], context=context):
+ if event.menu_id and not value:
+ menuobj.unlink(cr, uid, [event.menu_id.id], context=context)
+ elif value and not event.menu_id:
+ root = menuobj.create(cr, uid, {
+ 'name': event.name
+ }, context=context)
+ tocreate = self._get_new_menu_pages(cr, uid, event, context)
+ tocreate.append((_('Register'), '/event/%s/register' % str(event.id)))
+ sequence = 0
+ for name,url in tocreate:
+ menuobj.create(cr, uid, {
+ 'name': name,
+ 'url': url,
+ 'parent_id': root,
+ 'sequence': sequence
+ }, context=context)
+ sequence += 1
+ eventobj.write(cr, uid, [event.id], {'menu_id': root}, context=context)
+ return True
+
+ def _get_show_menu(self, cr, uid, ids, field_name, arg, context=None):
+ res = dict.fromkeys(ids, '')
+ for event in self.browse(cr, uid, ids, context=context):
+ res[event.id] = bool(event.menu_id)
+ return res
+
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')
@@ -42,9 +90,13 @@ class event(osv.osv):
res[event.id] = "%s/event/%s/" % (base_url, event.id)
return res
+ def _default_hashtag(self, cr, uid, context={}):
+ name = self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.name
+ return re.sub("[- \\.\\(\\)]+", "", name).lower()
+
_columns = {
'twitter_hashtag': fields.char('Twitter Hashtag'),
- 'website_published': fields.boolean('Available in the website'),
+ 'website_published': fields.boolean('Visible in Website'),
# TDE TODO FIXME: when website_mail/mail_thread.py inheritance work -> this field won't be necessary
'website_message_ids': fields.one2many(
'mail.message', 'res_id',
@@ -54,10 +106,13 @@ class event(osv.osv):
string='Website Messages',
help="Website communication history",
),
- 'website_url': fields.function(_website_url, string="Website url"),
+ 'website_url': fields.function(_website_url, string="Website url", type="char"),
+ 'show_menu': fields.function(_get_show_menu, fnct_inv=_set_show_menu, type='boolean', string='Dedicated Menu'),
+ 'menu_id': fields.many2one('website.menu', 'Event Menu'),
}
_defaults = {
- 'website_published': False,
+ 'show_menu': False,
+ 'twitter_hashtag': _default_hashtag
}
def google_map_img(self, cr, uid, ids, zoom=8, width=298, height=298, context=None):
diff --git a/addons/website_event/models/website.py b/addons/website_event/models/website.py
new file mode 100644
index 00000000000..e41a7092404
--- /dev/null
+++ b/addons/website_event/models/website.py
@@ -0,0 +1,10 @@
+# -*- coding: utf-8 -*-
+from openerp.osv import orm
+
+
+class Website(orm.Model):
+ _inherit = 'website'
+
+ def ecommerce_get_product_domain(self):
+ # remove product event from the website content grid and list view (not removed in detail view)
+ return ['&'] + super(Website, self).ecommerce_get_product_domain() + [('event_ok', '=', False)]
diff --git a/addons/website_event/static/src/js/website.tour.event.js b/addons/website_event/static/src/js/website.tour.event.js
new file mode 100644
index 00000000000..23b8a2c1bc5
--- /dev/null
+++ b/addons/website_event/static/src/js/website.tour.event.js
@@ -0,0 +1,163 @@
+(function () {
+ 'use strict';
+
+ var website = openerp.website;
+
+ website.EditorBar.include({
+ start: function () {
+ this.registerTour(new website.EventTour(this));
+ return this._super();
+ },
+ });
+
+ website.EventTour = website.Tour.extend({
+ id: 'event',
+ name: "Create an event",
+ init: function (editor) {
+ var self = this;
+ self.steps = [
+ {
+ stepId: 'welcome-event',
+ title: "Create an Event",
+ content: "Let's go through the firsts step to publish a new event.",
+ template: self.popover({ next: "Start Tutorial", end: "Skip It" }),
+ backdrop: true,
+ },
+ {
+ stepId: 'content-menu',
+ element: '#content-menu-button',
+ placement: 'left',
+ title: "Add Content",
+ content: "The <em>Content</em> menu allows to create new pages, events, menus, etc.",
+ trigger: 'click',
+ },
+ {
+ stepId: 'new-post-entry',
+ element: 'a[data-action=new_event]',
+ placement: 'left',
+ title: "New Event",
+ content: "Click here to create a new event.",
+ trigger: {
+ modal: {
+ stopOnClose: true,
+ afterSubmit: 'event-page',
+ }
+ },
+ },
+ {
+ stepId: 'choose-name',
+ element: '.modal input',
+ placement: 'right',
+ title: "Choose an Event Name",
+ content: "Choose a name for your new event and click <em>'Continue'</em>. e.g: Technical Training",
+ },
+ {
+ stepId: 'event-page',
+ title: "New Event Created",
+ content: "This is your new event page. We will edit the event presentation page.",
+ template: self.popover({ next: "OK" }),
+ },
+ {
+ stepId: 'event-price',
+ element: '[data-oe-field=price]',
+ placement: 'top',
+ title: "Ticket price",
+ content: "Edit your ticket price.",
+ template: self.popover({ next: "OK" }),
+ },
+ {
+ stepId: 'add-banner',
+ element: 'button[data-action=snippet]',
+ placement: 'bottom',
+ title: "Layout your event",
+ content: "Insert blocks like 'Banner' to layout the body of your event.",
+ trigger: 'click',
+ },
+ {
+ stepId: 'drag-banner',
+ snippet: 'carousel',
+ placement: 'bottom',
+ title: "Drag & Drop a block",
+ content: "Drag the 'Banner' block and drop it in your page.",
+ trigger: 'drag',
+ },
+ {
+ stepId: 'add-text-block',
+ element: 'button[data-action=snippet]',
+ placement: 'bottom',
+ title: "Layout your event",
+ content: "Insert another block to your event.",
+ trigger: 'click',
+ },
+ {
+ stepId: 'drag-text-block',
+ snippet: 'text-block',
+ placement: 'bottom',
+ title: "Drag & Drop a block",
+ content: "Drag the 'Text Block' block below the banner.",
+ trigger: 'drag',
+ },
+ {
+ stepId: 'add-three-columns',
+ element: 'button[data-action=snippet]',
+ placement: 'bottom',
+ title: "Layout your event",
+ content: "Insert a last block to your event.",
+ trigger: 'click',
+ },
+ {
+ stepId: 'drag-three-columns',
+ snippet: 'three-columns',
+ placement: 'bottom',
+ title: "Drag & Drop a block",
+ content: "Drag the 'Three Columns' block at the bottom.",
+ trigger: 'drag',
+ },
+ {
+ stepId: 'save-changes',
+ element: 'button[data-action=save]',
+ placement: 'right',
+ title: "Save your modifications",
+ content: "Once you click on save, your event is updated.",
+ trigger: 'click',
+ },
+ {
+ stepId: 'publish-event',
+ element: 'button.btn-danger.js_publish_btn',
+ placement: 'top',
+ title: "Publish your event",
+ content: "Click to publish your event.",
+ trigger: 'click',
+ },
+ {
+ stepId: 'customize-event',
+ element: '.js_publish_management button#dopprod-8',
+ placement: 'left',
+ title: "Customize your event",
+ content: "Click here to customize your event further.",
+ trigger: 'click',
+ },
+ {
+ stepId: 'edit-event-backend',
+ element: '.js_publish_management ul>li>a',
+ placement: 'left',
+ title: "Customize your event",
+ content: "Click here to edit your event in the backend.",
+ trigger: 'click',
+ },
+ {
+ stepId: 'end-tutorial',
+ title: "Thanks!",
+ content: "This tutorial is finished. Congratulations on creating your first event.",
+ template: self.popover({ end: "Close Tutorial" }),
+ backdrop: true,
+ },
+ ];
+ return this._super();
+ },
+ trigger: function () {
+ return (this.resume() && this.testUrl(/^\/event\/[0-9]+\/register/)) || this._super();
+ },
+ });
+
+}());
diff --git a/addons/website_event/static/src/js/website_event.editor.js b/addons/website_event/static/src/js/website_event.editor.js
index 0fb9ad24c3c..6b2336d9689 100644
--- a/addons/website_event/static/src/js/website_event.editor.js
+++ b/addons/website_event/static/src/js/website_event.editor.js
@@ -3,4 +3,20 @@
var website = openerp.website;
website.add_template_file('/website_event/static/src/xml/website_event.xml');
+
+ website.EditorBar.include({
+ events: _.extend({}, website.EditorBar.prototype.events, {
+ 'click a[data-action=new_event]': function (ev) {
+ ev.preventDefault();
+ website.prompt({
+ window_title: "New Event",
+ input: "Event Name",
+ }).then(function (event_name) {
+ website.form('/event/add_event', 'POST', {
+ event_name: event_name
+ });
+ });
+ }
+ }),
+ });
})();
diff --git a/addons/website_event/static/src/xml/website_event.xml b/addons/website_event/static/src/xml/website_event.xml
index 2481f3d16c9..918d4ab9c5d 100644
--- a/addons/website_event/static/src/xml/website_event.xml
+++ b/addons/website_event/static/src/xml/website_event.xml
@@ -1,7 +1,7 @@
<templates id="template" xml:space="preserve">
<t t-extend="website.editorbar">
<t t-jquery="ul.oe_content_menu" t-operation="append">
- <li><a href="/event/add_event" class="js_link2post">New Event</a></li>
+ <li><a href="#" data-action="new_event">New Event</a></li>
</t>
</t>
</templates>
diff --git a/addons/website_event/views/website_event.xml b/addons/website_event/views/website_event.xml
index 1b438c895cf..ed2dff1ea51 100644
--- a/addons/website_event/views/website_event.xml
+++ b/addons/website_event/views/website_event.xml
@@ -2,342 +2,396 @@
<openerp>
<data>
- <template id="website_event_script" inherit_id="website.layout" name="Website Event script">
- <xpath expr="//t[@id='editable_scripts_hook']" position="inside">
- <script type="text/javascript" src="/website_event/static/src/js/website_event.editor.js" t-ignore="true"></script>
- </xpath>
- </template>
+<template id="editor_head" inherit_id="website.editor_head" name="Event Editor" groups="base.group_website_designer">
+ <xpath expr="//script[last()]" position="after">
+ <script type="text/javascript" src="/website_event/static/src/js/website_event.editor.js"></script>
+ <script type="text/javascript" src="/website_event/static/src/js/website.tour.event.js"></script>
+ </xpath>
+</template>
- <!-- Layout add nav and footer -->
- <template id="header_footer_custom" inherit_id="website.layout" name="Footer Events Link">
- <xpath expr="//footer//ul[@name='products']" position="inside">
- <li><a href="/event">Events</a></li>
- </xpath>
- </template>
+<!-- Layout add nav and footer -->
+<template id="header_footer_custom" inherit_id="website.layout" name="Footer Events Link">
+ <xpath expr="//footer//ul[@name='products']" position="inside">
+ <li><a href="/event">Events</a></li>
+ </xpath>
+</template>
- <!-- Page -->
- <template id="index" name="Events">
- <t t-call="website.layout">
- <div id="wrap">
- <div class="oe_structure"/>
- <div class="container">
- <h1 class="text-center">
- Next Events
- </h1>
- <h3 class="text-center text-muted">
- <t t-esc="current_date or ''"/><span t-if="current_type"><t t-if="current_date">,</t>
- <t t-esc="current_type.name"/></span><span t-if="current_country"><t t-if="current_type or current_date">,</t>
- <t t-esc="current_country.name"/>
- </span>
- </h3>
- <div class="row mt32 mb32">
- <div class="col-md-3 col-sm-4 css_noprint" id="left_column">
- <ul class="nav nav-pills nav-stacked">
- <t t-foreach="dates" t-as="date">
- <li t-att-class="searches.get('date') == date[0] and 'active' or ''" t-if="date[3] or (date[0] in ('old','all'))">
- <a t-href="/event/#{ search_path }&amp;date=#{ date[0] }"><t t-esc="date[1]"/>
- <span t-if="date[3]" class="badge pull-right"><t t-esc="date[3]"/></span>
- </a>
- </li>
- </t>
- </ul>
- </div>
- <div class="col-sm-7 col-md-6" id="middle_column">
- <t t-call="website.pager" >
- <t t-set="classname">pull-left</t>
- </t>
- <div class="oe_structure">
- </div>
- <t t-if="not event_ids">
- <p t-if="current_date or current_country or current_type">
- No event found in this category, check <a href="/event">all events</a>.
- </p>
- <p t-if="(current_date is None) and (current_country is None) and (current_type is None)">
- No events are planned for now on.
- </p>
- </t>
- <ul class="media-list">
- <li t-foreach="event_ids" t-as="event" class="media">
- <div class="media-body">
- <t t-if="event.event_ticket_ids">
- <span t-if="not event.register_avail" class="label label-danger pull-right">Sold Out</span>
- <span t-if="event.register_avail and event.register_avail &lt;= ((event.register_max or 0) / 4)" class="label pull-right label-info">
- Only <t t-esc="event.register_avail"/> Remaining
- </span>
+<!-- Page -->
+<template id="index" name="Events">
+ <t t-call="website.layout">
+ <div id="wrap">
+ <div class="oe_structure"/>
+ <div class="container">
+ <div class="row mt8">
+ <div class="col-sm-5">
+ <ol class="breadcrumb mb0">
+ <li class="active">
+ Our Events
+ </li>
+ </ol>
+ </div><div class="col-sm-7">
+ <t t-call="website.pager" >
+ <t t-set="classname">pull-right</t>
+ </t>
+ </div>
+ </div>
+ <h3 class="text-center text-muted">
+ <t t-esc="current_date or ''"/><span t-if="current_type"><t t-if="current_date">,</t>
+ <t t-esc="current_type.name"/></span><span t-if="current_country"><t t-if="current_type or current_date">,</t>
+ <t t-esc="current_country.name"/>
+ </span>
+ </h3>
+ <div class="row mt32 mb32">
+ <div class="col-md-9" id="middle_column">
+ <t t-if="not event_ids">
+ <p t-if="current_date or current_country or current_type">
+ No event found in this category, check <a href="/event">all events</a>.
+ </p>
+ <p t-if="(current_date is None) and (current_country is None) and (current_type is None)">
+ No events are planned for now on.
+ </p>
+ </t>
+ <ul class="media-list">
+ <li t-foreach="event_ids" t-as="event" class="media">
+ <div class="media-body">
+ <t t-if="event.event_ticket_ids">
+ <span t-if="not event.register_avail" class="label label-danger pull-right">Sold Out</span>
+ <span t-if="event.register_avail and event.register_avail &lt;= ((event.register_max or 0) / 4)" class="label pull-right label-info">
+ Only <t t-esc="event.register_avail"/> Remaining
+ </span>
+ </t>
+ <h4 class="media-heading">
+ <a t-href="/event/#{ slug(event) }/#{(not event.menu_id) and 'register/' or ''}"><span t-field="event.name"> </span></a>
+ <small t-if="not event.website_published" class="label label-danger">not published</small>
+ </h4>
+ <div>
+ <t t-if="event.organizer_id">
+ Organized by: <span t-field="event.organizer_id"> </span>
</t>
- <h4 class="media-heading">
- <a t-href="/event/#{ 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>
- <t t-if="event.organizer_id">
- Organized by: <span t-field="event.organizer_id"> </span>
- </t>
- </div>
- <div>
- <i class="icon-time"></i> <span t-field="event.date_begin"> </span> <i>to</i> <span t-field="event.date_end"> </span>
- </div>
- <div t-if="event.country_id">
- <i class="icon-map-marker"></i> <span t-field="event.city"/>, <span t-field="event.country_id"/>
- </div>
- <div class="text-muted">
- <i class="icon-tag"></i> <span t-field="event.type"/>
- </div>
</div>
- </li>
- </ul>
- </div>
- <div class="col-sm-2 col-md-3 oe_structure" id="right_column">
-
-
- </div>
- <div class="col-md-8 col-lg-offset-4 text-center">
- <t t-call="website.pager" />
- </div>
+ <div>
+ <i class="fa fa-clock-o"></i> <span t-field="event.date_begin"> </span> <i>to</i> <span t-field="event.date_end"> </span>
+ </div>
+ <div t-if="event.country_id">
+ <i class="fa fa-map-marker"></i> <span t-field="event.city"/>, <span t-field="event.country_id"/>
+ </div>
+ <div class="text-muted">
+ <i class="fa fa-tag"></i> <span t-field="event.type"/>
+ </div>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div class="col-md-3 oe_structure" id="right_column">
</div>
</div>
- <div class="oe_structure"/>
- </div>
- </t>
- </template>
+ </div>
+ <div class="oe_structure"/>
+ </div>
+ </t>
+</template>
- <template id="event_right_photos" inherit_id="website_event.index" inherit_option_id="website_event.index" name="Photos">
- <xpath expr="//div[@id='right_column']" position="inside">
- <div class="row">
- <div class="col-md-12 mb16">
- <div class="oe_demo">
- <img src="/website_event/static/src/img/openerp_enterprise_of_the_year.png" class="img-rounded"/>
- <div class="text-center"><a href="/event">Photos of Past Events</a></div>
- </div>
+<template id="event_right_photos" inherit_id="website_event.index" inherit_option_id="website_event.index" name="Photos">
+ <xpath expr="//div[@id='right_column']" position="inside">
+ <div class="row">
+ <div class="col-md-12 mb16">
+ <div class="oe_demo">
+ <img src="/website_event/static/src/img/openerp_enterprise_of_the_year.png" class="img-rounded"/>
+ <div class="text-center"><a href="/event">Photos of Past Events</a></div>
</div>
- <div class="col-md-12 mb16">
- <div class="oe_demo">
- <img src="/website_event/static/src/img/training.jpg" class="img-rounded"/>
- <div class="text-center"><a href="/event">Our Trainings</a></div>
- </div>
+ </div>
+ <div class="col-md-12 mb16">
+ <div class="oe_demo">
+ <img src="/website_event/static/src/img/training.jpg" class="img-rounded"/>
+ <div class="text-center"><a href="/event">Our Trainings</a></div>
</div>
</div>
- </xpath>
- </template>
+ </div>
+ </xpath>
+</template>
- <template id="event_right_quotes" inherit_id="website_event.index" inherit_option_id="website_event.index" name="Quotes">
- <xpath expr="//div[@id='right_column']" position="inside">
- <div class="row">
- <div class="col-md-12 mb16">
- <blockquote class="oe_snippet_body">
- <p>
- Write here a quote from one of your attendees.
- It gives confidence in your
- events.
- </p>
- <small>Author</small>
- </blockquote>
- </div>
+<template id="event_right_quotes" inherit_id="website_event.index" inherit_option_id="website_event.index" name="Quotes">
+ <xpath expr="//div[@id='right_column']" position="inside">
+ <div class="row">
+ <div class="col-md-12 mb16">
+ <blockquote class="oe_snippet_body">
+ <p>
+ Write here a quote from one of your attendees.
+ It gives confidence in your
+ events.
+ </p>
+ <small>Author</small>
+ </blockquote>
</div>
- </xpath>
- </template>
+ </div>
+ </xpath>
+</template>
- <template id="event_category" inherit_id="website_event.index" inherit_option_id="website_event.index" name="Filter by Category">
- <xpath expr="//div[@id='left_column']" position="inside">
- <ul class="nav nav-pills nav-stacked mt32">
- <t t-foreach="types">
- <li t-if="type" t-att-class="searches.get('type') == str(type and type[0]) and 'active' or ''">
- <a t-href="/event/#{ search_path }&amp;type=#{ type[0] }"><t t-esc="type[1]"/>
- <span class="badge pull-right"><t t-esc="type_count"/></span>
- </a>
- </li>
- </t>
- </ul>
- </xpath>
- </template>
- <template id="event_location" inherit_id="website_event.index" inherit_option_id="website_event.index" name="Filter by Country">
- <xpath expr="//div[@id='left_column']" position="inside">
- <ul class="nav nav-pills nav-stacked mt32">
- <t t-foreach="countries">
- <li t-if="country_id" t-att-class="searches.get('country') == str(country_id and country_id[0]) and 'active' or ''">
- <a t-href="/event/#{ search_path }&amp;country=#{ country_id[0] }"><t t-esc="country_id[1]"/>
- <span class="badge pull-right"><t t-esc="country_id_count"/></span>
+<template id="event_left_column" inherit_option_id="website_event.index" name="Filters">
+ <xpath expr="//div[@id='middle_column']" position="attributes">
+ <attribute name="class">col-md-6</attribute>
+ </xpath>
+ <xpath expr="//div[@id='middle_column']" position="before">
+ <div class="col-md-3 css_noprint" id="left_column">
+ <ul class="nav nav-pills nav-stacked">
+ <t t-foreach="dates" t-as="date">
+ <li t-att-class="searches.get('date') == date[0] and 'active' or ''" t-if="date[3] or (date[0] in ('old','all'))">
+ <a t-href="/event/#{ search_path }&amp;date=#{ date[0] }"><t t-esc="date[1]"/>
+ <span t-if="date[3]" class="badge pull-right"><t t-esc="date[3]"/></span>
</a>
</li>
</t>
</ul>
- </xpath>
- </template>
+ </div>
+ </xpath>
+</template>
- <template id="event_description_full">
- <t t-call="website.layout">
- <t t-set="additional_title">Events</t>
- <div id="wrap">
- <div class="container">
- <div class="row mt8">
- <div class="col-sm-7">
- <ol class="breadcrumb mb0">
- <li t-if="not event_id.type"><a href="/event">All Events</a></li>
- <li t-if="event_id.type">
- <a t-href="/event?type=#{event_id.type.id}" t-esc="event_id.type.name"/>
- </li>
- <li t-if="event_id.country_id">
- <a t-href="/event?country=#{event_id.country_id.id}" t-esc="event_id.country_id.name"/>
- </li>
- <li class="active">
- <span t-field="event_id.name"/>
- </li>
- </ol>
- </div><div class="col-sm-5">
- <t t-call="website.publish_management">
- <t t-set="object" t-value="event_id"/>
- <t t-set="publish_edit" t-value="True"/>
- <t t-set="publish_controller">/event/publish</t>
+<template id="event_category" inherit_option_id="website_event.event_left_column" name="Filter by Category">
+ <xpath expr="//div[@id='left_column']" position="inside">
+ <ul class="nav nav-pills nav-stacked mt32">
+ <t t-foreach="types">
+ <li t-if="type" t-att-class="searches.get('type') == str(type and type[0]) and 'active' or ''">
+ <a t-href="/event/#{ search_path }&amp;type=#{ type[0] }"><t t-esc="type[1]"/>
+ <span class="badge pull-right"><t t-esc="type_count"/></span>
+ </a>
+ </li>
+ </t>
+ </ul>
+ </xpath>
+</template>
+<template id="event_location" inherit_option_id="website_event.event_left_column" name="Filter by Country">
+ <xpath expr="//div[@id='left_column']" position="inside">
+ <ul class="nav nav-pills nav-stacked mt32">
+ <t t-foreach="countries">
+ <li t-if="country_id" t-att-class="searches.get('country') == str(country_id and country_id[0]) and 'active' or ''">
+ <a t-href="/event/#{ search_path }&amp;country=#{ country_id[0] }"><t t-esc="country_id[1]"/>
+ <span class="badge pull-right"><t t-esc="country_id_count"/></span>
+ </a>
+ </li>
+ </t>
+ </ul>
+ </xpath>
+</template>
+
+<template id="layout">
+ <t t-call="website.layout">
+ <div id="wrap">
+ <div class="oe_structure"/>
+ <div class="container">
+ <div class="row mt8">
+ <div class="col-sm-7" id="event_menu">
+ <ol class="breadcrumb mb0" t-if="not event.menu_id">
+ <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>
+ <li t-if="event.country_id">
+ <a t-href="/event?country=#{event.country_id.id}" t-esc="event.country_id.name"/>
+ </li>
+ <li class="active">
+ <span t-field="event.name"/>
+ </li>
+ </ol>
+ <ol class="breadcrumb mb0" id="event_menu" t-if="event.menu_id">
+ <t t-foreach="event.menu_id.child_id" t-as="submenu">
+ <t t-call="website.submenu"/>
</t>
- </div>
+ </ol>
+ </div>
+ <div class="col-sm-5">
+ <t t-call="website.publish_management">
+ <t t-set="object" t-value="event"/>
+ <t t-set="publish_edit" t-value="True"/>
+ <t t-set="publish_controller">/event/publish</t>
+ </t>
</div>
+ </div>
+ </div>
+ <t t-raw="0"/>
+ <div class="oe_structure"/>
+ </div>
+ </t>
+</template>
- <h1 class="text-center" t-field="event_id.name"></h1>
- <h4 class="text-center text-muted">
- <i class="icon-time"></i> <span t-field="event_id.date_begin"/> to
- <span t-field="event_id.date_end"/>
- </h4>
- <h4 t-if="event_id.city and event_id.country_id" class="text-center text-muted">
- <i class="icon-map-marker"/>
- <span t-field="event_id.city"/>,
- <span t-field="event_id.country_id"/>
- </h4>
+<template id="template_location">
+ <t t-call="website_event.layout">
+ <section class="container" data-snippet-id="title">
+ <h1 class="text-center">Event Location</h1>
+ </section>
+ <div class="oe_structure oe_empty"/>
+ </t>
+</template>
- <div class="row mt32 mb32">
- <div class="col-md-8">
- <form t-action="/event/#{ event_id.id }/add_cart" method="post" t-if="event_id.event_ticket_ids">
- <table class="table table-striped">
- <thead>
- <tr>
- <th>Ticket Type</th>
- <th style="min-width: 100px">Sales End</th>
- <th style="min-width: 100px">Price</th>
- <th></th>
- <th>Quantity</th>
- </tr>
- </thead>
- <tbody>
- <tr t-foreach="event_id.event_ticket_ids" t-as="ticket">
- <td>
- <div t-field="ticket.name"/>
- <div><small t-field="ticket.product_id.description_sale"/></div>
- </td>
- <td><span t-field="ticket.deadline"/></td>
- <td><span t-field="ticket.price"/></td>
- <td>
- <span t-if="ticket.register_max and (float(ticket.register_current or 0) / ticket.register_max)&lt;=0.2" class="text-muted">
- <t t-esc="ticket.register_max - ticket.register_current"/> <span>left</span>
- </span>
- </td>
- <td>
- <select t-if="ticket.register_avail" t-attf-name="ticket-#{ ticket.id }" class="form-control">
- <t t-foreach="range(0, ticket.register_avail > 9 and 10 or ticket.register_avail+1 )" t-as="nb"><option t-esc="nb"/></t>
- </select>
- <span t-if="not ticket.register_avail">Sold Out</span>
- </td>
- </tr>
- </tbody>
- </table>
- <button type="submit" class="btn btn-primary btn-lg pull-right" t-if="event_id.register_avail">Order Now</button>
- <div class="clearfix"/>
- <hr/>
- </form>
- <div t-field="event_id.description"></div>
- <div class="clearfix"/>
- <ul class="media-list" id="comment">
- <li t-foreach="event_id.website_message_ids" t-as="comment" class="media">
- <div class="media-body">
- <t t-call="website.publish_management">
- <t t-set="object" t-value="comment"/>
- <t t-set="publish_edit" t-value="True"/>
- <t t-set="publish_controller">/event/publish</t>
- </t>
- <t t-raw="comment.body"/>
- <small class="pull-right muted text-right">
- <div t-field="comment.author_id"/>
- <div t-field="comment.date"/>
- </small>
- </div>
- </li>
- </ul>
- </div>
- <div class="col-md-4 css_noprint">
- <div class="clearfix"/>
+<template id="template_intro">
+ <t t-call="website_event.layout">
+ <section class="container" data-snippet-id="title">
+ <h1 class="text-center">Event Introduction</h1>
+ </section>
+ <div class="oe_structure oe_empty"/>
+ </t>
+</template>
- <div class="panel panel-default" t-if="event_id.address_id">
- <div class="panel-heading">
- <h4>Where</h4>
- </div>
- <div class="panel-body">
- <a t-att-href="event_id.google_map_link()" target="_BLANK">
- <img t-att-src="event_id.google_map_img()" width="100%%"/>
- </a>
- <address class="mt16 mb8" t-field="event_id.address_id"> <!-- TODO: use widget contact -->
- <!-- <strong t-field="event_id.address_id"/>
- <p t-field="event_id.address_id"/>
- <div t-if="event_id.address_id.phone">
- <span class="icon-phone"/> <span t-field="event_id.address_id.phone"/>
- </div>
- <div t-if="event_id.address_id.email">
- <span class="icon-envelope"/>
- <a t-att-href="'mailto:'+event_id.address_id.email">
- <span t-field="event_id.address_id.email"/>
- </a>
- </div> -->
- </address>
- </div>
- </div>
+<template id="event_details">
+ <t t-call="website_event.layout">
+ <div class="container">
+ <h1 class="text-center" t-field="event.name"></h1>
+ <h4 class="text-center text-muted">
+ <i class="fa fa-clock-o"></i> <span t-field="event.date_begin"/> to
+ <span t-field="event.date_end"/>
+ </h4>
+ <h4 t-if="event.city and event.country_id" class="text-center text-muted">
+ <i class="fa fa-map-marker"/>
+ <span t-field="event.city"/>,
+ <span t-field="event.country_id"/>
+ </h4>
+ <div class="row mt32 mb32">
+ <t t-raw="0"/>
+ </div>
+ </div>
+ </t>
+</template>
- <div class="panel panel-default">
- <div class="panel-heading">
- <h4>When</h4>
- </div>
- <div class="panel-body">
- <i class="icon-time"></i> <span t-field="event_id.date_begin"> </span><br/>
- <i class="icon-time"></i> <span t-field="event_id.date_end"> </span>
- </div>
- </div>
+<template id="404">
+ <t t-call="website.layout">
+ <div id="wrap">
+ <div class="oe_structure oe_empty">
+ <div class="container">
+ <h1 class="mt32">Event not found!</h1>
+ <p>Sorry, the requested event is not available anymore.</p>
+ <p><a t-href="/event/">Return to the event list.</a></p>
+ </div>
+ </div>
+ </div>
+ </t>
+</template>
- <div class="panel panel-default" t-if="event_id.organizer_id">
- <div class="panel-heading">
- <h4>Organizer</h4>
- </div>
- <div class="panel-body" t-field="event_id.organizer_id"> <!-- TODO: use widget contact -->
- <!-- <p><strong t-field="event_id.organizer_id.display_name"/></p>
- <div t-if="event_id.phone">
- <span class="icon-phone"/> <span t-field="event_id.phone"/>
- </div>
- <div t-if="event_id.email">
- <i class="icon-envelope"/> <span t-field="event_id.email"/>
- </div> -->
- </div>
- </div>
+<template id="event_description_full">
+ <t t-call="website_event.event_details">
+ <div class="col-md-8">
+ <form t-action="/event/add_cart?event_id=#{ event.id }" method="post" t-if="event.event_ticket_ids">
+ <table class="table table-striped">
+ <thead>
+ <tr>
+ <th>Ticket Type</th>
+ <th style="min-width: 100px">Sales End</th>
+ <th style="min-width: 100px">Price</th>
+ <th></th>
+ <th>Quantity</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr t-foreach="event.event_ticket_ids" t-as="ticket">
+ <td>
+ <div t-field="ticket.name"/>
+ <div><small t-field="ticket.product_id.description_sale"/></div>
+ </td>
+ <td><span t-field="ticket.deadline"/></td>
+ <td>
+ <t t-if="ticket.price or editable"><span t-field="ticket.price" t-field-options='{
+ "widget": "monetary",
+ "display_currency": "website.pricelist_id.currency_id"
+ }'/>
+ </t>
+ <t t-if="not ticket.price and not editable">
+ <span>Free</span>
+ </t>
+ </td>
+ <td>
+ <span t-if="ticket.register_max and ((ticket.register_current or 0)*100 / ticket.register_max)&gt;75" class="text-muted">
+ <t t-esc="ticket.register_max - ticket.register_current"/> <span>left</span>
+ </span>
+ </td>
+ <td>
+ <select t-if="ticket.register_avail" t-attf-name="ticket-#{ ticket.id }" class="form-control">
+ <t t-foreach="range(0, ticket.register_avail > 9 and 10 or ticket.register_avail+1 )" t-as="nb"><option t-esc="nb"/></t>
+ </select>
+ <span t-if="not ticket.register_avail">Sold Out</span>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <button type="submit" class="btn btn-primary btn-lg pull-right" t-if="event.register_avail">Order Now</button>
+ <div class="clearfix"/>
+ <hr/>
+ </form>
+ <div t-field="event.description"></div>
+ <div class="clearfix"/>
+ <ul class="media-list" id="comment">
+ <li t-foreach="event.website_message_ids" t-as="comment" class="media">
+ <div class="media-body">
+ <t t-call="website.publish_management">
+ <t t-set="object" t-value="comment"/>
+ <t t-set="publish_edit" t-value="True"/>
+ <t t-set="publish_controller">/event/publish</t>
+ </t>
+ <t t-raw="comment.body"/>
+ <small class="pull-right muted text-right">
+ <div t-field="comment.author_id"/>
+ <div t-field="comment.date"/>
+ </small>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div class="col-md-4 css_noprint">
+ <div class="clearfix"/>
- <div class="panel panel-default">
- <div class="panel-heading">
- <h4>Social Stream</h4>
- </div>
- <div class="panel-body">
- <t t-call="website_mail.follow"><t t-set="object" t-value="event_id"/></t>
- <div t-if="event_id.twitter_hashtag" class="mt16">
- <p><strong>Participate on Twitter</strong></p>
- <p class="text-muted">
- Find out what others are seeing and
- saying about this event, and join the
- conversation.
- </p>
- <p><strong>Use this tag:
- <a t-att-href="'http://twitter.com/search?q=#'+event_id.twitter_hashtag" class="label label-primary">#<span t-field="event_id.twitter_hashtag"/></a>
- </strong></p>
- </div>
- </div>
- </div>
+ <div class="panel panel-default" t-if="event.address_id">
+ <div class="panel-heading">
+ <h4>Where</h4>
+ </div>
+ <div class="panel-body">
+ <a t-att-href="event.google_map_link()" target="_BLANK">
+ <img t-att-src="event.google_map_img()" width="100%%"/>
+ </a>
+ <div class="mt16 mb8" t-field="event.address_id" t-field-options='{
+ "widget": "contact",
+ "fields": ["address", "phone", "mobile", "fax", "email"]
+ }'/>
+ </div>
+ </div>
+
+ <div class="panel panel-default">
+ <div class="panel-heading">
+ <h4>When</h4>
+ </div>
+ <div class="panel-body">
+ <i class="fa fa-clock-o"></i> <span t-field="event.date_begin"> </span><br/>
+ <i class="fa fa-clock-o"></i> <span t-field="event.date_end"> </span>
+ </div>
+ </div>
+
+ <div class="panel panel-default" t-if="event.organizer_id">
+ <div class="panel-heading">
+ <h4>Organizer</h4>
+ </div>
+ <div class="panel-body" t-field="event.organizer_id" t-field-options='{
+ "widget": "contact",
+ "fields": ["name", "phone", "mobile", "fax", "email"]
+ }'/>
+ </div>
+ <div class="panel panel-default">
+ <div class="panel-heading">
+ <h4>Social Stream</h4>
+ </div>
+ <div class="panel-body">
+ <t t-call="website_mail.follow"><t t-set="object" t-value="event"/></t>
+ <div t-if="event.twitter_hashtag" class="mt16">
+ <p><strong>Participate on Twitter</strong></p>
+ <p class="text-muted">
+ Find out what others are seeing and
+ saying about this event, and join the
+ conversation.
+ </p>
+ <p><strong>Use this tag:
+ <a t-att-href="'http://twitter.com/search?q=#'+event.twitter_hashtag" class="label label-primary">#<span t-field="event.twitter_hashtag"/></a>
+ </strong></p>
</div>
</div>
</div>
- </div>
- </t>
- </template>
- </data>
+ </div>
+ </t>
+</template>
+</data>
</openerp>
diff --git a/addons/website_event/views/website_event_sale_backend.xml b/addons/website_event/views/website_event_sale_backend.xml
index 5c247c98c0c..3b3a28149cb 100644
--- a/addons/website_event/views/website_event_sale_backend.xml
+++ b/addons/website_event/views/website_event_sale_backend.xml
@@ -2,27 +2,19 @@
<openerp>
<data>
- <record model="ir.ui.view" id="view_event_form">
+ <record model="ir.ui.view" id="view_event_sale_form">
<field name="name">event.event.website.form</field>
<field name="model">event.event</field>
- <field name="inherit_id" ref="event_sale.view_event_form"/>
+ <field name="inherit_id" ref="event.view_event_form"/>
<field name="arch" type="xml">
<!-- add state field in header -->
- <xpath expr="//sheet" position="before">
- <div class="oe_form_box_info oe_text_center">
- <p attrs="{'invisible': [('website_published', '=', True)]}">
- This event is <b>not available</b> for public user in your website.
- </p>
- <p attrs="{'invisible': [('website_published', '=', False)]}">
- This event is <b>available</b> for public user in your website.
- </p>
- <p>Website view: <field class="oe_inline" name="website_url" widget="url"/></p>
- </div>
+ <xpath expr="//sheet/div" position="before">
+ <field name="website_url" invisible="1"/>
+ <field name="website_published" class="pull-right" widget="website_button"/>
+ </xpath>
+ <xpath expr="//field[@name='organizer_id']" position="after">
+ <field name="twitter_hashtag"/>
</xpath>
-
- <field name="organizer_id" position="after">
- <field name="website_published"/>
- </field>
</field>
</record>