Détail Entité

An error occurred while processing the template.
Java method "jdk.proxy57.$Proxy364.getCurrentAndFuturePublishedEventsFromPlace(String)" threw an exception when invoked on jdk.proxy57.$Proxy364 object "eu.strasbourg.service.agenda.service.impl.EventLocalServiceImpl@50dc25a4"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign placeEvents = EventLocalServi...  [in template "20116#20160#4906352" at line 404, column 17]
----
1<!-- Détail lieu --> 
2<#setting locale = locale /> 
3 
4<#if !themeDisplay.scopeGroup.publicLayoutSet.virtualHostname?has_content || themeDisplay.scopeGroup.isStagingGroup()> 
5    <#assign homeURL = "/web${layout.group.friendlyURL}/" /> 
6<#else> 
7    <#assign homeURL = "/" /> 
8</#if> 
9 
10<#assign fileEntryHelper = serviceLocator.findService("eu.strasbourg.utils.api.FileEntryHelperService") /> 
11<#assign EventLocalService = serviceLocator.findService("eu.strasbourg.service.agenda.service.EventLocalService")/> 
12 
13<@liferay_util["body-top"]> 
14    <script> 
15        window.title = "${entry.getAlias(locale)}"; 
16        window.x = ${entry.getMercatorX()}; 
17        window.y = ${entry.getMercatorY()}; 
18    </script> 
19</@> 
20<link rel="stylesheet" href="/o/0-global-theme/libs/leaflet/leaflet.css" /> 
21 
22 
23<@liferay_util["html-bottom"]> 
24 
25    <script src="/o/0-global-theme/libs/leaflet/leaflet.js"></script> 
26    <script src="/o/strasbourg-int-theme/js/map.js"></script> 
27</@> 
28 
29<div class="seu-page-lieu"> 
30    <main class="seu-container"> 
31        <a href="#" class="add-favorites" 
32           data-type="1" 
33           data-title="${entry.getAlias(locale)}" 
34           data-url="${themeDisplay.getPortalURL()}${homeURL}lieu/-/entity/sig/${entry.getSIGid()}/${entry.getNormalizedAlias(locale)}" 
35           data-id="${entry.placeId}"> 
36            <span><@liferay_ui.message key="eu.add-to-favorite" /></span> 
37        </a> 
38        <h1>${entry.getAlias(locale)}</h1> 
39 
40        <div class="seu-flexbox"> 
41 
42            <div class="seu-container-left"> 
43 
44                <!-- Cartographie --> 
45                <div id="aroundme" class="widget" style="margin-bottom: 45px"> 
46                    <div id="aroundme__center" style="height: auto;"> 
47                        <div id="mapid" style="height: 320px" > 
48                            <div class="aroundme__ui__group" style="z-index: 401"> 
49                                <button class="aroundme__ui aroundme__ui--zoomin"></button> 
50                                <button class="aroundme__ui aroundme__ui--zoomout"></button> 
51                            </div> 
52                        </div> 
53                    </div> 
54                </div> 
55 
56                <!-- Horaires --> 
57                <#if entry.periods?has_content || entry.hasURLSchedule> 
58                    <div class="seu-wi--collapsing <#if !renderRequest.getAttribute("fromContactForm")?has_content>seu-first-opened</#if>"> 
59                        <button class="seu-toggle-collapse"> 
60                            <h2 class="schedule"><span><@liferay_ui.message key="eu.times" /></span></h2> 
61                        </button> 
62                        <div class="seu-collapsing-box"> 
63                            <#if !entry.hasURLSchedule> 
64                                <div class="seu-wi seu-wi-schedules"> 
65                                    <div class="tab-list"> 
66                                    </div> 
67                                    <div class="tab-content"> 
68                                        <!-- Jours suivants --> 
69                                        <h3 class="hidden"><@liferay_ui.message key="eu.place.next-days" /></h3> 
70                                        <div class="tab-title">${entry.getAlias(locale)}</div> 
71                                        <ul class="schedule-list"> 
72                                            <#assign daySchedulesMap = entry.getFollowingWeekSchedules(.now, locale) /> 
73                                            <#assign hasException = false /> 
74                                            <#list daySchedulesMap?keys as day> 
75                                                <!-- Correctif car suite à une modif on n'envoie plus une liste vide mais null, donc erreur freemarker --> 
76                                                <#if daySchedulesMap[day]?size != 1 || (daySchedulesMap[day]?size == 1 && daySchedulesMap[day][0]?? && daySchedulesMap[day][0]?has_content)> 
77                                                    <li> 
78                                                        <span>${day}</span> 
79                                                        <span> 
80                                                            <#list daySchedulesMap[day] as schedule> 
81                                                                <div> 
82                                                                    <#if schedule.isException() || schedule.isPublicHoliday()> 
83                                                                        <#assign hasException = true /> 
84                                                                        <#assign hasAnyException = true /> 
85                                                                    <#else> 
86                                                                        <#assign hasException = false /> 
87                                                                    </#if> 
88                                                                    <#if schedule.isClosed()> 
89                                                                        <#if hasException><span class="exception"></#if> 
90                                                                        <@liferay_ui.message key="eu.closed" /> 
91                                                                        <#if hasException></span></#if> 
92                                                                    <#elseif schedule.isAlwaysOpen()> 
93                                                                        <#if hasException><span class="exception"></#if> 
94                                                                        <@liferay_ui.message key="always-open" /> 
95                                                                        <#if hasException></span></#if> 
96                                                                    <#else> 
97                                                                        <#list schedule.openingTimes as openingTime> 
98                                                                            <div> 
99                                                                                <#if hasException><span class="exception"></#if> 
100                                                                                    ${openingTime.first} - ${openingTime.second} 
101                                                                                    <#if hasException></span></#if> 
102                                                                            </div> 
103                                                                            <#if schedule.comments[openingTime?index]?has_content> 
104                                                                            <div style="margin-top: -10px;<#if hasException>color: #F44336;</#if>">(${schedule.comments[openingTime?index]})</div> 
105                                                                        </#if> 
106                                                                        </#list> 
107                                                                    </#if> 
108                                                                </div> 
109                                                                <#if schedule.isException() || schedule.isPublicHoliday()> 
110                                                                    </span> 
111                                                        </#if> 
112                                                        </#list> 
113                                                        </span> 
114                                                    </li> 
115                                                </#if> 
116                                            </#list> 
117                                        </ul> 
118                                        <!-- Jours suivants pour les sous-lieux --> 
119                                        <#list entry.publishedSubPlaces as subPlace> 
120                                            <div class="tab-title">${subPlace.getName(locale)}</div> 
121                                            <ul class="schedule-list"> 
122                                                <#assign daySchedulesMap = subPlace.getFollowingWeekSchedules(.now, locale) /> 
123                                                <#list daySchedulesMap?keys as day> 
124                                                    <!-- Correctif car suite à une modif on n'envoie plus une liste vide mais null, donc erreur freemarker --> 
125                                                    <#if daySchedulesMap[day]?size != 1 || (daySchedulesMap[day]?size == 1 && daySchedulesMap[day][0]?? && daySchedulesMap[day][0]?has_content)> 
126                                                        <li> 
127                                                            <span>${day}</span> 
128                                                            <span> 
129                                                                <#list daySchedulesMap[day] as schedule> 
130                                                                    <div> 
131                                                                        <#if schedule.isException() || schedule.isPublicHoliday()> 
132                                                                            <#assign hasException = true /> 
133                                                                            <#assign hasAnyException = true /> 
134                                                                        <#else> 
135                                                                            <#assign hasException = false /> 
136                                                                        </#if> 
137                                                                        <#if schedule.isClosed()> 
138                                                                            <#if hasException><span class="exception"></#if> 
139                                                                            <@liferay_ui.message key="eu.closed" /> 
140                                                                            <#if hasException></span></#if> 
141                                                                        <#elseif schedule.isAlwaysOpen()> 
142                                                                            <#if hasException><span class="exception"></#if> 
143                                                                            <@liferay_ui.message key="always-open" /> 
144                                                                            <#if hasException></span></#if> 
145                                                                        <#else> 
146                                                                            <#list schedule.openingTimes as openingTime> 
147                                                                                <div> 
148                                                                                    <#if hasException><span class="exception"></#if> 
149                                                                                        ${openingTime.first} - ${openingTime.second} 
150                                                                                        <#if hasException></span></#if> 
151                                                                                </div> 
152                                                                                <#if schedule.comments[openingTime?index]?has_content> 
153                                                                                <div style="margin-top: -10px;<#if hasException>color: #F44336;</#if>">(${schedule.comments[openingTime?index]})</div> 
154                                                                            </#if> 
155                                                                            </#list> 
156                                                                        </#if> 
157                                                                    </div> 
158                                                                </#list> 
159                                                            </span> 
160                                                        </li> 
161                                                    </#if> 
162                                                </#list> 
163                                            </ul> 
164                                        </#list> 
165                                        <#if hasAnyException?has_content && hasAnyException> 
166                                            <!-- Message pour exceptions --> 
167                                            <span style="color: #F44336; font-weight: bold; font-size: 1.6rem;"><@liferay_ui.message key="eu.place.look-at-exceptionnal-schedule" /></span> 
168                                        </#if> 
169                                    </div> 
170                                    <!-- Période par défaut --> 
171                                    <#if entry.defaultPeriod?has_content> 
172                                        <div class="tab-content"> 
173                                            <h3 class="hidden">${entry.defaultPeriod.getName(locale)}</h3> 
174                                            <div class="tab-title">${entry.getAlias(locale)}</div> 
175                                            <ul class="schedule-list"> 
176                                                <#assign weekSchedules = entry.defaultPeriod.getWeekSchedule() /> 
177                                                <#assign day = 0 /> 
178                                                <#list weekSchedules as schedule> 
179                                                    <li> 
180                                                        <span><@liferay_ui.message key="jour-semaine${day}" /></span> 
181                                                        <span> 
182                                                            <#if schedule.isClosed()> 
183                                                                <@liferay_ui.message key="eu.closed" /> 
184                                                            <#elseif schedule.isAlwaysOpen()> 
185                                                                <@liferay_ui.message key="always-open" /> 
186                                                            <#else> 
187                                                                <#list schedule.openingTimes as openingTime> 
188                                                                    <div> 
189                                                                        ${openingTime.first} - ${openingTime.second} 
190                                                                    </div> 
191                                                                    <#if schedule.comments[openingTime?index]?has_content> 
192                                                                    <div style="margin-top: -10px">(${schedule.comments[openingTime?index]})</div> 
193                                                                </#if> 
194                                                                </#list> 
195                                                            </#if> 
196                                                        </span> 
197                                                    </li> 
198                                                    <#assign day = day + 1 /> 
199                                                </#list> 
200                                            </ul> 
201                                            <!-- Période par défaut pour les sous-lieux --> 
202                                            <#list entry.publishedSubPlaces as subPlace> 
203                                                <div class="tab-title">${subPlace.getName(locale)}</div> 
204                                                <ul class="schedule-list"> 
205                                                    <#assign weekSchedules = subPlace.defaultPeriod.getWeekSchedule(subPlace.subPlaceId) /> 
206                                                    <#assign day = 0 /> 
207                                                    <#list weekSchedules as schedule> 
208                                                        <li> 
209                                                            <span><@liferay_ui.message key="jour-semaine${day}" /></span> 
210                                                            <span> 
211                                                                <#if schedule.isClosed()> 
212                                                                    <@liferay_ui.message key="eu.closed" /> 
213                                                                <#elseif schedule.isAlwaysOpen()> 
214                                                                    <@liferay_ui.message key="always-open" /> 
215                                                                <#else> 
216                                                                    <#list schedule.openingTimes as openingTime> 
217                                                                        <div> 
218                                                                            ${openingTime.first} - ${openingTime.second} 
219                                                                        </div> 
220                                                                        <#if schedule.comments[openingTime?index]?has_content> 
221                                                                        <div style="margin-top: -10px">(${schedule.comments[openingTime?index]})</div> 
222                                                                    </#if> 
223                                                                    </#list> 
224                                                                </#if> 
225                                                            </span> 
226                                                        </li> 
227                                                        <#assign day = day + 1 /> 
228                                                    </#list> 
229                                                </ul> 
230                                            </#list> 
231                                        </div> 
232                                    </#if> 
233                                    <!-- Autres périodes --> 
234                                    <#list entry.nonDefaultPeriods as period> 
235                                        <div class="tab-content"> 
236                                            <h3 class="hidden">${period.getName(locale)} <div>${period.getDisplay(locale)}</div></h3> 
237                                            <div class="tab-title">${entry.getAlias(locale)}</div> 
238                                            <ul class="schedule-list"> 
239                                                <#assign weekSchedules = period.getWeekSchedule() /> 
240                                                <#assign day = 0 /> 
241                                                <#list weekSchedules as schedule> 
242                                                    <li> 
243                                                        <span><@liferay_ui.message key="jour-semaine${day}" /></span> 
244                                                        <span> 
245                                                            <div> 
246                                                                <#if schedule.isClosed()> 
247                                                                    <@liferay_ui.message key="eu.closed" /> 
248                                                                <#elseif schedule.isAlwaysOpen()> 
249                                                                    <@liferay_ui.message key="always-open" /> 
250                                                                <#else> 
251                                                                    <#list schedule.openingTimes as openingTime> 
252                                                                        <div> 
253                                                                            ${openingTime.first} - ${openingTime.second} 
254                                                                        </div> 
255                                                                        <#if schedule.comments[openingTime?index]?has_content> 
256                                                                        <div style="margin-top: -10px">(${schedule.comments[openingTime?index]})</div> 
257                                                                    </#if> 
258                                                                    </#list> 
259                                                                </#if> 
260                                                            </div> 
261                                                        </span> 
262                                                    </li> 
263                                                    <#assign day = day + 1 /> 
264                                                </#list> 
265                                            </ul> 
266                                            <!-- Autres Périodes pour les sous-lieux --> 
267                                            <#list entry.publishedSubPlaces as subPlace> 
268                                                <div class="tab-title">${subPlace.getName(locale)}</div> 
269                                                <ul class="schedule-list"> 
270                                                    <#assign weekSchedules = period.getWeekSchedule(subPlace.subPlaceId) /> 
271                                                    <#assign day = 0 /> 
272                                                    <#list weekSchedules as schedule> 
273                                                        <li> 
274                                                            <span><@liferay_ui.message key="jour-semaine${day}" /></span> 
275                                                            <span> 
276                                                                <div> 
277                                                                    <#if schedule.isClosed()> 
278                                                                        <@liferay_ui.message key="eu.closed" /> 
279                                                                    <#elseif schedule.isAlwaysOpen()> 
280                                                                        <@liferay_ui.message key="always-open" /> 
281                                                                    <#else> 
282                                                                        <#list schedule.openingTimes as openingTime> 
283                                                                            <div> 
284                                                                                ${openingTime.first} - ${openingTime.second} 
285                                                                            </div> 
286                                                                            <#if schedule.comments[openingTime?index]?has_content> 
287                                                                            <div style="margin-top: -10px">(${schedule.comments[openingTime?index]})</div> 
288                                                                        </#if> 
289                                                                        </#list> 
290                                                                    </#if> 
291                                                                </div> 
292                                                            </span> 
293                                                        </li> 
294                                                        <#assign day = day + 1 /> 
295                                                    </#list> 
296                                                </ul> 
297                                            </#list> 
298                                        </div> 
299                                    </#list> 
300                                </div> 
301                            </#if> 
302                            <div class="rte"> 
303                                <#if entry.hasURLSchedule> 
304                                    <p style="margin-bottom: 20px;"> 
305                                        <a href="${entry.getScheduleLinkURL(locale)}" target="_blank" title="${entry.getScheduleLinkName(locale)} (<@liferay_ui.message key="eu.new-window" />)"> 
306                                            <span class="seu-btn-text">${entry.getScheduleLinkName(locale)}</span> 
307                                        </a> 
308                                    </p> 
309                                </#if> 
310                                <#if entry.hasScheduleTable()> 
311                                    <p> 
312                                        <#assign assetVocabularyHelper = serviceLocator.findService("eu.strasbourg.utils.api.AssetVocabularyHelperService") /> 
313                                        <#list entry.types as type> 
314                                            <#if (assetVocabularyHelper.getCategoryProperty(type.categoryId, 'schedule') == 'true')> 
315                                                <#assign category = type /> 
316                                            </#if> 
317                                        </#list> 
318                                        <a href="${homeURL}horaires-lieux/-/schedules/category/${category.categoryId}" class="seu-btn-square--filled--second"> 
319                                            <span class="seu-btn-text"><@liferay_ui.message key="eu.see-all-schedule-of" /> ${category.getTitle(locale)?lower_case}</span> 
320                                        </a> 
321                                    </p> 
322                                </#if> 
323                                <#if !entry.hasURLSchedule> 
324                                    <!-- Liste des exceptions --> 
325                                    <#assign exceptions = entry.getPlaceScheduleExceptionFreeMarker(.now, true, locale) /> 
326                                    <#if exceptions?has_content || (hasAnyException?has_content && hasAnyException)> 
327                                        <#assign totalExceptionsCount = 0 /> 
328                                        <h3><@liferay_ui.message key="eu.exceptional-closings-openings" /></h3> 
329                                        <ul class="seu-dates-list"> 
330                                            <#list exceptions as exception> 
331                                                <#assign totalExceptionsCount++ /> 
332                                                <li> 
333                                                    <strong>${exception.getPeriodDisplay(locale)}</strong> : 
334                                                    <#if exception.isClosed()> 
335                                                        <@liferay_ui.message key="eu.closed" /> 
336                                                    <#else> 
337                                                        <#list exception.openingTimes as openingTime> 
338                                                            ${openingTime.first} - ${openingTime.second}<#sep>, </#sep> 
339                                                        </#list> 
340                                                    </#if> 
341                                                    - ${exception.description} 
342                                                </li> 
343                                            </#list> 
344                                            <#list entry.publishedSubPlaces as subPlace> 
345                                                <#assign exceptions = subPlace.getSubPlaceScheduleExceptionFreeMarker(.now, true, locale) /> 
346                                                <#if exceptions?has_content> 
347                                                    <#list exceptions as exception> 
348                                                        <#assign totalExceptionsCount++ /> 
349                                                        <li> 
350                                                            <strong>${subPlace.getName(locale)} - ${exception.getPeriodDisplay(locale)}</strong> : 
351                                                            <#if exception.isClosed()> 
352                                                                <@liferay_ui.message key="eu.closed" /> 
353                                                            <#else> 
354                                                                <#list exception.openingTimes as openingTime> 
355                                                                    ${openingTime.first} - ${openingTime.second}<#sep>, </#sep> 
356                                                                </#list> 
357                                                            </#if> 
358                                                            - ${exception.description} 
359                                                        </li> 
360                                                    </#list> 
361                                                </#if> 
362                                            </#list> 
363                                        </ul> 
364 
365                                        <#if (totalExceptionsCount > 5)> 
366                                            <div class="seu-line-left"> 
367                                                <button class="seu-see-more seu-btn-square seu-bordered seu-core"> 
368                                                    <span class="seu-flexbox"> 
369                                                        <span class="seu-btn-text seu-more"><@liferay_ui.message key="eu.see-more" /></span> 
370                                                        <span class="seu-btn-text seu-less"><@liferay_ui.message key="eu.see-less" /></span> 
371                                                        <span class="seu-btn-arrow"></span> 
372                                                    </span> 
373                                                </button> 
374                                            </div> 
375                                        </#if> 
376                                    </#if> 
377                                </#if> 
378 
379                                <#if entry.getExceptionalSchedule(locale)?has_content> 
380                                    <h3><@liferay_ui.message key="eu.exceptional-schedule" /></h3> 
381                                    ${entry.getExceptionalSchedule(locale)} 
382                                </#if> 
383                            </div> 
384                        </div> 
385                    </div> 
386                </#if> 
387 
388 
389                <!-- Présentation --> 
390                <#if entry.getPresentation(locale)?has_content> 
391                    <div class="seu-wi--collapsing <#if !entry.periods?has_content && !renderRequest.getAttribute("fromContactForm")?has_content>seu-first-opened</#if>"> 
392                        <button class="seu-toggle-collapse"> 
393                            <h2 class="description"><span><@liferay_ui.message key="eu.presentation" /></span></h2> 
394                        </button> 
395                        <div class="seu-collapsing-box"> 
396                            <div class="rte"> 
397                                ${entry.getPresentation(locale)} 
398                            </div> 
399                        </div> 
400                    </div> 
401                </#if> 
402 
403                <!-- Agenda --> 
404                <#assign placeEvents = EventLocalService.getCurrentAndFuturePublishedEventsFromPlace(entry.getSIGid()) /> 
405                <#if entry.displayEvents && placeEvents?has_content> 
406                    <div class="seu-wi--collapsing"> 
407                        <button class="seu-toggle-collapse"> 
408                            <h2 class="description"><span style="text-transform: uppercase;"><@liferay_ui.message key="agenda" /></span></h2> 
409                        </button> 
410                        <div class="seu-collapsing-box"> 
411                            <div class="seu-agenda-slider-container"> 
412                                <div class="seu-slider"> 
413                                    <#assign i=0 /> 
414                                    <#list placeEvents?sort_by("startDateFirstCurrentAndFuturePeriod") as event> 
415                                        <#if i == 5> 
416                                            <#break> 
417                                        </#if> 
418                                        <div class="seu-agenda-slider-item seu-has-ville"> 
419                                            <a href="${homeURL}evenement/-/entity/id/${event.eventId}/${event.getNormalizedTitle(locale)}" class="seu-link" title="${event.getTitle(locale)}"> 
420                                                <div class="seu-date"> 
421                                                    <div class="seu-date-sup"> 
422                                                        <#assign dates=event.getDateRange() /> 
423                                                        <#if dates[0]?string("yyyy-MM-dd") == dates[1]?string("yyyy-MM-dd")> 
424                                                            <span class="seu-date-prefix"><@liferay_ui.message key="eu.event.the" /></span> 
425                                                        <#else> 
426                                                            <span class="seu-date-prefix"><@liferay_ui.message key="eu.event.from-the" /></span> 
427                                                        </#if> 
428                                                        <span class="seu-date-start"></span> 
429                                                        <span class="seu-date-suffix"></span> 
430                                                    </div> 
431                                                    <div class="seu-date-end">${dates[0]?string['dd.MM']}</div> 
432                                                </div> 
433                                                <div class="seu-title dotme" data-dot="3" style="word-wrap: break-word;">${event.getTitle(locale)}</div> 
434                                                <div class="seu-ville"> 
435                                                    ${event.getPlaceAlias(locale)} 
436                                                    <#if event.getPlaceAddress(locale)?has_content> 
437                                                        - ${event.getPlaceAddress(locale)} 
438                                                    </#if> 
439                                                    - ${event.placeZipCode} ${event.getPlaceCity(locale)} 
440                                                </div> 
441                                                <div class="seu-lead dotme is-truncated" data-dot="3" style="word-wrap: break-word;">${event.getDescription(locale)?replace("<[^>]*>", "", "r")}</div> 
442                                            </a> 
443                                        </div> 
444                                        <#assign i++> 
445                                    </#list> 
446                                </div> 
447                                <div class="owl-nav"> 
448                                    <button class="seu-owl-prev"> 
449                                        <span class="seu-picto"></span> 
450                                    </button> 
451                                    <button class="seu-owl-next"> 
452                                        <span class="seu-picto"></span> 
453                                    </button> 
454                                </div> 
455                                <div class="seu-btn-line"> 
456                                    <a href="${homeURL}agenda?idSIGPlace=${entry.getSIGid()}" class="seu-btn-square seu-filled seu-second" title="<@liferay_ui.message key="eu.all-events" />"> 
457                                        <span class="seu-flexbox"> 
458                                            <span class="seu-btn-text"><@liferay_ui.message key="eu.all-events" /></span> 
459                                            <span class="seu-btn-arrow"></span> 
460                                        </span> 
461                                    </a> 
462                                </div> 
463                            </div> 
464                        </div> 
465                    </div> 
466                </#if> 
467 
468                <!-- Activités --> 
469                <#assign activityLocalService = serviceLocator.findService("eu.strasbourg.service.activity.service.ActivityLocalService") /> 
470                <#assign placeActivityAgenda = activityLocalService.getPlaceAgenda(entry.getSIGid(), locale) /> 
471                <#if placeActivityAgenda.periods?has_content> 
472                    <div class="seu-wi--collapsing"> 
473                        <button class="seu-toggle-collapse"> 
474                            <h2 class="more"><span><@liferay_ui.message key="eu.activity.activities" /></span></h2> 
475                        </button> 
476                        <div class="seu-collapsing-box"> 
477                            <div class="seu-wi seu-wi-schedules"> 
478                                <div class="tab-list"> 
479                                    <div class="tab-menu-rwd"> 
480                                        <#list placeActivityAgenda.periods as period> 
481                                            <button class="tab-toggle <#if period?is_first>current</#if>" data-tab-target="${period?index}"> 
482                                                ${period.periodName} 
483                                            </button> 
484                                        </#list> 
485                                    </div> 
486                                    <#list placeActivityAgenda.periods as period> 
487                                        <button class="tab-toggle <#if period?is_first>current</#if>" data-tab-target="${period?index}"> 
488                                            ${period.periodName} 
489                                        </button> 
490                                    </#list> 
491                                </div> 
492                                <#list placeActivityAgenda.periods as period> 
493                                    <div class="tab-content <#if period?is_first>tabbed</#if>" data-tab-index="${period?index}"> 
494                                        <h3 class="hidden">${period.periodName}</h3> 
495                                        <#list period.courses as course> 
496                                            <div style="margin-bottom: 20px"> 
497                                                <div class="tab-title">${course.courseName}</div> 
498                                                <div class="rte" style="margin-top: -5px; margin-bottom: 10px;"> 
499                                                    <a href="${homeURL}cours/-/entity/id/${course.courseId}"><@liferay_ui.message key="eu.see-detail" /></a> 
500                                                </div> 
501                                                <ul class="schedule-list" style="margin-bottom: 10px;"> 
502                                                    <#list 0..6 as day> 
503                                                        <#assign schedules = course.getSchedulesForDay(day) /> 
504                                                        <#if schedules?has_content> 
505                                                            <li> 
506                                                                <span><@liferay_ui.message key="${course.getDayName(day)}" /></span> 
507                                                                <span> 
508                                                                    <#list schedules as schedule> 
509                                                                        ${schedule.startTime} - ${schedule.endTime}<#sep><br></#sep> 
510                                                                    </#list> 
511                                                                </span> 
512                                                            </li> 
513                                                        </#if> 
514                                                    </#list> 
515                                                </ul> 
516                                            </div> 
517                                        </#list> 
518                                    </div> 
519                                </#list> 
520                            </div> 
521                        </div> 
522                    </div> 
523                </#if> 
524 
525                <!-- Informations complémentaires --> 
526                <#if entry.getAdditionalInformation(locale)?has_content> 
527                    <div class="seu-wi--collapsing"> 
528                        <button class="seu-toggle-collapse"> 
529                            <h2 class="more"><span><@liferay_ui.message key="eu.place.additional-information" /></span></h2> 
530                        </button> 
531                        <div class="seu-collapsing-box"> 
532                            <div class="rte"> 
533                                ${entry.getAdditionalInformation(locale)} 
534                            </div> 
535                        </div> 
536                    </div> 
537                </#if> 
538 
539                <!-- Médias --> 
540                <#if entry.documentsIds?has_content || entry.videos?has_content> 
541                    <div class="seu-wi--collapsing"> 
542                        <button class="seu-toggle-collapse"> 
543                            <h2 class="media"><span><@liferay_ui.message key="eu.place.medias" /></span></h2> 
544                        </button> 
545                        <div class="seu-collapsing-box"> 
546                            <#list entry.documentsIds?split(",") as fileId> 
547                                <#if fileId?has_content> 
548                                    <#assign url = fileEntryHelper.getFileEntryURL(fileId?number) /> 
549 
550                                    <#if url=""> 
551                                        <#continue> 
552                                    </#if> 
553 
554                                    <#assign title = fileEntryHelper.getFileTitle(fileId?number, locale) /> 
555                                    <#assign size = fileEntryHelper.getReadableFileEntrySize(fileId?number, locale) /> 
556                                    <#assign extension = fileEntryHelper.getFileExtension(fileId?number) /> 
557                                    <div class="seu-wi seu-media seu-wi-download"> 
558                                        <div class="seu-media-container"> 
559                                            <div class="seu-media-left"><div class="seu-media-picto"></div></div> 
560                                            <div class="seu-media-right"> 
561                                                <div class="seu-media-text"> 
562                                                    <div class="seu-media-title">${title}</div> 
563                                                    <p>${extension?upper_case} - ${size}</p> 
564                                                </div> 
565                                                <a href="${url}" target="_blank" class="seu-media-download seu-btn-square seu-filled seu-second" title="${title} (<@liferay_ui.message key="eu.new-window" />)"> 
566                                                    <div class="seu-btn-text-editable"> 
567                                                        <span class="seu-flexbox"> 
568                                                            <span class="seu-btn-text"><@liferay_ui.message key="download" /></span> 
569                                                            <span class="seu-btn-arrow">&nbsp;</span> 
570                                                        </span> 
571                                                    </div> 
572                                                </a> 
573                                            </div> 
574                                        </div> 
575                                    </div> 
576                                </#if> 
577                            </#list> 
578                            <#list entry.videos as video> 
579                                <div class="seu-wi seu-media seu-wi-embed"> 
580                                    <div class="seu-media-container"> 
581                                        <div class="seu-media-left"> 
582                                            <div class="seu-media-picto"></div> 
583                                        </div> 
584                                        <div class="seu-media-right"> 
585                                            <div class="seu-media-text"> 
586                                                <div class="seu-media-title">${video.getTitle(locale)}</div> 
587                                                <p class="seu-media-description">${video.getDescription(locale)}</p> 
588                                            </div> 
589                                        </div> 
590                                        <div class="seu-media-bottom"> 
591                                            <div class="seu-media-ratio"> 
592                                                ${video.getPlayer(locale)} 
593                                            </div> 
594                                        </div> 
595                                    </div> 
596                                </div> 
597                            </#list> 
598                        </div> 
599                    </div> 
600                </#if> 
601 
602                <!-- Accès --> 
603                <#if entry.getAccess(locale)?has_content> 
604                    <div class="seu-wi--collapsing"> 
605                        <button class="seu-toggle-collapse"> 
606                            <h2 class="geoloc"><span><@liferay_ui.message key="access" /></span></h2> 
607                        </button> 
608                        <div class="seu-collapsing-box"> 
609                            <div class="rte"> 
610                                ${entry.getAccess(locale)} 
611                            </div> 
612                        </div> 
613                    </div> 
614                </#if> 
615 
616                <!-- Accès pour handicapés --> 
617                <#if entry.hasAnyAccessForDisabled() || entry.getAccessForDisabled(locale)?has_content> 
618                    <div class="seu-wi--collapsing"> 
619                        <button class="seu-toggle-collapse"> 
620                            <h2 class="handicap"><span><@liferay_ui.message key="eu.access-for-disabled" /></span></h2> 
621                        </button> 
622                        <div class="seu-collapsing-box"> 
623                            <#if entry.hasAnyAccessForDisabled()> 
624                                <div class="seu-svg-list"> 
625                                    <#if entry.accessForWheelchair> 
626                                        <div class="seu-picto seu-picto-wheelchair" title="<@liferay_ui.message key='eu.access-for-wheelchair' />"></div> 
627                                    </#if> 
628 
629                                    <#if entry.accessForDeaf> 
630                                        <div class="seu-picto seu-picto-deaf" title="<@liferay_ui.message key='eu.access-for-deaf' />"></div> 
631                                    </#if> 
632 
633                                    <#if entry.accessForBlind> 
634                                        <div class="seu-picto seu-picto-blind" title="<@liferay_ui.message key='eu.access-for-blind' />"></div> 
635                                    </#if> 
636 
637                                    <#if entry.accessForDeficient> 
638                                        <div class="seu-picto seu-picto-mental" title="<@liferay_ui.message key='eu.access-for-deficient' />"></div> 
639                                    </#if> 
640 
641                                    <#if entry.accessForElder> 
642                                        <div class="seu-picto seu-picto-pmr" title="<@liferay_ui.message key='eu.access-for-elder' />"></div> 
643                                    </#if> 
644                                </div> 
645                            </#if> 
646                            <#if entry.getAccessForDisabled(locale)?has_content> 
647                                <div class="rte"> 
648                                    ${entry.getAccessForDisabled(locale)} 
649                                </div> 
650                            </#if> 
651                        </div> 
652                    </div> 
653                </#if> 
654 
655                <!-- Accès --> 
656                <#if entry.getServiceAndActivities(locale)?has_content> 
657                    <div class="seu-wi--collapsing"> 
658                        <button class="seu-toggle-collapse"> 
659                            <h2 class="services"><span><@liferay_ui.message key="eu.services-and-activities" /></span></h2> 
660                        </button> 
661                        <div class="seu-collapsing-box"> 
662                            <div class="rte"> 
663                                ${entry.getServiceAndActivities(locale)} 
664                            </div> 
665                        </div> 
666                    </div> 
667                </#if> 
668 
669                <!-- Caractéristiques --> 
670                <#if entry.getCharacteristics(locale)?has_content> 
671                    <div class="seu-wi--collapsing"> 
672                        <button class="seu-toggle-collapse"> 
673                            <h2 class="caracteristiques"><span><@liferay_ui.message key="eu.features" /></span></h2> 
674                        </button> 
675                        <div class="seu-collapsing-box"> 
676                            <div class="rte"> 
677                                ${entry.getCharacteristics(locale)} 
678                            </div> 
679                        </div> 
680                    </div> 
681                </#if> 
682 
683                <!-- Contact --> 
684                <#if entry.mail?has_content> 
685                    <div class="seu-wi--collapsing <#if renderRequest.getAttribute("fromContactForm")?has_content && renderRequest.getAttribute("fromContactForm")>seu-first-opened</#if>"> 
686                        <button class="seu-toggle-collapse"> 
687                            <h2 class="contact"><span><@liferay_ui.message key="eu.contact" /></span></h2> 
688                        </button> 
689                        <div class="seu-collapsing-box white-box"> 
690                            <div class="rte"> 
691                                <@liferay_portlet.actionURL var="contactURL" name="contact"> 
692                                    <@liferay_portlet.param name="classPK" value="${entry.getPlaceId()}" /> 
693                                    <@liferay_portlet.param name="to" value="${entry.mail}" /> 
694                                    <@liferay_portlet.param name="title" value="${entry.getAlias(locale)}" /> 
695                                    <@liferay_portlet.param name="type" value="Place" /> 
696                                </@liferay_portlet.actionURL> 
697 
698                                <form id="contactForm" action="${contactURL}#contactForm" name="contactForm" method="post" class="seu-wi seu-wi-contact-form col-md-8"> 
699                                    <@liferay_ui.error key="all-fields-required" message="eu.all-fields-required" targetNode="#contactForm" /> 
700                                    <@liferay_ui.error key="invalid-mail" message="eu.invalid-mail" targetNode="#contactForm" /> 
701                                    <@liferay_ui.error key="friendlycaptcha-error" message="eu.friendlycaptcha-error" targetNode="#contactForm" /> 
702 
703                                    <#if renderRequest.getAttribute("mailSent")?has_content && renderRequest.getAttribute("mailSent")> 
704                                        <p class="mail-success"> 
705                                            <@liferay_ui.message key="eu.mail-success" /> 
706                                        </p> 
707                                    </#if> 
708 
709                                    <div class="inline-group"> 
710                                        <div class="widget widget-required"> 
711                                            <div class="title"> 
712                                                <label for="_eu_strasbourg_portlet_entity_detail_EntityDetailPortlet_lastName"><@liferay_ui.message key="contact.lastname" /></label> 
713                                            </div> 
714                                            <div class="content"> 
715                                                <input name="_eu_strasbourg_portlet_entity_detail_EntityDetailPortlet_lastName" aria-required="true" id="_eu_strasbourg_portlet_entity_detail_EntityDetailPortlet_lastName" type="text" placeholder="<@liferay_ui.message key="contact.your-lastname" />" value="${renderRequest.getAttribute("lastName")!""}"> 
716                                            </div> 
717                                        </div> 
718                                        <div class="widget widget-required"> 
719                                            <div class="title"> 
720                                                <label for="prenom"><@liferay_ui.message key="contact.firstname" /></label> 
721                                            </div> 
722                                            <div class="content"> 
723                                                <input name="_eu_strasbourg_portlet_entity_detail_EntityDetailPortlet_firstName" aria-required="true" id="_eu_strasbourg_portlet_entity_detail_EntityDetailPortlet_firstName" type="text" placeholder="<@liferay_ui.message key="contact.your-firstname" />" value="${renderRequest.getAttribute("firstName")!""}"> 
724                                            </div> 
725                                        </div> 
726                                    </div> 
727                                    <div class="widget widget-required"> 
728                                        <div class="title"> 
729                                            <label for="_eu_strasbourg_portlet_entity_detail_EntityDetailPortlet_email"><@liferay_ui.message key="contact.mail" /></label> 
730                                        </div> 
731                                        <div class="content"> 
732                                            <input name="_eu_strasbourg_portlet_entity_detail_EntityDetailPortlet_email" aria-required="true" id="_eu_strasbourg_portlet_entity_detail_EntityDetailPortlet_email" type="text" placeholder="<@liferay_ui.message key="contact.your-mail" />" value="${renderRequest.getAttribute("email")!""}"> 
733                                        </div> 
734                                    </div> 
735                                    <div class="widget widget-required"> 
736                                        <div class="title"> 
737                                            <label for="_eu_strasbourg_portlet_entity_detail_EntityDetailPortlet_message"><@liferay_ui.message key="contact.request" /></label> 
738                                        </div> 
739                                        <div class="content"> 
740                                            <textarea name="_eu_strasbourg_portlet_entity_detail_EntityDetailPortlet_message" id="_eu_strasbourg_portlet_entity_detail_EntityDetailPortlet_message" placeholder="<@liferay_ui.message key="contact.your-message" />" rows="5">${renderRequest.getAttribute("message")!""}</textarea> 
741                                        </div> 
742                                    </div> 
743                                    <div> 
744                                        <label for="_eu_strasbourg_portlet_entity_detail_EntityDetailPortlet_notificationEmail"> 
745 
746                                            <input type="checkbox" class="notification-email" 
747                                                   name="_eu_strasbourg_portlet_entity_detail_EntityDetailPortlet_notificationEmail" id="_eu_strasbourg_portlet_entity_detail_EntityDetailPortlet_notificationEmail" checked>&nbsp;<@liferay_ui.message key="eu.do-you-want-a-notification" /> 
748                                        </label> 
749                                    </div> 
750                                    <div style="margin: 20px 0;" class="frc-captcha" 
751                                         data-lang="${locale.getLanguage()}" 
752                                         data-puzzle-endpoint="${propsUtil.get('eu.strasbourg.friendlycaptcha.puzzle.url')}" 
753                                         data-sitekey="${propsUtil.get('eu.strasbourg.friendlycaptcha.public')}"></div> 
754                                    <div style="padding-top: 20px; padding-bottom: 20px;"> 
755                                        <@liferay_ui.message key="contact.default-privacy" /> 
756                                    </div> 
757                                    <div class="buttons submit"> 
758                                        <div class="SubmitWidget widget submit-button" style="min-width: 150px;"> 
759                                            <div class="content"><button name="submit" value="<@liferay_ui.message key="send" />"><@liferay_ui.message key="send" /></button></div> 
760                                        </div> 
761                                    </div> 
762                                </form> 
763                            </div> 
764                        </div> 
765                    </div> 
766                </#if> 
767            </div> 
768 
769 
770            <div class="seu-container-right"> 
771                <#if entry.imagesURLs?has_content> 
772                    <div class="seu-wi-slideNpop"> 
773                        <div class="slide"> 
774                            <ul class="slider"> 
775                                <#list entry.imageIds?split(",") as imageId> 
776                                    <#assign imageURL = fileEntryHelper.getFileEntryURL(imageId?number) /> 
777                                    <#assign title = fileEntryHelper.getFileTitle(imageId?number, locale) /> 
778                                    <#assign legend = fileEntryHelper.getImageLegend(imageId?number, locale) /> 
779                                    <#assign copyright = fileEntryHelper.getImageCopyright(imageId?number, locale) /> 
780                                    <li style="background-image: url(${imageURL});"  data-title="${title}" data-description="${legend} <#if copyright?has_content>&copy; ${copyright}</#if>"> 
781                                        <img src="${imageURL}" alt="${title}"> 
782                                    </li> 
783                                </#list> 
784                            </ul> 
785                            <div class="owl-nav"> 
786                                <button class="seu-owl-prev disabled"> 
787                                    <span class="seu-picto"></span> 
788                                </button> 
789                                <button class="seu-owl-next"> 
790                                    <span class="seu-picto"></span> 
791                                </button> 
792                            </div> 
793                        </div> 
794                        <div class="pop"> 
795                            <div class="pop-box"> 
796                                <div class="pop-head"> 
797                                    <div class="pop-title dotme">Test de titre</div> 
798                                    <button class="pop-close"></button> 
799                                </div> 
800                                <div class="owl-nav"> 
801                                    <button class="seu-owl-prev disabled"> 
802                                        <span class="seu-picto"></span> 
803                                    </button> 
804                                    <button class="seu-owl-next"> 
805                                        <span class="seu-picto"></span> 
806                                    </button> 
807                                </div> 
808                                <div class="fill"></div> 
809                                <div class="pop-foot"> 
810                                    <div class="pop-description dotme">Test description</div> 
811                                    <div class="pop-pager"> 
812                                        <div class="pop-current"></div> 
813                                        <div class="pop-total"></div> 
814                                    </div> 
815                                </div> 
816                            </div> 
817                            <div class="pop-area"> 
818 
819                            </div> 
820                        </div> 
821                    </div> 
822                </#if> 
823                <div class="seu-location-infos"> 
824                    <#if entry.isEnabled()> 
825                        <#assign occupationState = entry.getRealTime() /> 
826                        <div class="seu-crowded-flexbox"> 
827                            <div class="flex-left"> 
828                                <#assign isSwimmingPool = entry.isSwimmingPool() /> 
829                                <#assign isIceRink = entry.isIceRink() /> 
830                                <#assign isMairie = entry.isMairie() /> 
831                                <#assign isParking = entry.isParking() /> 
832                                <#assign isVelhopStation = entry.isVelhopStation() /> 
833                                <#if isSwimmingPool || isIceRink > 
834                                    <h3><@liferay_ui.message key="live-frequentation" /></h3> 
835                                <#elseif isMairie> 
836                                    <h3><@liferay_ui.message key="estimated-time" /></h3> 
837                                <#elseif isParking> 
838                                    <h3><@liferay_ui.message key="live-occupation" /></h3> 
839                                <#elseif isVelhopStation> 
840                                    <h3><@liferay_ui.message key="live-disponibility" /></h3> 
841                                </#if> 
842                            </div> 
843                            <div class="flex-right"> 
844                                <!-- green orange red black --> 
845                                <div class="crowded-amount ${occupationState.cssClass}" <#if isMairie> style="font-size: 1.5rem"</#if>> 
846                                    <#if isSwimmingPool || isIceRink || isMairie> 
847                                        ${occupationState.occupationLabel} 
848                                    <#elseif isParking || isVelhopStation> 
849                                        ${occupationState.available} 
850                                    </#if> 
851                                </div> 
852                            </div> 
853                        </div> 
854                        <div class="crowded-caption"> 
855                            <#if isSwimmingPool || isIceRink || isMairie> 
856                                <@liferay_ui.message key="${occupationState.label}" /> 
857                            <#elseif isParking> 
858                                <@liferay_ui.message key="eu.place.available-spots" /> ${occupationState.available} 
859                            <#elseif isVelhopStation> 
860                                <@liferay_ui.message key="eu.place.available-velhop" /> ${occupationState.available} 
861                            </#if> 
862                        </div> 
863                        <!-- ajout post covid : affichage capacité totale --> 
864                        <#if isSwimmingPool > 
865                            <div class="crowded-caption"> 
866                                <@liferay_ui.message key="eu.place.total-capacity" /> ${occupationState.capacity} 
867                            </div> 
868                        </#if> 
869                        <div class="crowded-fyi"> 
870                            <#if isSwimmingPool> 
871                                <@liferay_ui.message key="live-occupation-explanation" /> 
872                            <#elseif isMairie> 
873                                <@liferay_ui.message key="estimated-time-explanation" /> 
874                            <#elseif isParking> 
875                                <@liferay_ui.message key="eu.place.total-capacity" /> ${occupationState.capacity} 
876                            <#elseif isIceRink> 
877                                <@liferay_ui.message key="live-ice-rink-occupation-explanation" /> 
878                            </#if> 
879                        </div> 
880                    </#if> 
881 
882                    <h3><@liferay_ui.message key="eu.place.address-details" /></h3> 
883                    <div class="rte"> 
884                        <p> 
885                            <#if entry.addressStreet?has_content> 
886                                ${entry.addressStreet} <br> 
887                            </#if> 
888                            <#if entry.addressComplement?has_content> 
889                                ${entry.addressComplement} <br> 
890                            </#if> 
891                            <#if entry.addressDistribution?has_content> 
892                                ${entry.addressDistribution} <br> 
893                            </#if> 
894                            ${entry.addressZipCode} ${entry.getCity(locale)} 
895                        </p> 
896                        <#if entry.phone?has_content> 
897                            <p> 
898                                <@liferay_ui.message key="phone" /> : ${entry.phone} 
899                            </p> 
900                        </#if> 
901                        <#if entry.getSiteLabel(locale)?has_content && entry.getSiteURL(locale)?has_content> 
902                            <p> 
903                                <a href="${entry.getSiteURL(locale)}" class="seu-external" title="${entry.getSiteLabel(locale)} (<@liferay_ui.message key="eu.new-window" />)" target="_blank">${entry.getSiteLabel(locale)}</a> 
904                            </p> 
905                        </#if> 
906                        <#if entry.getFacebookLabel(locale)?has_content && entry.getFacebookURL(locale)?has_content> 
907                            <p> 
908                                <a href="${entry.getFacebookURL(locale)}" class="seu-external" title="${entry.getFacebookLabel(locale)} (<@liferay_ui.message key="eu.new-window" />)" target="_blank">${entry.getFacebookLabel(locale)}</a> 
909                            </p> 
910                        </#if> 
911                        <#if entry.getInstagramLabel(locale)?has_content && entry.getInstagramURL(locale)?has_content> 
912                            <p> 
913                                <a href="${entry.getInstagramURL(locale)}" class="seu-external" title="${entry.getInstagramLabel(locale)} (<@liferay_ui.message key="eu.new-window" />)" target="_blank">${entry.getInstagramLabel(locale)}</a> 
914                            </p> 
915                        </#if> 
916                    </div> 
917                </div> 
918            </div> 
919        </div> 
920    </main> 
921</div> 
922 
923<script type="module" src="/o/0-global-theme/libs/friendlycaptcha/widget.module.min.js" async defer ></script> 
924<script nomodule src="/o/0-global-theme/libs/friendlycaptcha/widget.min.js" async defer></script> 
925 
926<style> 
927    .lfr-alert-container { 
928        position: static; 
929        padding: 40px; 
930        margin-bottom: 25px; 
931        background: #EF5350; 
932
933 
934    .lfr-alert-container .lfr-alert-wrapper { 
935        margin-bottom: 0; 
936        padding: 0; 
937        height: auto !important; 
938
939 
940    .lfr-alert-container .lfr-alert-wrapper + .lfr-alert-wrapper { 
941        margin-top: 15px; 
942
943 
944    .lfr-alert-container .alert-danger { 
945        background: none; 
946        border: none; 
947        margin: 0; 
948        padding: 0; 
949        color: white; 
950        line-height: 25px 
951
952 
953    .lfr-alert-container .alert-danger button, 
954    .lfr-alert-container .alert-danger .lead { 
955        display: none; 
956
957 
958    .mail-success { 
959        background: #4CAF50; 
960        color: white; 
961        padding: 40px; 
962
963 
964    @media only screen and (max-width: 767px){ 
965        #aroundme .aroundme__ui__group { 
966            height: calc(100% - 20px); 
967
968
969</style> 
970<#if entry.imageURL?has_content> 
971    <script> 
972        if ($('.region-banner').length == 0) { 
973            var bannerHtml = '<div class="region-banner"></div>'; 
974            $('.region-post-header').addClass('has-banner').prepend(bannerHtml); 
975
976    </script> 
977    <style> 
978        .region-banner { 
979            background-image: url(${entry.imageURL}) !important; 
980
981    </style> 
982</#if>