This gives the user an overview of the possible actions, including those he currently does not have installed. It allows him to quickly install the missing applications without having to go on the backend. The commit also improves the existing actions: - correct handling of the actions deferred - add some translated terms PR: #27110 task-1885419
710 lines
35 KiB
XML
710 lines
35 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo>
|
|
|
|
<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>
|
|
<script type="text/javascript" src="/website_event/static/src/js/website_event.js"></script>
|
|
</xpath>
|
|
</template>
|
|
|
|
<template id="assets_editor" inherit_id="website.assets_editor" name="Event Editor">
|
|
<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>
|
|
|
|
<!-- 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-md-12">
|
|
<ol class="breadcrumb mb0">
|
|
<li class="breadcrumb-item">
|
|
<a href="/event">Our Events</a>
|
|
</li>
|
|
<li t-if="current_date" class="breadcrumb-item"><t t-esc="current_date"/></li>
|
|
<li t-if="current_type" class="breadcrumb-item"><t t-esc="current_type.name"/></li>
|
|
<li t-if="current_country" class="breadcrumb-item"><t t-esc="current_country.name"/></li>
|
|
</ol>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-md-6 offset-3">
|
|
<t t-call="website.pager"/>
|
|
</div>
|
|
</div>
|
|
<div class="row mt32 mb32">
|
|
<div class="col-lg-9" id="middle_column">
|
|
<div class="text-center text-muted" t-if="not event_ids">
|
|
<h1>No event found</h1>
|
|
<p groups="event.group_event_manager">Use the top menu <i>'Content'</i> to create your first event.</p>
|
|
</div>
|
|
<ul class="list-unstyled">
|
|
<li t-foreach="event_ids" t-as="event" t-attf-class="media#{' mt-3' if event_index else ''}">
|
|
<div itemscope="itemscope" itemtype="http://schema.org/Event" class="media-body">
|
|
<h4>
|
|
<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="event.is_participating" class="badge badge-info">Participating</small>
|
|
<small t-if="event.is_online" class="badge badge-info">Online</small>
|
|
<small t-if="not event.website_published" class="badge badge-danger">unpublished</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" role="img" aria-label="Start date" title="Start date"></i> <span itemprop="startDate" t-field="event.with_context(tz=event.date_tz).date_begin" t-options='{"hide_seconds":"True"}'> </span> <i>to</i> <span itemprop="endDate" t-field="event.with_context(tz=event.date_tz).date_end" t-options='{"hide_seconds":"True"}'> </span>
|
|
</div>
|
|
<t t-if="not event.is_online">
|
|
<div itemprop="location" t-field="event.address_id" t-options='{
|
|
"widget": "contact",
|
|
"fields": ["city"]
|
|
}'/>
|
|
</t>
|
|
<div class="text-muted" t-if="event.event_type_id">
|
|
<i class="fa fa-tag" role="img" aria-label="Event type" title="Event type"></i> <span t-field="event.event_type_id"/>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-md-6 offset-3">
|
|
<t t-call="website.pager"/>
|
|
</div>
|
|
</div>
|
|
<div class="col-lg-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-lg-12 mb16">
|
|
<div class="oe_demo">
|
|
<img src="/website_event/static/src/img/openerp_enterprise_of_the_year.png" class="rounded" alt=""/>
|
|
<div class="text-center"><a href="/event">Photos of Past Events</a></div>
|
|
</div>
|
|
</div>
|
|
<div class="col-lg-12 mb16">
|
|
<div class="oe_demo">
|
|
<img src="/website_event/static/src/img/training.jpg" class="rounded" alt=""/>
|
|
<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-lg-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-lg-12 mb16 mt16 country_events">
|
|
<div class="country_events_list">
|
|
<div class="text-muted text-center">
|
|
<h1>
|
|
<i class="fa fa-flag fa-5x"/>
|
|
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-lg-6</attribute>
|
|
</xpath>
|
|
<xpath expr="//div[@id='middle_column']" position="before">
|
|
<div class="col-lg-3 css_noprint" id="left_column">
|
|
<ul class="nav nav-pills flex-column">
|
|
<t t-foreach="dates" t-as="date">
|
|
<li class="nav-item" t-if="date[3] or (date[0] in ('old','all'))">
|
|
<a t-attf-href="/event?{{ keep_query('country', 'type', date=date[0]) }}" t-attf-class="nav-link#{searches.get('date') == date[0] and ' active' or ''}"><t t-esc="date[1]"/>
|
|
<span t-if="date[3]" class="badge badge-pill float-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 flex-column mt32">
|
|
<t t-foreach="types" t-as="type">
|
|
<li t-if="type['event_type_id']"
|
|
class="nav-item">
|
|
<a t-attf-href="/event?{{ keep_query('country', 'date', type=type['event_type_id'][0]) }}" t-attf-class="nav-link#{searches.get('type') == str(type['event_type_id'] and type['event_type_id'][0]) and ' active' or ''}"><t t-esc="type['event_type_id'][1]"/>
|
|
<span class="badge badge-pill float-right"><t t-esc="type['event_type_id_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 flex-column mt32">
|
|
<t t-foreach="countries" t-as="country">
|
|
<li t-if="country['country_id']" class="nav-item">
|
|
<a t-attf-href="/event?{{ keep_query('type', 'date', country=country['country_id'][0]) }}" t-attf-class="nav-link#{searches.get('country') == str(country['country_id'] and country['country_id'][0]) and ' active' or ''}"><t t-esc="country['country_id'][1]"/>
|
|
<span class="badge badge-pill float-right"><t t-esc="country['country_id_count']"/></span>
|
|
</a>
|
|
</li>
|
|
<li t-if="not country['country_id']" class="nav-item">
|
|
<a t-attf-href="/event?{{ keep_query('type', 'date', country='online') }}" t-attf-class="nav-link#{searches.get('country') == 'online' and ' active' or ''}">
|
|
<span>Online Events</span>
|
|
<span class="badge badge-pill float-right"><t t-esc="country['country_id_count']"/></span>
|
|
</a>
|
|
</li>
|
|
</t>
|
|
</ul>
|
|
</xpath>
|
|
</template>
|
|
|
|
<template id="event_edit_options" inherit_id="website.user_navbar" name="Edit Event Options">
|
|
<xpath expr="//li[@id='edit-page-menu']" position="after">
|
|
<t t-if="main_object._name == 'event.event'" t-set="action" t-value="'event.action_event_view'" />
|
|
</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-md-7" id="event_menu">
|
|
<ol class="breadcrumb mb0" t-if="not event.menu_id">
|
|
<li class="breadcrumb-item"><a href="/event">All Events</a></li>
|
|
<li t-if="event.event_type_id" class="breadcrumb-item">
|
|
<a t-attf-href="/event?type=#{event.event_type_id.id}" t-esc="event.event_type_id.name"/>
|
|
</li>
|
|
<li t-if="event.country_id" class="breadcrumb-item">
|
|
<a t-attf-href="/event?country=#{event.country_id.id}" t-esc="event.country_id.name"/>
|
|
</li>
|
|
<li class="breadcrumb-item active">
|
|
<span t-field="event.name"/>
|
|
</li>
|
|
</ol>
|
|
<ol name="Event Menu" class="breadcrumb mb0" id="event_menu" t-if="event.menu_id" t-att-data-content_menu_id="editable and event.menu_id.id">
|
|
<t t-foreach="event.menu_id.child_id" t-as="submenu">
|
|
<t t-call="website.submenu">
|
|
<t t-set="item_class" t-value="'breadcrumb-item'"/>
|
|
<t t-set="link_class" t-value="None"/>
|
|
</t>
|
|
</t>
|
|
</ol>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<t t-raw="0"/>
|
|
<div class="oe_structure"/>
|
|
</div>
|
|
</t>
|
|
</template>
|
|
|
|
<template id="template_location">
|
|
<t t-call="website_event.layout">
|
|
<div class="oe_structure"/>
|
|
<section class="container">
|
|
<h1 class="text-center">Event Location</h1>
|
|
</section>
|
|
<h4 class="text-center text-muted"
|
|
t-field="event.address_id" t-options='{
|
|
"widget": "contact",
|
|
"fields": ["name", "address", "phone", "mobile"]
|
|
}'/>
|
|
<div class="oe_structure"/>
|
|
</t>
|
|
</template>
|
|
|
|
<template id="template_intro">
|
|
<t t-call="website_event.layout">
|
|
<section class="container">
|
|
<h1 class="text-center">Event Introduction</h1>
|
|
</section>
|
|
<div class="oe_structure oe_empty"/>
|
|
</t>
|
|
</template>
|
|
|
|
<template id="default_page">
|
|
<t t-call="website.layout">
|
|
<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 mt-3 mb-2" t-field="event.name"></h1>
|
|
<div class="text-center">
|
|
<small t-if="event.is_participating" class="badge badge-info">Participating</small>
|
|
</div>
|
|
<h4 class="text-center text-muted">
|
|
<i class="fa fa-clock-o" role="img" aria-label="Start date" title="Start date"></i> <span itemprop="startDate" t-field="event.with_context(tz=event.date_tz).date_begin" t-options='{"hide_seconds":"True"}'/> to
|
|
<span itemprop="endDate" t-field="event.with_context(tz=event.date_tz).date_end" t-options='{"hide_seconds":"True"}'/>
|
|
<t t-if="event.date_tz">(<span t-field="event.date_tz"/>)</t>
|
|
</h4>
|
|
<h4 class="text-center text-muted"
|
|
t-field="event.address_id" t-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-lg-8">
|
|
<div t-if="event.state == 'done' or not registrable" class="alert alert-info" role="status">Registration for this event is now closed</div>
|
|
<t t-if="event.state != 'done' and registrable" t-call="website_event.registration_template"/>
|
|
<div class="clearfix"/>
|
|
<hr/>
|
|
<div itemprop="description" t-field="event.description"></div>
|
|
<div class="clearfix"/>
|
|
<ul class="list-unstyled" id="comment">
|
|
<li t-foreach="event.website_message_ids" t-as="comment" class="media mt-3">
|
|
<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="float-right muted text-right">
|
|
<div t-field="comment.author_id"/>
|
|
<div t-field="comment.date" t-options='{"hide_seconds":"True"}'/>
|
|
</small>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div class="col-lg-4 css_noprint">
|
|
<div class="clearfix"/>
|
|
|
|
<t t-if="not event.is_online">
|
|
<div class="card" t-if="event.address_id">
|
|
<h4 class="card-header">Where</h4>
|
|
<div class="card-body">
|
|
<t t-if="event.google_map_img()">
|
|
<a t-att-href="event.google_map_link()" target="_BLANK">
|
|
<img t-att-src="event.google_map_img()" width="100%%" alt="Google Maps"/>
|
|
</a>
|
|
</t>
|
|
<t t-else="1">
|
|
<a t-att-href="event.google_map_link()" target="_BLANK">Visualize on Google Maps</a>
|
|
</t>
|
|
<div itemprop="location" class="mt16 mb8" t-field="event.address_id" t-options='{
|
|
"widget": "contact",
|
|
"fields": ["name", "address", "phone", "mobile", "email"]
|
|
}'/>
|
|
</div>
|
|
</div>
|
|
</t>
|
|
|
|
<div class="card mt-3">
|
|
<h4 class="card-header">When</h4>
|
|
<div class="card-body">
|
|
<i class="fa fa-clock-o"></i> From <span t-field="event.with_context(tz=event.date_tz).date_begin" t-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-options='{"hide_seconds":"True"}'> </span>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="card mt-3" t-if="event.organizer_id">
|
|
<h4 class="card-header">Organizer</h4>
|
|
<div class="card-body" t-field="event.organizer_id" t-options='{
|
|
"widget": "contact",
|
|
"fields": ["name", "phone", "mobile", "email"]
|
|
}'/>
|
|
</div>
|
|
|
|
<div class="card mt-3">
|
|
<h4 class="card-header">Social Stream</h4>
|
|
<div class="card-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:</strong>
|
|
<a t-att-href="'http://twitter.com/search?q=%23'+event.twitter_hashtag" target="_blank" class="badge badge-primary">#<span t-field="event.twitter_hashtag"/></a>
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</t>
|
|
</template>
|
|
|
|
<!-- Registration Templates -->
|
|
<template id="registration_template">
|
|
<t t-set="tickets_available" t-value="event.seats_available or event.seats_availability == 'unlimited'"/>
|
|
<t t-set="buy" t-value="tickets_available and event.state == 'confirm'"/>
|
|
<div itemscope="itemscope" itemprop="offers" itemtype="http://schema.org/AggregateOffer">
|
|
<form id="registration_form" t-attf-action="/event/#{slug(event)}/registration/new" method="post" class="card" t-if="buy">
|
|
<input type="hidden" name="csrf_token" t-att-value="request.csrf_token()"/>
|
|
<div class="card-header d-none d-lg-block">
|
|
<div class="row">
|
|
<div class="col-lg-3">
|
|
<h5><b>Ticket Type</b></h5>
|
|
</div>
|
|
<div class="col-lg-3">
|
|
<h5><b>End of Registration</b></h5>
|
|
</div>
|
|
<div class="col-lg-3">
|
|
<h5><b>Price</b></h5>
|
|
</div>
|
|
<div class="col-lg-3">
|
|
<h5><b>Quantity</b></h5>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<t t-id="tickets" t-call="website_event.ticket">
|
|
<t t-set="name">
|
|
<span itemprop="name">Event Registration</span>
|
|
</t>
|
|
<t t-set="registration_end">
|
|
<t t-if="event.date_begin">
|
|
<span t-esc="event.date_begin_located"/>
|
|
</t>
|
|
<t t-if="not event.date_begin">
|
|
<span>Unlimited</span>
|
|
</t>
|
|
</t>
|
|
<t t-set="price">
|
|
<span itemprop="price" content="0">
|
|
Free
|
|
</span>
|
|
</t>
|
|
<t t-set="quantity">
|
|
<select name="nb_register-0" class="form-control">
|
|
<t t-foreach="range(0, (event.seats_availability == 'unlimited' or event.seats_available > 9) and 10 or event.seats_available+1)" t-as="nb">
|
|
<option t-esc="nb" t-att-selected="nb == 1 and 'selected'"/>
|
|
</t>
|
|
</select>
|
|
</t>
|
|
</t>
|
|
<div class="card-footer">
|
|
<div class="row">
|
|
<div class="col-lg-4 offset-lg-8 col-xl-3 offset-xl-9">
|
|
<button type="submit" class="btn btn-primary btn-lg btn-block a-submit" t-attf-id="#{event.id}">
|
|
Register Now
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
<div t-if="not buy" class="alert alert-info" role="status">
|
|
<t t-if="event.state == 'draft'" itemprop="availability" content="http://schema.org/OutOfStock">
|
|
Event registration not yet started.
|
|
</t>
|
|
<t t-if="event.state != 'draft'" itemprop="availability" content="http://schema.org/Discontinued">
|
|
Event registration is closed.
|
|
</t>
|
|
<t t-if="request.env.user.has_group('event.group_event_manager')">
|
|
<a t-attf-href="/web#id=#{event.id}&view_type=form&model=event.event">
|
|
<em><i class="fa fa-plus-circle" role="img" aria-label="Create" title="Create"></i>
|
|
Configure and Launch Event Registration</em>
|
|
</a>
|
|
</t>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<template id="ticket" name="Ticket offer template">
|
|
<div class="col-12 d-lg-none card-header mb4">
|
|
<h5>
|
|
<strong>Ticket Type:</strong>
|
|
<t t-raw="name"/>
|
|
</h5>
|
|
<small t-if="description">
|
|
<t t-raw="description"/>
|
|
</small>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="row" itemscope="itemscope" itemtype="http://schema.org/Offer">
|
|
<div class="col-lg-3 d-none d-lg-block" t-raw="name"/>
|
|
<div class="col-6 d-lg-none">
|
|
<h6>End of Registration</h6>
|
|
</div>
|
|
<div class="col-6 col-lg-3" itemprop="availabilityEnds" t-raw="registration_end"/>
|
|
<div class="clearfix d-lg-none mb4"/>
|
|
<div class="col-6 d-lg-none">
|
|
<h6>Price</h6>
|
|
</div>
|
|
<div class="col-6 col-lg-3" t-raw="price"/>
|
|
<div class="clearfix d-lg-none mb4"/>
|
|
<div class="col-6 d-lg-none">
|
|
<h6>Quantity</h6>
|
|
</div>
|
|
<div class="col-6 col-lg-3">
|
|
<t t-if="tickets_available">
|
|
<link itemprop="availability" content="http://schema.org/InStock"/>
|
|
<t t-raw="quantity"/>
|
|
</t>
|
|
<t t-else="">
|
|
<span itemprop="availability" content="http://schema.org/SoldOut">
|
|
Sold Out
|
|
</span>
|
|
</t>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<template id="registration_attendee_details" name="Registration Attendee Details">
|
|
<div role="dialog" id="modal_attendees_registration" class="modal fade" tabindex="-1">
|
|
<div class="modal-dialog modal-lg">
|
|
<form id="attendee_registration" t-attf-action="/event/#{slug(event)}/registration/confirm" method="post" class="js_website_submit_form">
|
|
<input type="hidden" name="csrf_token" t-att-value="request.csrf_token()"/>
|
|
<div class="modal-content">
|
|
<header class="modal-header">
|
|
<h4 class="modal-title" id="myModalLabel"><strong>Attendees</strong></h4>
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">x</button>
|
|
</header>
|
|
<main class="modal-body">
|
|
<div class="container">
|
|
<t t-set="counter_type" t-value="1"/>
|
|
<t t-set="counter" t-value="0"/>
|
|
<t t-foreach="tickets" t-as="ticket">
|
|
<h4 class="o_page_header mt16">
|
|
<strong>
|
|
Ticket Type #<t t-raw="counter_type"/>: <t t-esc="ticket['name']"/>
|
|
<t t-if="ticket['price'] == 0">(Free)</t>
|
|
</strong>
|
|
</h4>
|
|
<div class="row">
|
|
<div class="col-lg-4"><strong>Name</strong></div>
|
|
<div class="col-lg-5"><strong>Email</strong></div>
|
|
<div class="col-lg-3"><strong>Phone</strong> <span class="text-muted">(Optional)</span></div>
|
|
</div>
|
|
<t t-foreach="range(1, ticket['quantity'] + 1)" t-as="att_counter" name="attendee_loop">
|
|
<t t-set="counter" t-value="counter + 1"/>
|
|
<div class="row mb4">
|
|
<t t-set="attendee_placeholder">Attendee #%s</t>
|
|
<div class="col-lg-4"><input class='form-control' type='text' t-attf-name="#{counter}-name" required="This field is required" t-att-placeholder="attendee_placeholder %counter"/></div>
|
|
<div class="col-lg-5"><input class='form-control' type='email' t-attf-name="#{counter}-email" required="This field is required"/></div>
|
|
<div class="col-lg-3"><input class='form-control' type='tel' t-attf-name="#{counter}-phone"/></div>
|
|
<input class='d-none' type='text' t-attf-name="#{counter}-ticket_id" t-attf-value="#{ticket['id']}"/>
|
|
</div>
|
|
</t>
|
|
<t t-set="counter_type" t-value="counter_type + 1"/>
|
|
</t>
|
|
</div>
|
|
</main>
|
|
<footer class="modal-footer">
|
|
<div class="float-left">
|
|
<button type="submit" class="btn btn-primary">Continue</button>
|
|
<button type="button" class="btn btn-secondary js_goto_event" data-dismiss="modal">Cancel Registration</button>
|
|
</div>
|
|
</footer>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<template id="registration_complete" name="Registration Completed">
|
|
<t t-call="website.layout">
|
|
<div class="container">
|
|
<h3>We are glad to confirm your registration to our event</h3>
|
|
<div class="row">
|
|
<div class="col-lg-3 mt16">
|
|
<h4>Event Details</h4>
|
|
</div>
|
|
<div class="col-lg-9 mt16">
|
|
<h4><a t-attf-href="/event/#{slug(event)}"><t t-esc="event.name"/></a></h4>
|
|
<i class="fa fa-clock-o" role="img" aria-label="Start date" title="Start date"></i> <span itemprop="startDate" t-esc="event.date_begin_located"> </span> <i>to</i> <span itemprop="endDate" t-esc="event.date_end_located"> </span>
|
|
<div id="add_to_calendar" class="mt4">
|
|
<a role="button" class="btn btn-primary mr8" t-att-href="iCal_url">
|
|
<i class="fa fa-fw fa-arrow-right"/>Add to iCal/Outlook
|
|
</a>
|
|
<a role="button" class="btn btn-primary" t-att-href="google_url" target='_blank'>
|
|
<i class="fa fa-fw fa-arrow-right"/>Add to Google Calendar
|
|
</a>
|
|
</div>
|
|
<div itemprop="location" class="mt16 mb8" t-field="event.address_id" t-options='{
|
|
"widget": "contact",
|
|
"fields": ["name", "address", "phone", "mobile", "email"]
|
|
}'/>
|
|
</div>
|
|
<div class="col-lg-3 mt16">
|
|
<h4>Your registration</h4>
|
|
</div>
|
|
<div class="col-lg-9 mt16">
|
|
<table class='table table-bordered table-striped'>
|
|
<thead>
|
|
<tr>
|
|
<th>Reference</th>
|
|
<th>Name</th>
|
|
<th>E-mail</th>
|
|
<th>Phone</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<t t-foreach="attendees" t-as="attendee">
|
|
<tr>
|
|
<td><t t-esc="attendee.id"/></td>
|
|
<td><i class="fa fa-user" role="img" aria-label="Name" title="Name"></i> <t t-if='attendee.name'><t t-esc="attendee.name"/></t><t t-if='not attendee.name'>N/A</t></td>
|
|
<td><i class="fa fa-envelope" role="img" aria-label="Email" title="Email"></i> <t t-if='attendee.email'><t t-esc="attendee.email"/></t><t t-if='not attendee.email'>N/A</t></td>
|
|
<td><i class="fa fa-phone" role="img" aria-label="Phone" title="Phone"></i> <t t-if='attendee.phone'><t t-esc="attendee.phone"/></t><t t-if='not attendee.phone'>N/A</t></td>
|
|
</tr>
|
|
</t>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</t>
|
|
</template>
|
|
|
|
<!-- External snippets -->
|
|
<template id="remove_external_snippets" inherit_id="website.external_snippets">
|
|
<xpath expr="//t[@t-install='website_event']" position="replace"/>
|
|
</template>
|
|
<!-- Snippets -->
|
|
<template id="country_events" name="Country Events" inherit_id="website.snippets">
|
|
<xpath expr="//div[@id='snippet_content']//t[@t-snippet][last()]" position="after">
|
|
<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" title="Local Events" role="img" aria-label="Local Events"></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="rounded img-fluid" src="/website_event/static/src/img/world_map.jpg" alt=""></img>
|
|
</div>
|
|
<div>Events in visitor's country</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</xpath>
|
|
<xpath expr="//div[@id='snippet_options']" position="inside">
|
|
<div data-js='country_events'
|
|
data-selector=".oe_country_events"
|
|
data-drop-near="p, h1, h2, h3, blockquote, .card"
|
|
data-drop-in=".content"
|
|
>
|
|
</div>
|
|
</xpath>
|
|
</template>
|
|
|
|
<!-- Misc templates -->
|
|
<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="rounded img-fluid" t-att-src="website.image_url(country, 'image')" alt=""></img>
|
|
<h4><b>Events: <span t-esc="country.name"></span></b></h4>
|
|
</t>
|
|
<t t-if="not country">
|
|
<img class="rounded img-fluid" src="/website_event/static/src/img/world_map.jpg" alt=""></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="badge badge-danger" role="img" aria-label="Attention: not published" title="Not published"><i class="fa fa-ban"></i></span>
|
|
</t>
|
|
<t t-if="event_dict['event'].address_id">
|
|
<i class="fa fa-map-marker" title="It is a physical event" role="img" aria-label="It is a physical event"></i>
|
|
</t>
|
|
<t t-if="not event_dict['event'].address_id">
|
|
<i class="fa fa-cloud" title="It is an online event" role="img" aria-label="It is an online event"></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_event.brand_promotion" inherit_id="website.brand_promotion">
|
|
<xpath expr="//div[hasclass('o_brand_promotion')]" position="replace">
|
|
<div class="o_brand_promotion">
|
|
Powered by <a target="_blank" class="badge badge-danger" href="http://www.odoo.com/page/website-builder?utm_source=db&utm_medium=website">Odoo</a>.
|
|
Try the <a target="_blank" href="http://www.odoo.com/page/website-builder?utm_source=db&utm_medium=website">open source website builder</a>.
|
|
</div>
|
|
</xpath>
|
|
</template>
|
|
|
|
|
|
<!-- User Navbar -->
|
|
<template id="user_navbar_inherit_website_event" inherit_id="website.user_navbar">
|
|
<xpath expr="//div[@id='o_new_content_menu_choices']//div[@name='module_website_event']" position="attributes">
|
|
<attribute name="name"/>
|
|
<attribute name="t-att-data-module-id"/>
|
|
<attribute name="t-att-data-module-shortdesc"/>
|
|
<attribute name="groups">event.group_event_manager</attribute>
|
|
</xpath>
|
|
</template>
|
|
</odoo>
|