[FW][MERGE][FIX] website_event_*: fix registration and tracks discovering flow

PURPOSE

This merge commit fixes a few wording and view issues on the "event online"
layouts, as well as minor templates adjustments.

SPECS

- Avoid breaking the talk description page when description is very long
- Modify all occurrences of "starts at" to "starts on" (better wording)
- Move the "hide sponsor" concept from _exhibitor to _track_online
  To be able to hide the sponsors on the "registration confirmed" template
- Hide the sponsor block in "mobile" view (breakpoint md)
- Have a common css definition for background color based on color field
- Reorganize track list display
- Make some minor layout adjustments (agenda colors / ...)

See underlying commits for details.

LINKS

Task ID 2325327

closes odoo/odoo#56812

Forward-port-of: odoo/odoo#56530
Forward-port-of: odoo/odoo#56430
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
This commit is contained in:
Odoo's Mergebot
2020-09-01 09:19:16 +02:00
committed by GitHub
21 changed files with 208 additions and 95 deletions
+6 -2
View File
@@ -383,13 +383,17 @@ class WebsiteEventController(http.Controller):
registrations = self._process_attendees_form(event, post)
attendees_sudo = self._create_attendees_from_registration_post(event, registrations)
return request.render("website_event.registration_complete",
self._get_registration_confirm_values(event, attendees_sudo))
def _get_registration_confirm_values(self, event, attendees_sudo):
urls = event._get_event_resource_urls()
return request.render("website_event.registration_complete", {
return {
'attendees': attendees_sudo,
'event': event,
'google_url': urls.get('google_url'),
'iCal_url': urls.get('iCal_url')
})
}
def _extract_searched_event_tags(self, searches):
tags = request.env['event.tag']
@@ -65,6 +65,44 @@
}
}
// background color-based for new styling
.event_color_0 {
@extend .bg-100;
}
.event_color_1 {
background-color: rgba(240, 96, 80, 0.2);
}
.event_color_2 {
background-color: rgba(244, 164, 96, 0.2);
}
.event_color_3 {
background-color: rgba(247, 205, 31, 0.2);
}
.event_color_4 {
background-color: rgba(108,193,237,0.2);
}
.event_color_5 {
background-color: rgba(129,73,104,0.2);
}
.event_color_6 {
background-color: rgba(235,126,127,0.2);
}
.event_color_7 {
background-color: rgba(44,131,151,0.2);
}
.event_color_8 {
background-color: rgba(71,85,119,0.2);
}
.event_color_9 {
background-color: rgba(214,20,95,0.2);
}
.event_color_10 {
background-color: rgba(48,195,129,0.2);
}
.event_color_11 {
background-color: rgba(147,101,184,0.2);
}
.o_wevent_online_page_container {
// Widescreen mode
@include media-breakpoint-up(md) {
@@ -18,7 +18,7 @@ class WebsiteEventController(WebsiteEventController):
date_begin = format_datetime(event.with_context(tz=event.date_tz).date_begin, format="medium")
values["toast_message"] = (
_('The event %s starts at %s (%s). \nJoin us there to chat about "%s" !')
_('The event %s starts on %s (%s). \nJoin us there to chat about "%s" !')
% (event.name, date_begin, event.date_tz, meeting_room.name)
)
@@ -38,7 +38,7 @@
t-options="{'widget': 'duration', 'digital': True, 'unit': 'minute', 'round': 'minute'}"/>.
</span>
<span class="my-0" t-else="meeting_room.event_id.start_today">
starts at
starts on
<span t-field="meeting_room.event_id.with_context(tz=meeting_room.event_id.date_tz).date_begin"
t-options="{'format': 'medium'}"/> (<t t-esc="meeting_room.event_id.date_tz"/>).
</span>
@@ -1,5 +1,6 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from . import event
from . import event_track
from . import webmanifest
@@ -0,0 +1,12 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo.addons.website_event.controllers.main import WebsiteEventController
class EventOnlineController(WebsiteEventController):
def _get_registration_confirm_values(self, event, attendees_sudo):
values = super(EventOnlineController, self)._get_registration_confirm_values(event, attendees_sudo)
values['hide_sponsors'] = True
return values
@@ -382,7 +382,7 @@
</record>
<record id="event_7_track_4" model="event.track">
<field name="name">Life at Home Around the World: William’s Story</field>
<field name="color">5</field>
<field name="color">0</field>
<field name="event_id" ref="event.event_7"/>
<field name="stage_id" ref="event_track_stage4"/>
<field name="location_id" ref="website_event_track.event_track_location_online_1"/>
@@ -399,7 +399,7 @@
</record>
<record id="event_7_track_5" model="event.track">
<field name="name">Top 10 Most Expensive Wood in the World</field>
<field name="color">3</field>
<field name="color">0</field>
<field name="event_id" ref="event.event_7"/>
<field name="stage_id" ref="event_track_stage3"/>
<field name="location_id" ref="website_event_track.event_track_location_online_1"/>
@@ -413,7 +413,7 @@
<!-- Location 2 -->
<record id="event_7_track_6" model="event.track">
<field name="name">Securing your Lumber during transport</field>
<field name="color">3</field>
<field name="color">0</field>
<field name="event_id" ref="event.event_7"/>
<field name="stage_id" ref="event_track_stage3"/>
<field name="location_id" ref="website_event_track.event_track_location_online_2"/>
@@ -439,7 +439,7 @@
</record>
<record id="event_7_track_8" model="event.track">
<field name="name">Dealing with OpenWood Furniture</field>
<field name="color">6</field>
<field name="color">0</field>
<field name="event_id" ref="event.event_7"/>
<field name="stage_id" ref="event_track_stage2"/>
<field name="location_id" ref="website_event_track.event_track_location_online_2"/>
@@ -452,7 +452,7 @@
</record>
<record id="event_7_track_9" model="event.track">
<field name="name">Kitchens for the Future</field>
<field name="color">7</field>
<field name="color">0</field>
<field name="event_id" ref="event.event_7"/>
<field name="stage_id" ref="event_track_stage2"/>
<field name="location_id" ref="website_event_track.event_track_location_online_2"/>
@@ -479,7 +479,7 @@
</record>
<record id="event_7_track_l3_2" model="event.track">
<field name="name">Who's OpenWood anyway ?</field>
<field name="color">6</field>
<field name="color">0</field>
<field name="event_id" ref="event.event_7"/>
<field name="stage_id" ref="website_event_track.event_track_stage3"/>
<field name="location_id" ref="website_event_track.event_track_location_online_3"/>
@@ -528,6 +528,7 @@
<!-- Location 1 -->
<record id="event_7_track_12" model="event.track">
<field name="name">Climate positive</field>
<field name="color">3</field>
<field name="event_id" ref="event.event_7"/>
<field name="stage_id" ref="event_track_stage3"/>
<field name="location_id" ref="website_event_track.event_track_location_online_1"/>
@@ -540,7 +541,7 @@
</record>
<record id="event_7_track_13" model="event.track">
<field name="name">Log House Building</field>
<field name="color">2</field>
<field name="color">0</field>
<field name="event_id" ref="event.event_7"/>
<field name="stage_id" ref="event_track_stage3"/>
<field name="wishlisted_by_default" eval="True"/>
@@ -554,7 +555,7 @@
</record>
<record id="event_7_track_14" model="event.track">
<field name="name">Building a DIY cabin from the ground up</field>
<field name="color">2</field>
<field name="color">0</field>
<field name="event_id" ref="event.event_7"/>
<field name="stage_id" ref="event_track_stage3"/>
<field name="location_id" ref="website_event_track.event_track_location_online_1"/>
@@ -568,7 +569,7 @@
<!-- Location 2 -->
<record id="event_7_track_15" model="event.track">
<field name="name">Logs to lumber</field>
<field name="color">3</field>
<field name="color">0</field>
<field name="event_id" ref="event.event_7"/>
<field name="stage_id" ref="event_track_stage3"/>
<field name="location_id" ref="website_event_track.event_track_location_online_2"/>
@@ -581,7 +582,7 @@
</record>
<record id="event_7_track_16" model="event.track">
<field name="name">Pretty. Ugly. Lovely.</field>
<field name="color">4</field>
<field name="color">0</field>
<field name="event_id" ref="event.event_7"/>
<field name="stage_id" ref="event_track_stage3"/>
<field name="location_id" ref="website_event_track.event_track_location_online_2"/>
@@ -608,7 +609,7 @@
</record>
<record id="event_7_track_18" model="event.track">
<field name="name">6 Woodworking tips and tricks for beginners</field>
<field name="color">7</field>
<field name="color">0</field>
<field name="event_id" ref="event.event_7"/>
<field name="stage_id" ref="event_track_stage3"/>
<field name="location_id" ref="website_event_track.event_track_location_online_2"/>
@@ -648,7 +649,7 @@
</record>
<record id="event_7_track_l3_11" model="event.track">
<field name="name">Happy with OpenWood</field>
<field name="color">6</field>
<field name="color">0</field>
<field name="event_id" ref="event.event_7"/>
<field name="stage_id" ref="website_event_track.event_track_stage3"/>
<field name="location_id" ref="website_event_track.event_track_location_online_3"/>
@@ -696,7 +697,7 @@
<!-- Location 1 -->
<record id="event_7_track_22" model="event.track">
<field name="name">Tools for the Woodworking Beginner</field>
<field name="color">3</field>
<field name="color">0</field>
<field name="event_id" ref="event.event_7"/>
<field name="stage_id" ref="event_track_stage3"/>
<field name="location_id" ref="website_event_track.event_track_location_online_1"/>
@@ -737,11 +738,11 @@
<!-- Location 3 -->
<record id="event_7_track_25" model="event.track">
<field name="name">Live Testimonials</field>
<field name="color">5</field>
<field name="color">0</field>
<field name="event_id" ref="event.event_7"/>
<field name="stage_id" ref="event_track_stage3"/>
<field name="location_id" ref="website_event_track.event_track_location_online_3"/>
<field name="date" eval="(DateTime.now() + timedelta(days=1)).strftime('%Y-%m-%d 07:00:00')"></field>
<field name="date" eval="(DateTime.now() + timedelta(days=1)).strftime('%Y-%m-%d 07:30:00')"></field>
<field name="tag_ids" eval="[(4, ref('website_event_track.event_track_tag1')), (4, ref('website_event_track.event_track_tag2')), (4, ref('website_event_track.event_track_tag12'))]"/>
<field name="is_published" eval="True"/>
<field name="duration">3</field>
@@ -750,7 +751,7 @@
</record>
<record id="event_7_track_26" model="event.track">
<field name="name">Less Furniture is More Furniture</field>
<field name="color">4</field>
<field name="color">0</field>
<field name="event_id" ref="event.event_7"/>
<field name="stage_id" ref="event_track_stage2"/>
<field name="location_id" ref="website_event_track.event_track_location_online_3"/>
@@ -1,3 +1,9 @@
// small hack to hide sponsors on specific views
.o_wevent_hide_sponsors .container.mt32.mb16.d-none.d-md-block.d-print-none {
// Not a very accurate way to target the 'sponsors' block -> improve in master
display: none !important;
}
/*
* EVENT TOOL: REMINDER WIDGET
*/
@@ -22,6 +28,7 @@
}
}
/*
* AGENDA
*/
@@ -121,6 +128,7 @@
}
}
// Remove me in master
&.event_color_0 {
background-color: rgba(211, 211, 211, 0.5);
}
@@ -49,7 +49,14 @@
}
@media screen and (min-width: 1400px) {
max-width: none;
// return to bootstrap value for col-lg-9 / 10 breakpoint if screen is big enough
&.col-lg-9 {
max-width: 75%;
}
&.col-lg-10 {
max-width: 83.33333333%;
}
}
}
@@ -4,7 +4,7 @@
<!-- Add a shortcut to wishlist / talks after registration -->
<template id="registration_complete" inherit_id="website_event.registration_complete">
<xpath expr="//div[hasclass('row')][last()]" position="after">
<div t-if="event.website_track" class="row mt-5">
<div t-if="event.website_track" class="row mt-5 mb256">
<div class="col-12">
<h3>Book your seats to the best talks</h3>
<p>Get prepared and
@@ -115,16 +115,22 @@
<t t-set="tracks" t-value="time_slots[day][time_slot].get(location, {})"/>
<t t-if="tracks">
<t t-foreach="tracks" t-as="track">
<t t-set="_classes"
t-value="'text-center %s %s %s' % (
'event_color_%s' % (track.color) if track.color else 'bg-100',
'event_track' if track else '',
'o_location_size_%d' % len(locations),
)"/>
<t t-if="track.location_id and track.location_id == location">
<td t-att-rowspan="tracks[track]['rowspan']"
t-attf-class="text-center event_color_#{track.color} #{track and 'event_track' or ''} o_location_size_#{len(locations)}">
t-att-class="_classes">
<t t-call="website_event_track.agenda_main_track"/>
</td>
</t>
<t t-else="">
<td t-att-colspan="len(locations)-1"
t-att-rowspan="tracks[track]['rowspan']"
t-attf-class="text-center event_color_#{track.color} #{track and 'event_track' or ''} o_location_size_#{len(locations)}">
t-att-class="_classes">
<t t-call="website_event_track.agenda_main_track"/>
</td>
</t>
@@ -149,7 +155,7 @@
<template id="agenda_main_track" name="Track Agenda: Track">
<div class="d-flex flex-column h-100">
<div class="d-flex justify-content-end flex-wrap-reverse o_weagenda_track_badges">
<div class="d-flex justify-content-end flex-wrap-reverse align-items-center o_weagenda_track_badges">
<small t-if="track.is_track_live and not track.is_track_done and track.website_published"
class="mx-1 badge badge-danger">Live
</small>
@@ -158,6 +158,10 @@
<!-- Tracks: List-based display -->
<template id="tracks_display_list" name="Tracks: List Display">
<div t-if="tracks">
<h1>Book your talks</h1>
<h4 class="mb-5">Plan your experience by adding your favorites talks to your wishlist</h4>
</div>
<div t-if="tracks" class="o_wesession_list mb-3">
<ul class="list-unstyled">
<li t-foreach="tracks_by_day" t-as="tracks_info"
@@ -184,60 +188,97 @@
<hr class="mt-2 pb-1 mb-1"/>
</div>
<!-- DAY TRACKS LIST -->
<div t-foreach="tracks" t-as="track" class="row mt8 o_wesession_list_item">
<div class="col-md-7">
<span class="h5 mb0">
<a t-if="track.is_published or user_event_manager"
t-att-href="track.website_url">
<span t-field="track.name"/>
</a>
<t t-else="">
<span t-field="track.name"/>
</t>
<span t-if="not track.is_published and user_event_manager"
class="badge badge-danger ml-2 o_wevent_online_badge_unpublished">
Unpublished
</span>
</span>
<div class="text-muted">
<span class="text-muted" t-esc="track.partner_name"/>
<t t-if="track.partner_name"> &amp;bull; </t>
<span t-esc="track.duration"
t-options="{'widget': 'duration', 'digital': False, 'format': 'short', 'unit': 'hour', 'round': 'minute'}"/>
</div>
<div t-foreach="tracks" t-as="track"
t-att-class="'o_wesession_list_item px-2 py-2 event_color_%d' % (track.color)">
<!-- Side information in a floating div (desktop only) -->
<div t-if="not event.is_done and (not track.date or today_tz &lt;= tracks_date) and option_track_wishlist"
class="float-right d-none d-md-block ml-2">
<t t-call="website_event_track.track_widget_reminder">
<t t-set="reminder_small" t-value="False"/>
<t t-set="reminder_light" t-value="False"/>
</t>
</div>
<div class="col-md-5">
<div t-if="not event.is_done" class="float-right">
<t t-if="tracks_date and today_tz &lt;= tracks_date">
<div class="row no-gutters">
<!-- Main column: name, speaker -->
<div class="col-md-7">
<!-- Reminder widget: directly in line to gain space, mobile only -->
<div t-if="not event.is_done and (not track.date or today_tz &lt;= tracks_date) and option_track_wishlist"
class="float-right d-block d-md-none ml-2">
<t t-call="website_event_track.track_widget_reminder">
<t t-set="reminder_small" t-value="True"/>
<t t-set="reminder_light" t-value="False"/>
</t>
</div>
<span class="h5 mb0">
<a t-if="track.is_published or user_event_manager"
class="mr-2"
t-att-href="track.website_url">
<span t-field="track.name"/>
</a>
<t t-else="">
<span class="mr-2" t-field="track.name"/>
</t>
<span t-if="not track.is_published and user_event_manager"
class="badge badge-danger o_wevent_online_badge_unpublished">
Unpublished
</span>
</span>
<div class="text-muted d-flex align-items-center">
<span class="text-muted" t-esc="track.partner_name"/>
<t t-if="tracks_date and today_tz &lt;= tracks_date">
<!-- Hour: Live > Remaining > Hour: mobile only -->
<div class="d-block d-md-none">
<span t-if="track.partner_name" class="ml-2">&amp;bull;</span>
<span t-if="track.is_track_live and not track.is_track_done"
class="badge badge-danger ml-2">Live</span>
<span t-elif="not track.is_track_done and track.is_track_soon"
class="ml-2">
<span t-esc="track.track_start_remaining"
t-options="{'widget': 'duration', 'digital': False, 'format': 'narrow',
'add_direction': True, 'unit': 'second', 'round': 'minute'}"/>
</span>
<span t-elif="not track.is_track_done and not track.is_track_soon"
class="ml-2"
t-esc="track.date"
t-options="{'widget': 'datetime', 'time_only': True, 'format': 'short'}"/>
<span t-else="" class="badge badge-info ml-2">Finished</span>
</div>
<!-- Duration (desktop only) -->
<t t-if="track.duration and not track.is_track_done and not track.is_track_done">
<span class="d-none d-md-block ml-2">&amp;bull;</span>
<span class="d-none d-md-block ml-2"
t-esc="track.duration"
t-options="{'widget': 'duration', 'digital': False, 'format': 'short', 'unit': 'hour', 'round': 'minute'}"/>
</t>
</t>
</div>
</div>
<!-- Aside column: date, tags -->
<div class="col-md-5">
<!-- Hour: Live > Remaining > Hour: desktop only -->
<div t-if="tracks_date and today_tz &lt;= tracks_date"
class="d-none d-md-block float-right">
<span t-if="track.is_track_live and not track.is_track_done"
class="badge badge-danger">Live</span>
<span t-elif="not track.is_track_done and track.is_track_soon">
class="badge badge-danger ml-2">Live</span>
<span t-elif="not track.is_track_done and track.is_track_soon"
class="ml-2">
<span t-esc="track.track_start_remaining"
t-options="{'widget': 'duration', 'digital': False, 'format': 'narrow',
'add_direction': True, 'unit': 'second', 'round': 'minute'}"/>
</span>
<t t-elif="not track.is_track_done and not track.is_track_soon">
<span
class="mr-2"
t-esc="track.date"
t-options="{'widget': 'datetime', 'time_only': True, 'format': 'short'}"/>
<t t-if="option_track_wishlist"
t-call="website_event_track.track_widget_reminder">
<t t-set="reminder_small" t-value="True"/>
</t>
<span t-elif="not track.is_track_done and not track.is_track_soon"
class="ml-2"
t-esc="track.date"
t-options="{'widget': 'datetime', 'time_only': True, 'format': 'short'}"/>
<span t-else="" class="badge badge-info ml-2">Finished</span>
</div>
<!-- Tags: desktop only -->
<div class="d-none d-md-block">
<t t-foreach="track.tag_ids" t-as="tag">
<t t-if="tag.color" t-call="website_event_track.track_tag_badge_link"/>
</t>
<t t-else="">
<span class="badge badge-info">Finished</span>
</t>
</t>
<t t-elif="not track.date and option_track_wishlist"
t-call="website_event_track_online.track_widget_reminder">
<t t-set="reminder_small" t-value="True"/>
</t>
</div>
</div>
<t t-foreach="track.tag_ids" t-as="tag">
<t t-if="tag.color" t-call="website_event_track.track_tag_badge_link"/>
</t>
</div>
</div>
</li>
@@ -1,9 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="event_layout" inherit_id="website_event.layout">
<xpath expr="//div[@id='wrap']" position="attributes">
<attribute name="t-attf-class">o_wevent_event js_event #{'o_wevent_hide_sponsors' if hide_sponsors else ''}</attribute>
</xpath>
</template>
<template name="Sponsors" id="event_sponsor" customize_show="True" inherit_id="website_event.layout">
<xpath expr="//div[@id='wrap']" position="inside">
<div class="container mt32 mb16 d-print-none" t-if="event.sponsor_ids">
<div class="container mt32 mb16 d-none d-md-block d-print-none" t-if="event.sponsor_ids">
<div t-attf-class="d-flex flex-wrap mb-5 #{'' if (len(event.sponsor_ids) > 10) else 'justify-content-md-center'}">
<t t-foreach="event.sponsor_ids" t-as="sponsor">
<t t-if="sponsor.url">
@@ -39,7 +39,7 @@
t-options="{'widget': 'duration', 'digital': False, 'unit': 'minute', 'round': 'minute'}"/>
</span>
<span t-else="">
starts at
starts on
<span t-field="track.event_id.with_context(tz=track.event_id.date_tz).date_begin"
t-options="{'format': 'long', 'tz_name': track.event_id.date_tz, 'hide_seconds': True}"/>
</span>
@@ -53,7 +53,7 @@
</div>
</div>
<!-- TRACK DESCRIPTION -->
<div class="o_wesession_track_main_description">
<div class="o_wesession_track_main_description overflow-auto">
<div class="mx-3 pt-3 mb-3 d-flex justify-content-between flex-column flex-md-row">
<div class="d-flex flex-column">
<span class="h4 mb-0" t-esc="track.name"/>
@@ -7,9 +7,9 @@
* light_theme: bell is white/gold if set; otherwse bell is gray / white
-->
<template id="track_widget_reminder">
<div t-att-class="'o_wetrack_js_reminder btn %s %s' % (
'btn-link' if reminder_light else 'btn-outline-primary',
'btn-sm' if reminder_small else '')">
<t t-set="_btn_style" t-value="'btn-link' if reminder_light else (track.is_reminder_on and 'btn-primary') or 'btn-outline-primary'"/>
<t t-set="_btn_size" t-value="'btn-sm' if reminder_small else ''"/>
<div t-att-class="'o_wetrack_js_reminder btn %s %s' % (_btn_style, _btn_size)">
<t t-if="track.is_reminder_on" t-set="title">Favorite On</t>
<t t-else="track.is_reminder_on" t-set="title">Set Favorite</t>
<i t-att-class="'fa fa-bell%s inactive_color_%s' % ('' if track.is_reminder_on else '-o', 'dark' if reminder_light and not light_theme else 'light')"
@@ -18,7 +18,7 @@ class WebsiteEventController(WebsiteEventController):
date_begin = format_datetime(event.with_context(tz=event.date_tz).date_begin, format="medium")
values["toast_message"] = (
_('The event %s starts at %s (%s). \nJoin us there to meet %s !')
_('The event %s starts on %s (%s). \nJoin us there to meet %s !')
% (event.name, date_begin, event.date_tz, sponsor.partner_name)
)
@@ -1,8 +1,3 @@
.o_wevent_hide_sponsors .container.mt32.mb16.d-print-none {
// Not a very accurate way to target the 'sponsors' block -> improve in master
display: none;
}
.o_wesponsor_index {
/*
@@ -13,7 +13,7 @@
<span t-esc="widget.sponsorData.event_start_remaining"/> minutes
</span>
<span class="my-0" t-else="">
starts at <span t-esc="widget.sponsorData.event_date_begin_located"/>
starts on <span t-esc="widget.sponsorData.event_date_begin_located"/>
</span>
</div>
<div class="col-12 alert alert-warning text-center" role="alert"
@@ -1,12 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="event_layout" inherit_id="website_event.layout">
<xpath expr="//div[@id='wrap']" position="attributes">
<attribute name="t-attf-class">o_wevent_event js_event #{'o_wevent_hide_sponsors' if hide_sponsors else ''}</attribute>
</xpath>
</template>
<template id="event_exhibitors" name="Event Exhibitors">
<t t-call="website_event.layout">
<div class="o_wevent_online o_wevent_online_bg o_wesponsor_index">
@@ -38,7 +38,7 @@
t-options="{'widget': 'duration', 'digital': True, 'unit': 'minute', 'round': 'minute'}"/>.
</span>
<span class="my-0" t-else="">
starts at
starts on
<span t-field="sponsor.event_id.with_context(tz=sponsor.event_id.date_tz).date_begin"
t-options="{'format': 'medium'}"/> (<t t-esc="sponsor.event_id.date_tz"/>).
</span>
@@ -3,17 +3,17 @@
<template id="tracks_display_list" inherit_id="website_event_track.tracks_display_list">
<!-- TRACK LIST: ADD REPLAY TAG FOR FINISHED TRACKS -->
<xpath expr="//div[hasclass('o_wesession_list_item')]/div[hasclass('col-md-5')]//t[@t-elif='not track.is_track_done and not track.is_track_soon']" position="after">
<xpath expr="//div[@t-foreach='tracks']//div[hasclass('col-md-7')]//span[@t-elif='not track.is_track_done and not track.is_track_soon']" position="after">
<a t-elif="track.youtube_video_url and (track.is_published or user_event_manager)"
t-att-href="track.website_url" class="badge badge-danger">Replay
t-att-href="track.website_url" class="badge badge-danger ml-2">Replay
</a>
</xpath>
<!-- ADD YOUTUBE ICON -->
<xpath expr="//div[hasclass('o_wesession_list_item')]/div[hasclass('col-md-7')]//a/span[@t-field='track.name']" position="before">
<xpath expr="//div[@t-foreach='tracks']//div[hasclass('col-md-7')]//a/span[@t-field='track.name']" position="before">
<i t-if="track.date and track.youtube_video_url and (track.is_track_soon or track.is_track_live or track.is_youtube_replay)"
class="fa fa-youtube-play text-danger mr-1"/>
</xpath>
<xpath expr="//div[hasclass('o_wesession_list_item')]/div[hasclass('col-md-7')]//t/span[@t-field='track.name']" position="before">
<xpath expr="//div[@t-foreach='tracks']//div[hasclass('col-md-7')]//t/span[@t-field='track.name']" position="before">
<i t-if="track.date and track.youtube_video_url and (track.is_track_soon or track.is_track_live or track.is_youtube_replay)"
class="fa fa-youtube-play text-danger mr-1"/>
</xpath>