Files
odoo_source/addons/website_event/views/website_event.xml
T
Denis Ledoux 8395f0d217 [FIX] website_event: event dates within event timezone
The dates of an event on the website was always
within the user timezone. If not signed in,
it was within the public user timezone
(which is quite not user-friendly to change)

For this purpose, we weed get the context
from the record (the context used when using
`record.with_context`), and therefore
the QWeb field
`ir.qweb.field.datetime` is slightly altered,
to use the context from the record.

opw-675427
2016-04-21 17:52:36 +02:00

463 lines
21 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<template id="event_script" inherit_id="website.assets_frontend" name="Country Events Snippet Script">
<xpath expr="/t" position="inside">
<script type="text/javascript" src="/website_event/static/src/js/website_geolocation.js"></script>
</xpath>
</template>
<template id="assets_editor" inherit_id="website.assets_editor" name="Event Editor" groups="event.group_event_manager">
<xpath expr="." position="inside">
<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.footer_default" name="Footer Events Link">
<xpath expr="//ul[@id='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">
<div class="row mt8">
<div class="col-sm-5">
<ol class="breadcrumb mb0">
<li>
<a href="/event">Our Events</a>
</li>
<li t-if="current_date"><t t-esc="current_date"/></li>
<li t-if="current_type"><t t-esc="current_type.name"/></li>
<li t-if="current_country"><t t-esc="current_country.name"/></li>
</ol>
</div><div class="col-sm-7">
<t t-call="website.pager" >
<t t-set="classname">pull-right</t>
</t>
</div>
</div>
<div class="row mt32 mb32">
<div class="col-md-9" id="middle_column">
<div class="text-center text-muted" t-if="not event_ids">
<h1>No event found</h1>
<t groups="base.group_website_publisher">
<p groups="event.group_event_manager">Use the top menu <i>'Content'</i> to create your first event.</p>
</t>
</div>
<ul class="media-list">
<li t-foreach="event_ids" t-as="event" class="media">
<div itemscope="itemscope" itemtype="http://schema.org/Event" class="media-body">
<h4 class="media-heading">
<a itemprop="url" t-att-class="event.state == 'done' and 'text-success'" t-attf-href="/event/#{ slug(event) }/#{(not event.menu_id) and 'register' or ''}"><span itemprop="name" t-field="event.name"> </span></a>
<small t-if="not event.address_id" class="label label-info">Online</small>
<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="fa fa-clock-o"></i> <span itemprop="startDate" t-field="event.with_context(tz=event.date_tz).date_begin" t-field-options='{"hide_seconds":"True"}'> </span> <i>to</i> <span itemprop="endDate" t-field="event.with_context(tz=event.date_tz).date_end" t-field-options='{"hide_seconds":"True"}'> </span>
</div>
<div itemprop="location" t-field="event.address_id" t-field-options='{
"widget": "contact",
"fields": ["city"]
}'/>
<div class="text-muted" t-if="event.type">
<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>
<div class="oe_structure"/>
</div>
</t>
</template>
<template id="event_right_photos" inherit_id="website_event.index" active="False" customize_show="True" 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>
<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>
</xpath>
</template>
<template id="event_right_quotes" inherit_id="website_event.index" active="False" customize_show="True" 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>
</div>
</xpath>
</template>
<template id="event_right_country_event" inherit_id="website_event.index" active="False" customize_show="True" name="Country Events">
<xpath expr="//div[@id='right_column']" position="inside">
<div class="row">
<div class="col-md-12 mb16 mt16 country_events">
<div class="country_events_list">
<div class="text-muted text-center">
<h1>
<i class="fa fa-flag fa-5x"></i>
</h1>
<h1>Events from Your Country</h1>
</div>
</div>
</div>
</div>
</xpath>
</template>
<template id="event_left_column" customize_show="True" inherit_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-attf-href="/event?{{ keep_query('country', 'type', 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>
</xpath>
</template>
<template id="event_category" inherit_id="website_event.event_left_column" active="False" customize_show="True" name="Filter by Category">
<xpath expr="//div[@id='left_column']" position="inside">
<ul class="nav nav-pills nav-stacked mt32">
<t t-foreach="types" t-as="type">
<li t-if="type['type']"
t-att-class="searches.get('type') == str(type['type'] and type['type'][0]) and 'active' or ''">
<a t-attf-href="/event?{{ keep_query('country', 'date', type=type['type'][0]) }}"><t t-esc="type['type'][1]"/>
<span class="badge pull-right"><t t-esc="type['type_count']"/></span>
</a>
</li>
</t>
</ul>
</xpath>
</template>
<template id="event_location" inherit_id="website_event.event_left_column" active="False" customize_show="True" name="Filter by Country">
<xpath expr="//div[@id='left_column']" position="inside">
<ul class="nav nav-pills nav-stacked mt32">
<t t-foreach="countries" t-as="country">
<li t-if="country['country_id']" t-att-class="searches.get('country') == str(country['country_id'] and country['country_id'][0]) and 'active' or ''">
<a t-attf-href="/event?{{ keep_query('type', 'date', country=country['country_id'][0]) }}"><t t-esc="country['country_id'][1]"/>
<span class="badge pull-right"><t t-esc="country['country_id_count']"/></span>
</a>
</li>
<li t-if="not country['country_id']" t-att-class="searches.get('country') == 'online' and 'active' or ''">
<a t-attf-href="/event?{{ keep_query('type', 'date', country='online') }}">
<span>Online Events</span>
<span class="badge pull-right"><t t-esc="country['country_id_count']"/></span>
</a>
</li>
</t>
</ul>
</xpath>
</template>
<template id="layout">
<t t-call="website.layout">
<div id="wrap" class="js_event o_website_event">
<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-attf-href="/event?type=#{event.type.id}" t-esc="event.type.name"/>
</li>
<li t-if="event.country_id">
<a t-attf-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>
</ol>
</div>
<div class="col-sm-5" groups="event.group_event_manager">
<t t-call="website.publish_management">
<t t-set="object" t-value="event"/>
<t t-set="publish_edit" t-value="True"/>
<t t-set="action" t-value="'event.action_event_view'"/>
</t>
</div>
</div>
</div>
<t t-raw="0"/>
<div class="oe_structure"/>
</div>
</t>
</template>
<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>
<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>
<template id="event_details">
<t t-call="website_event.layout">
<div itemscope="itemscope" itemtype="http://schema.org/Event" class="container">
<h1 itemprop="name" class="text-center" t-field="event.name"></h1>
<h4 class="text-center text-muted">
<i class="fa fa-clock-o"></i> <span itemprop="startDate" t-field="event.with_context(tz=event.date_tz).date_begin" t-field-options='{"hide_seconds":"True"}'/> to
<span itemprop="endDate" t-field="event.with_context(tz=event.date_tz).date_end" t-field-options='{"hide_seconds":"True"}'/>
</h4>
<h4 class="text-center text-muted"
t-field="event.address_id" t-field-options='{
"widget": "contact",
"fields": ["city"]
}'/>
<div class="row mt32 mb32">
<t t-raw="0"/>
</div>
</div>
</t>
</template>
<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-attf-href="/event">Return to the event list.</a></p>
</div>
</div>
</div>
</t>
</template>
<template id="event_description_full">
<t t-call="website_event.event_details">
<div class="col-md-8">
<div itemprop="description" 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 t-raw="comment.body"/>
<small class="pull-right muted text-right">
<div t-field="comment.author_id"/>
<div t-field="comment.date" t-field-options='{"hide_seconds":"True"}'/>
</small>
</div>
</li>
</ul>
</div>
<div class="col-md-4 css_noprint">
<div class="clearfix"/>
<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 itemprop="location" 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> From <span t-field="event.with_context(tz=event.date_tz).date_begin" t-field-options='{"hide_seconds":"True"}'> </span><br/>
<i class="fa fa-clock-o"></i> To <span t-field="event.with_context(tz=event.date_tz).date_end" t-field-options='{"hide_seconds":"True"}'> </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 people see and say about this event,
and join the conversation.
</p>
<p><strong>Use this tag:
<a t-att-href="'http://twitter.com/search?q=%23'+event.twitter_hashtag" target="_blank" class="label label-primary">#<span t-field="event.twitter_hashtag"/></a>
</strong></p>
</div>
</div>
</div>
</div>
</t>
</template>
<template id="country_events" name="Country Events" inherit_id="website.snippets">
<xpath expr="//div[@id='snippet_content']" position="inside">
<div>
<div class="oe_snippet_thumbnail">
<div style="background: white;box-shadow:none;-webkit-box-shadow:none;" class="oe_snippet_thumbnail_img" >
<i class="fa fa-flag fa-5x text-muted"></i>
</div>
<span class="oe_snippet_thumbnail_title">Local Events</span>
</div>
<div class="oe_snippet_body oe_country_events mb16 mt16">
<div class="country_events_list">
<div class="text-muted text-left">
<div>
<img class="img-rounded img-responsive" src="/website_event/static/src/img/world_map.jpg"></img>
</div>
<div>Events in visitor's country</div>
</div>
</div>
</div>
</div>
</xpath>
<xpath expr="//div[@id='snippet_options']" position="inside">
<div data-snippet-option-id='country_events'
data-selector=".oe_country_events"
data-selector-siblings="p, h1, h2, h3, blockquote, .well, .panel"
data-selector-children=".content"
>
</div>
</xpath>
</template>
<template id="country_events_list" name="Country">
<t t-ignore="true">
<t t-if="events">
<div class="country_events_list">
<div>
<t t-if="country">
<img class="img-rounded img-responsive" t-att-src="website.image_url(country, 'image')"></img>
<h4><b>Events: <span t-esc="country.name"></span></b></h4>
</t>
<t t-if="not country">
<img class="img-rounded img-responsive" src="/website_event/static/src/img/world_map.jpg"></img>
<h4><b>Upcoming Events</b></h4>
</t>
<div t-foreach="events[:5]" t-as="event_dict" class="oe_website_overflow_ellipsis mb8">
<t t-if="not event_dict['event'].website_published">
<span class="label label-danger"><i class="fa fa-ban"></i></span>
</t>
<t t-if="event_dict['event'].address_id">
<i class="fa fa-map-marker"></i>
</t>
<t t-if="not event_dict['event'].address_id">
<i class="fa fa-cloud"></i>
</t>
<b><span t-esc="event_dict['date']"/>: <span><a t-att-href="event_dict['url']"><t t-esc="event_dict['event'].name"/></a></span></b>
</div>
<t t-if="len(events) > 5">
<div t-if="country">
<b><a t-att-href="'/event?country='+str(country.id)">See all events from <span t-esc="country.name"></span></a></b>
</div>
<div t-if="not country">
<b><a href="/event"> See all upcoming events </a></b>
</div>
</t>
</div>
</div>
</t>
</t>
</template>
<template id="website.layout_footer_copyright" inherit_id="website.layout" name="Footer Copyright">
<xpath expr="//footer" position="inside">
<div class="container mt16 mb8">
<div class="pull-right" t-ignore="true" t-if="not editable">
Powered by <a class="label label-danger" href="http://www.odoo.com/page/website-builder">Odoo</a>.
Try the <a href="http://www.odoo.com/page/website-builder">open source website builder</a>.
</div>
<div class="pull-left text-muted">
Copyright &amp;copy; <span t-field="res_company.name">Company name</span>
</div>
</div>
</xpath>
</template>
<!-- User Navbar -->
<template id="content_new_event" inherit_id="website.user_navbar" groups="event.group_event_manager">
<xpath expr="//ul[@id='oe_systray']/li/ul[@class='dropdown-menu oe_content_menu']" position="inside">
<li><a href="#" data-action="new_event">New Event</a></li>
</xpath>
</template>
</data>
</openerp>