Errorea gertatu da txantiloia prozesatzerakoan.
Java method "com.sun.proxy.$Proxy675.getCalendarBooking(long)" threw an exception when invoked on com.sun.proxy.$Proxy675 object "com.liferay.calendar.service.impl.CalendarBookingLocalServiceImpl@7b7289a"; see cause exception in the Java stack trace. ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign calendarBooking = CalendarBoo... [in template "20907#20945#44248578" at line 38, column 5] ----
1<#assign HttpUtil = staticUtil["com.liferay.portal.kernel.util.HttpUtil"] />
2<#assign url = themeDisplay.getURLPortal()+themeDisplay.getURLCurrent()>
3<#assign calendarBookingId = HttpUtil.getParameter(url,"entryId")>
4<#assign instanceIndex = HttpUtil.getParameter(url,"instanceIndex")>
5<#assign parameters = HttpUtil.getParameterMap(url)>
6<#list parameters as key, parameter>
7 <#if key?contains("entryId") && parameter[0]!="">
8 <#assign calendarBookingId = parameter[0]>
9 <#elseif key?contains("instanceIndex") && parameter[0]!="">
10 <#assign instanceIndex = parameter[0]>
11 </#if>
12</#list>
13
14<#assign BuscadorAgendaService = serviceLocator.findService("net.izfe.gipuzkoa.agenda.buscador.api.BuscadorAgendaService") />
15<#assign CalendarBookingLocalService = serviceLocator.findService("com.liferay.calendar.service.CalendarBookingLocalService") />
16<#assign currentCompleteURL = themeDisplay.getPortalURL() + themeDisplay.getURLCurrent() />
17
18<#assign calendarBookingIdNumber = -1>
19<#attempt>
20 <#if calendarBookingId != "" >
21 <#assign calendarBookingIdNumber = calendarBookingId?number>
22 </#if>
23<#recover>
24 <#assign calendarBookingIdNumber = -1>
25</#attempt>
26
27<#assign instanceIndexNumber = -1>
28<#attempt>
29 <#if instanceIndex != "" >
30 <#assign instanceIndexNumber = instanceIndex?number>
31 </#if>
32<#recover>
33 <#assign instanceIndexNumber = -1>
34</#attempt>
35
36
37<#if calendarBookingIdNumber != -1 >
38 <#assign calendarBooking = CalendarBookingLocalService.getCalendarBooking(calendarBookingIdNumber) />
39 <#if instanceIndexNumber != -1 >
40 <#assign evento = BuscadorAgendaService.getEvento(calendarBookingIdNumber, instanceIndexNumber, themeDisplay.getLocale(), themeDisplay.getPortalURL()) />
41 <#else>
42 <#assign evento = BuscadorAgendaService.getEvento(calendarBookingIdNumber, themeDisplay.getLocale(), themeDisplay.getPortalURL()) />
43 </#if>
44 <#assign images_folder = themeDisplay.getPathThemeImages() />
45
46 <@liferay_util["html-top"]>
47 <#if evento.title?has_content >
48 <meta property="og:title" content='${evento.title}'>
49 </#if>
50 <#if evento.imagenPath?has_content >
51 <meta property="og:image" content='${evento.imagenPath}'>
52 </#if>
53 <#if evento.direccion?has_content >
54 <meta property="og:description" content='${evento.direccion}'>
55 </#if>
56 <meta property="og:url" content='${currentCompleteURL}'>
57 </@>
58
59 <div class="container mt-4 mb-4">
60 <div class="row">
61 <div class="col-12 col-md-8">
62 <h2 class="izfe-semibold mb-4">
63 ${evento.title}
64 </h2>
65
66 <!-- SEPARAR FECHAS Y HORAS-->
67
68 <#attempt>
69 <#assign fechaInicio = evento.getStartDate() />
70 <#recover>
71 <#assign fechaInicio = "" />
72 </#attempt>
73
74 <#attempt>
75 <#assign horaInicio = evento.getStartOnlyTime() />
76 <#recover>
77 <#assign horaInicio = "" />
78 </#attempt>
79
80 <#attempt>
81 <#assign fechaFin = evento.getEndDate() />
82 <#recover>
83 <#assign fechaFin = "" />
84 </#attempt>
85
86 <#attempt>
87 <#assign horaFin = evento.getEndOnlyTime() />
88 <#recover>
89 <#assign horaFin = "" />
90 </#attempt>
91
92 <div class="izfe-bg-blue-dark p-2">
93 <#if fechaInicio == fechaFin >
94 <div class="d-flex align-items-center ml-3">
95 <div class="izfe-icon-calendar-time-white"></div>
96 <p class="text-white izfe-semibold mb-0 ml-2 izfe-h4">
97
98 <#if fechaInicio != "" >
99 <span class="mr-1">
100 ${fechaInicio}
101 </span>
102 </#if>
103
104 <#if fechaFin != "" && fechaFin != fechaInicio >
105 -
106 <span class="ml-1">
107 ${fechaFin}
108 </span>
109 <#elseif !evento.isAllDay()>
110 <span class="ml-3 mr-1">
111 ${horaInicio}
112 </span>
113 -
114 <span class="ml-1">
115 ${horaFin}
116 </span>
117 </#if>
118 </p>
119 </div>
120 <#else>
121 <div class="d-flex align-items-center ml-3">
122 <div class="izfe-icon-calendar-time-white"></div>
123 <p class="text-white izfe-semibold mb-0 ml-2 izfe-h4">
124 ${fechaInicio}
125 </p>
126 <span class="text-white izfe-semibold ml-2 mr-2">-</span>
127 <p class="text-white izfe-semibold mb-0 izfe-h4">
128 ${fechaFin}
129 </p>
130 </div>
131 </#if>
132 </div>
133
134 <#if evento.localizacion?has_content || evento.direccion?has_content>
135 <div class="izfe-evento-localizacion-direccion d-flex align-items-center pl-3 pr-3 pt-2 pb-2">
136 <div class="d-flex flex-column flex-lg-row align-items-lg-center">
137 <#if evento.urlDireccion != "">
138 <a class="ml-2 d-flex align-items-center" href="${evento.urlDireccion}" target="_blank">
139 <div class="izfe-icon-ubicacion-blue"></div>
140 <p class="izfe-semibold mb-0 ml-2 izfe-h5">
141 <#if evento.direccion?has_content >
142 ${evento.direccion}
143 </#if>
144 <#if evento.direccion?has_content && evento.localizacion?has_content>
145 <span class="ml-1 mr-1">/</span>
146 </#if>
147 <#if evento.localizacion?has_content >
148 ${evento.localizacion}
149 </#if>
150 </p>
151 </a>
152 <#else>
153 <div class="ml-2 d-flex align-items-center">
154 <div class="izfe-icon-ubicacion"></div>
155 <p class="izfe-semibold mb-0 ml-2 izfe-h5">
156 <#if evento.direccion?has_content >
157 ${evento.direccion}</p>
158 </#if>
159 <#if evento.direccion?has_content && evento.localizacion?has_content>
160 <span class="ml-1 mr-1">/</span>
161 </#if>
162 <#if evento.localizacion?has_content >
163 ${evento.localizacion}
164 </#if>
165 </p>
166 </div>
167 </#if>
168 </div>
169 </div>
170 </#if>
171
172 <div class="row mt-4">
173 <div class="col-12" id="izfe-evento-descripcion">
174 <#if evento.descripcion != "">
175 ${evento.descripcion}
176 <#-- ${HtmlUtil.render(evento.descripcion)} -->
177 </#if>
178 </div>
179 </div>
180 </div>
181
182 <div class="col-12 col-md-4">
183 <#attempt>
184 <#if evento.imagenPath != "" >
185 <img
186 alt="${evento.title?replace('"',' ')}"
187 title="${evento.title?replace('"',' ')}"
188 class="w-100 mb-3"
189 src="${evento.imagenPath}"
190 />
191 <#else>
192 <img
193 alt="img-not-found"
194 title="img-not-found"
195 class="w-100"
196 src="${images_folder}/izfe/img-not-found.png"
197 />
198 </#if>
199 <#recover>
200
201 </#attempt>
202
203
204 <#assign listaCategorias = evento.listaCategorias />
205
206 <#if listaCategorias?has_content >
207 <div class="d-flex flex-wrap">
208 <#list listaCategorias as categoria >
209 <p class="text-blue-second text-uppercase mb-0 mr-2">
210 ${categoria.getName()}
211 </p>
212 </#list>
213 </div>
214
215 <hr/>
216 </#if>
217
218 <#if evento.webEvento != "" >
219 <a class="izfe-btn-blue d-block text-center" href="${evento.webEvento}" target="_blank">
220 <@liferay.language key="DGN.mas-informacion-evento" />
221 </a>
222 </#if>
223 </div>
224 </div>
225
226
227
228 <div class="row mt-4 mb-4" id="izfe-evento-relacionados">
229 <#assign categoriasEventoActual = evento.listaCategorias />
230 <#assign categoriasIds = [] />
231
232 <#if categoriasEventoActual?has_content >
233 <#list categoriasEventoActual as categoriaEventoActual >
234 <#assign categoriasIds = categoriasIds + [categoriaEventoActual.categoryId] />
235 </#list>
236 </#if>
237
238
239 <#assign eventosRelacionados = BuscadorAgendaService.listaProximosEventos(themeDisplay.getCompanyId(), themeDisplay.getLocale(), themeDisplay.getPortalURL(), categoriasIds,
240 3, [themeDisplay.getLayout().getGroupId()]) />
241
242 <#if eventosRelacionados?has_content>
243 <#assign mostrarTituloRelacionados = true>
244 <#assign contadorRelacionados = 0 >
245
246 <#list eventosRelacionados as eventoRelacionado>
247 <#if eventoRelacionado.calendarBookingId != evento.calendarBookingId >
248
249 <#attempt>
250 <#assign fechaInicioRelacionado = eventoRelacionado.getStartDate() />
251 <#recover>
252 <#assign fechaInicioRelacionado = "" />
253 </#attempt>
254
255 <#attempt>
256 <#assign horaInicioRelacionado = eventoRelacionado.getStartOnlyTime() />
257 <#recover>
258 <#assign horaInicioRelacionado = "" />
259 </#attempt>
260
261 <#attempt>
262 <#assign fechaFinRelacionado = eventoRelacionado.getEndDate() />
263 <#recover>
264 <#assign fechaFinRelacionado = "" />
265 </#attempt>
266
267 <#attempt>
268 <#assign horaFinRelacionado = eventoRelacionado.getEndOnlyTime() />
269 <#recover>
270 <#assign horaFinRelacionado = "" />
271 </#attempt>
272
273
274 <#if mostrarTituloRelacionados >
275 <div class="col-12">
276 <h3 class="izfe-semibold mb-3">
277 <@liferay.language key="DGN.otros-eventos"/>
278 </h3>
279 </div>
280 </#if>
281
282 <#if contadorRelacionados < 3 >
283 <div class="izfe-agenda-relacionado col-12 col-lg-4 mb-3 mb-lg-0">
284 <#assign urlRelacionado="/agenda/evento?entryId="+eventoRelacionado.calendarBookingId />
285 <#if eventoRelacionado.isRecurring() >
286 <#assign urlRelacionado=urlRelacionado+"&instanceIndex=" + eventoRelacionado.getInstanceIndex() />
287 </#if>
288 <a href="${urlRelacionado}">
289 <div class="izfe-bg-blue-dark-second eventoRelacionado p-2 ">
290 <div class="text-white d-flex align-items-center">
291 <span class="d-none">
292 ${fechaInicioRelacionado} - ${fechaFinRelacionado}
293
294 </span>
295 <#if fechaInicioRelacionado != "" >
296 <p class="small text-white mr-1">
297 ${fechaInicioRelacionado}
298 </p>
299 </#if>
300 <#if fechaFinRelacionado != "" && fechaFinRelacionado != fechaInicioRelacionado >
301 <p>-</p>
302 <p class="small text-white ml-1">
303 ${fechaFinRelacionado}
304 </p>
305 <#else>
306 <p class="small text-white ml-2 mr-1">
307 ${horaInicioRelacionado}
308 </p>
309 <p>-</p>
310 <p class="small text-white ml-1">
311 ${horaFinRelacionado}
312 </p>
313 </#if>
314 </div>
315 <h3 class="text-white izfe-h4">${eventoRelacionado.title}</h3>
316 <p class="small text-white">${eventoRelacionado.localizacion}</p>
317 </div>
318 </a>
319 </div>
320 </#if>
321 <#assign contadorRelacionados++ />
322 <#assign mostrarTituloRelacionados = false />
323 </#if>
324 </#list>
325 </#if>
326 </div>
327 </div>
328
329
330 <style>
331 #izfe-evento-descripcion *{
332 font-family: 'Poppins', Helvetica, Arial, sans-serif !important;
333 font-size: 15px !important;
334 line-height: 20px;
335 }
336 #izfe-evento-relacionados a{
337 text-decoration: none !important;
338 }
339 #izfe-evento-relacionados a:hover *{
340 opacity: .7;
341 }
342
343 #izfe-evento-relacionados .eventoRelacionado {
344 min-height: 175px;
345 }
346 .izfe-evento-localizacion-direccion{
347 border: 1.5px solid #004996;
348 }
349
350 .izfe-float-left{
351 float: left;
352 }
353 .izfe-float-right{
354 float: left;
355 }
356 </style>
357</#if>