blob: 05059f54e4cbcef72cf46d87ce041907eca0a9f7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
|
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- Revamped agenda : Will need to replace agenda_online from website_event_track in master -->
<template id="agenda_online" name="Track Online: Agenda">
<t t-call="website_event.layout">
<div class="o_wevent_online o_weagenda_index">
<!-- Options -->
<t t-set="option_track_wishlist" t-value="not event.is_done and is_view_active('website_event_track.agenda_topbar_wishlist')"/>
<!-- Topbar -->
<t t-call="website_event_track.agenda_topbar"/>
<!-- Drag/Drop Area -->
<div class="oe_structure" id="oe_structure_website_event_track_agenda_1"/>
<!-- Content -->
<div class="container">
<div class="row mb-5">
<t t-call="website_event_track.agenda_main"/>
</div>
</div>
<!-- Drag/Drop Area -->
<div class="oe_structure" id="oe_structure_website_event_track_agenda_2"/>
</div>
</t>
</template>
<!-- ============================================================ -->
<!-- TOPBAR: BASE NAVIGATION -->
<!-- ============================================================ -->
<!-- Main topbar -->
<template id="agenda_topbar" name="Agenda Tools">
<nav class="navbar navbar-light border-top shadow-sm d-print-none">
<div class="container">
<div class="d-flex flex-column flex-sm-row justify-content-between w-100">
<ul class="o_weagenda_topbar_filters o_wevent_index_topbar_filters nav">
</ul>
<div class="form-inline pl-sm-3 pr-0">
<label class="invisible text-muted mr-2" id="search_summary"><span id="search_number" class="mr-1">0</span>Results</label>
<input type="text" class="form-control" placeholder="Filter Tracks..." id="event_track_search"/>
</div>
</div>
</div>
</nav>
</template>
<!-- Option: Tracks display: optional wishlist -->
<template id="agenda_topbar_wishlist"
inherit_id="website_event_track.agenda_topbar"
name="Allow Wishlists"
active="True"
customize_show="True">
<xpath expr="//ul[hasclass('o_weagenda_topbar_filters')]" position="inside">
</xpath>
</template>
<!-- ============================================================ -->
<!-- CONTENT: MAIN TEMPLATES -->
<!-- ============================================================ -->
<!-- Agenda Main Display -->
<template id="agenda_main" name="Tracks: Main Display">
<!-- No tracks -->
<div class="col-12" t-if="not tracks_by_days">
<div class="h2 mb-3">No track found.</div>
<div t-if="search_key" class="alert alert-info text-center">
<p class="m-0">We did not find any track matching your <strong t-esc="search_key"/> search.</p>
</div>
<div t-else="" class="alert alert-info text-center" groups="event.group_event_manager">
<p class="m-0">Schedule some tracks to get started !</p>
</div>
</div>
<section t-else="" class="col-12" t-foreach="days" t-as="day">
<!-- DAY HEADER -->
<div class="o_we_track_day_header mt-3 w-100 d-flex justify-content-between align-items-center">
<div class="d-flex">
<span class="h1 m-0 font-weight-bold" t-esc="day"
t-options="{'widget': 'date', 'format': 'EEEE dd'}"/>
<div class="d-flex flex-column ml-2">
<span class="font-weight-bold" t-esc="day"
t-options="{'widget': 'date', 'format': 'MMMM'}"/>
<span class="font-weight-bold" t-esc="day"
t-options="{'widget': 'date', 'format': 'YYYY'}"/>
</div>
</div>
<small class="float-right text-muted align-self-end"><t t-esc="tracks_by_days[day]"/> tracks</small>
</div>
<hr class="mt-2 pb-1 mb-1"/>
<!-- Day Agenda -->
<div class="o_we_online_agenda">
<table id="table_search" class="table table-sm border-0 h-100">
<!--Header-->
<tr>
<th class="border-0 bg-white position-sticky"/>
<t t-foreach="locations" t-as="location">
<th t-if="location" class="active text-center">
<span t-esc="location and location.name or 'Unknown'"/>
</th>
</t>
</tr>
<!-- Time Slots -->
<t t-set="used_cells" t-value="[]"/>
<t t-foreach="time_slots[day]" t-as="time_slot">
<t t-set="is_round_hour" t-value="time_slot == time_slot.replace(minute=0)"/>
<t t-set="is_half_hour" t-value="time_slot == time_slot.replace(minute=30)"/>
<tr t-att-class="'%s' % ('active' if is_round_hour else '')">
<td class="active">
<b t-if="is_round_hour" t-esc="time_slots[day][time_slot]['formatted_time']"/>
</td>
<t t-foreach="locations" t-as="location">
<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 h-100' 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-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-att-class="_classes">
<t t-call="website_event_track.agenda_main_track"/>
</td>
</t>
<t t-set="used_cells" t-value="used_cells + tracks[track]['occupied_cells']"/>
</t>
</t>
<t t-elif="location and (time_slot, location) not in used_cells">
<td t-att-rowspan="1"
t-att-class="'o_location_size_%s %s' % (len(locations),
'o_we_agenda_time_slot_half' if is_half_hour else
'o_we_agenda_time_slot_main' if is_round_hour else
''
)"><div/></td>
</t>
</t>
</tr>
</t>
</table>
</div>
</section>
</template>
<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 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>
<small t-if="not track.website_published and user_event_manager and track.stage_id.is_accepted"
title="Unpublished"
class="ml-1 badge badge-danger o_wevent_online_badge_unpublished">Unpublished</small>
<small t-if="not track.stage_id.is_accepted" title="Not Accepted"
class="ml-1 badge badge-danger o_wevent_online_badge_unpublished">Not Accepted</small>
<span t-if="option_track_wishlist">
<t t-call="website_event_track.track_widget_reminder">
<t t-set="reminder_light" t-value="True"/>
<t t-set="reminder_small" t-value="True"/>
<t t-set="light_theme" t-value="False"/>
</t>
</span>
</div>
<div class="o_we_agenda_card_content d-flex flex-column justify-content-center my-1">
<div t-att-class="'text-black' if track.website_published or user_event_manager else 'text-muted'"
t-att-onclick="'window.location=\'/event/%s/track/%s\'' % (slug(event), slug(track))
if track.website_published or user_event_manager else ''">
<span class="o_we_agenda_card_title text-bold" t-esc="track.name"/>
</div>
<div class="text-muted text-center">
<small t-if="track.partner_id or track.partner_name">
<t t-esc="track.partner_id.sudo().name or track.partner_name"/></small>
</div>
<div class="d-flex justify-content-center flex-wrap">
<t t-foreach="track.tag_ids" t-as="tag">
<span t-if="tag.color" t-att-title="tag.name"
t-attf-class="mr-1 mt-1 badge #{'o_tag_color_'+str(tag.color)}" t-esc="tag.name"
t-attf-onclick="
var value = '#{tag.name}' ;
var target = $('#event_track_search');
if (target.val() == value) { target.val(''); } else { target.val(value); }
target.trigger('input');
"
/>
</t>
</div>
</div>
</div>
</template>
</odoo>
|