S'ha produït un error mentre es processava la plantilla.
Java method "com.educaixa.common.impl.EduCaixaCommonImpl.getRelatedItinerancia(String, com.liferay.portal.kernel.theme.ThemeDisplay)" threw an exception when invoked on com.educaixa.common.impl.EduCaixaCommonImpl object "com.educaixa.common.impl.EduCaixaCommonImpl@40615da8"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign itinerances = UtilsService.ge...  [in template "10154#10192#FORMACION_PROFESORADO" at line 65, column 1]
----
1<#-- get services --> 
2<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") /> 
3<#assign UtilsService = serviceLocator.findService("com.educaixa.common.service.EduCaixaCommonService")/> 
4<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
5<#assign dLFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") /> 
6<#assign valoracionesDisplay = serviceLocator.findService("com.educaixa.services.service.RatingStatsLocalService")/> 
7<#assign LiteralsToolsServiceUtil = serviceLocator.findService("com.aqua.literals.util.LiteralsToolsService")/> 
8<#assign language = themeDisplay.getLocale()/> 
9<#assign groupId = themeDisplay.getScopeGroupId()/> 
10<#assign restultsLiteral = LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.common.link.resultados") /> 
11<#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext()> 
12<#assign httpServletRequest = serviceContext.getRequest() /> 
13<#assign UserBookmarkLocalService = serviceLocator.findService("com.educaixa.services.service.UserBookmarkLocalService") /> 
14 
15<#assign article = journalArticleLocalService.getArticle(getterUtil.getLong(scopeGroupId), .vars['reserved-article-id'].data) /> 
16<#assign asset = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", article.resourcePrimKey) /> 
17 
18<#-- get the results URL and valoration value--> 
19<#assign results_url = "https://${request.serverName}/${locale.getLanguage()}${restultsLiteral}?q=" /> 
20<#assign valoracionesDisplayAverage = 0/> 
21<#if valoracionesDisplay.fetchByResourcePK(scopeGroupId,themeDisplay.getCompanyId(),article.getResourcePrimKey()) ??> 
22    <#assign valoracionesDisplayValue = valoracionesDisplay.findByResourcePK(scopeGroupId,themeDisplay.getCompanyId(),article.getResourcePrimKey()) /> 
23    <#assign valoracionesDisplayAverage = valoracionesDisplayValue.getAverageGlobalScore() /> 
24</#if> 
25 
26<#assign journalArticleId = .vars['reserved-article-id'].data/> 
27<#assign userId =themeDisplay.getUserId()/> 
28<#assign isUserBookmark = UserBookmarkLocalService.isUserBookmark(themeDisplay.getCompanyId(),userId,journalArticleId,groupId)/> 
29 
30<#-- Escape title text --> 
31<#assign titleEscaped = "" /> 
32<#if title.getData()??> 
33    <#assign titleEscaped = title.getData()?replace('<p>','','r')/> 
34    <#assign titleEscaped = titleEscaped?replace('</p>','','r')/> 
35    <#assign titleEscaped = titleEscaped?replace('<div>','','r')/> 
36    <#assign titleEscaped = titleEscaped?replace('</div>','','r')/> 
37    <#assign titleEscaped = titleEscaped?replace('<h1>','','r')/> 
38    <#assign titleEscaped = titleEscaped?replace('</h1>','','r')/> 
39</#if> 
40<#assign titleEscapedGTM = titleEscaped?replace('"','','')/> 
41 
42<#assign subtituloEscaped = "" /> 
43<#if subtitle.getData()??> 
44    <#assign subtituloEscaped = subtitle.getData() /> 
45    <#assign subtituloEscaped = subtituloEscaped?replace('<p>','','r')/> 
46    <#assign subtituloEscaped = subtituloEscaped?replace('</p>','','r')/> 
47</#if> 
48 
49<#-- get image alt --> 
50<#-- En PCC no viene ningun alt informado --> 
51<#assign altImage = titleEscaped /> 
52 
53<#-- get image banner --> 
54<#if bannerImage?? && bannerImage.getData()?? && bannerImage.getData() != "">   
55    <#assign imageSrc = bannerImage.getData() /> 
56<#else>     
57    <#assign imageSrc = "/o/educaixa-theme/images/blured-lights-formacion.png" /> 
58</#if> 
59 
60<#assign thesaurusCategories = UtilsService.getThesaurusCategories(asset) /> 
61<#assign tagsCategories = UtilsService.getTagsCategories(asset) /> 
62<#assign categories = thesaurusCategories + tagsCategories /> 
63 
64<#assign itinerancesActive = UtilsService.getDateRelatedItinerancia(journalArticleId,themeDisplay) /> 
65<#assign itinerances = UtilsService.getRelatedItinerancia(journalArticleId,themeDisplay) /> 
66 
67<#-- Login --> 
68<#assign is_signed_in = themeDisplay.isSignedIn()/> 
69<#assign plid = portalUtil.getPlidFromPortletId(themeDisplay.getScopeGroupId(), "EducaixaMyeducaixaLogin") /> 
70<#assign loginURL = portletURLFactory.create(httpServletRequest, "EducaixaMyeducaixaLogin", plid, "RENDER_PHASE") /> 
71${loginURL.setParameter("mvcPath", "/login_modal.jsp")} 
72${loginURL.setWindowState("POP_UP")} 
73 
74<#assign language = themeDisplay.getLocale()/> 
75<#assign nivel_educativo = []> 
76<#assign area_conocimiento = []> 
77<#assign competencias = []> 
78<#assign objectius = []> 
79<#assign idiomas = []> 
80 
81<#list asset.getCategories() as cur_category> 
82    <#if cur_category.vocabularyId == 10515> 
83        <#assign nivel_educativo = nivel_educativo + [cur_category.getTitle(language)]> 
84    <#elseif cur_category.vocabularyId == 6> 
85        <#assign area_conocimiento = area_conocimiento + [cur_category.getTitle(language)]> 
86    <#elseif cur_category.vocabularyId == 401> 
87        <#assign competencias = competencias + [cur_category.getTitle(language)]> 
88    <#elseif cur_category.vocabularyId == 43203> 
89        <#assign objectius = objectius + [cur_category.getTitle(language)]> 
90    <#elseif cur_category.vocabularyId == 13> 
91        <#assign idiomas = idiomas + [cur_category.getTitle(language)]> 
92    </#if> 
93</#list> 
94 
95<div class="container vertical image-view"> 
96    <div class="row"> 
97        <img src="${imageSrc}" alt="${altImage}" width="900px" height="458px" class="video-player"> 
98        <div class="box-img col-lg square"> 
99            <p class="box-img-pre-rec" style="color: #0fb158;">${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.seccion.formacion")}</p> 
100            <#if title?has_content> 
101                <h1 class="box-img-title-rec">${titleEscaped}</h1> 
102            </#if> 
103            <#if subtitle?has_content> 
104                <p class="box-img-sub-title-rec">${subtituloEscaped}</p> 
105            </#if> 
106            <p class="box-img-categ-rec"> 
107                <#if categories?has_content> 
108                    <#list categories as category> 
109                        <#-- redirige la pagina de resultados por tag--> 
110                        <a onClick="updateTagsCicks('${category.getTitle(locale)}');" href="${results_url}${category.getTitle(locale)}" >${category.getTitle(locale)}</a> 
111                    </#list> 
112                </#if> 
113            </p> 
114            <p class="box-img-price"><br> 
115                ${activityDuration.getData()} <br> 
116                <a href="#reservar" style="color: black;"> 
117                    <p class="box-img-more">${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.seccion.actividad.mas.fechas")}</p> 
118                </a> 
119            </p> 
120            <hr> 
121			<#if itinerancesActive> 
122            <button style="border: 1px solid #0fb158; color: #0fb158" onClick="addGTMEvent('reserva_online', 'boton_cabecera', '${titleEscaped}');document.location.href='#reservar'" class="box-img-button color-caixa-bluebox-img-button color-caixa-green background-white">${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.seccion.actividad.reservar actividad")}</button> 
123			</#if> 
124            <div class="card-actions flex"> 
125                <div class="statistics"> 
126                    <svg viewBox="0 0 36 36" class="circular-chart orange"> 
127                        <path class="circle-bg" d="M18 2.0845 
128                            a 15.9155 15.9155 0 0 1 0 31.831 
129                            a 15.9155 15.9155 0 0 1 0 -31.831"></path> 
130                        <path class="circle" stroke-dasharray="${valoracionesDisplayAverage*20}, 100" d="M18 2.0845 
131                            a 15.9155 15.9155 0 0 1 0 31.831 
132                            a 15.9155 15.9155 0 0 1 0 -31.831"></path> 
133                        <text x="18" y="22" class="percentage">${valoracionesDisplayAverage}</text> 
134                    </svg> 
135                </div> 
136                <div class="share"> 
137                    <button id="share"></button> 
138                    <div class="addthis_inline_share_toolbox tooltip"></div> 
139                </div> 
140                <div class="bookmark"> 
141					<#if is_signed_in> 
142						<#if isUserBookmark> 
143							<button id="bookmark" onClick="updateUserBookmark(${journalArticleId},false);" data-articleid="${journalArticleId}" class="bookmark bookmarked"></button>  
144						<#else> 
145							<button id="bookmark" onClick="updateUserBookmark(${journalArticleId},true);" data-articleid="${journalArticleId}" class="bookmark"></button> 
146						</#if> 
147					<#else> 
148						<button id="bookmark" onClick="event.stopPropagation();openPopup('${loginURL}','','500', '650')"></button> 
149					</#if> 
150                </div> 
151            </div> 
152        </div> 
153    </div> 
154</div> 
155 
156<#-- Categories section--> 
157<div class="container vertical info-view" style="margin-top:25px;"> 
158    <div class="row"> 
159    	<#if nivel_educativo?size != 0 > 
160	        <div class="col-lg col-xs-6 col-sm"> 
161	            <h2 class="purple-title" style="color: #0fb158;">${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.seccion.ficha.nivel.educativo")}</h2><br> 
162	            <#assign levels = educationLevel.getData()?replace("<p>", "<li class=\"marked\">") /> 
163	            <#assign levels = levels?replace("</p>", "</li>") /> 
164	            <ul> 
165	                ${levels} 
166	            </ul> 
167	    	</div>  
168        </#if>        
169        <#if area_conocimiento?size != 0 > 
170            <div class="col-lg col-xs-6 col-sm"> 
171                <h2 class="purple-title" style="color: #0fb158;">${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.seccion.ficha.area.conocimiento")}</h2><br> 
172                <ul> 
173                    <#list area_conocimiento as item> 
174                        <li class="marked">${item}</li> 
175                    </#list> 
176                </ul> 
177    		</div> 
178        </#if> 
179        <#if area_conocimiento?size != 0 > 
180            <div class="col-lg col-xs-6 col-sm"> 
181                <h2 class="purple-title" style="color: #0fb158;">${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.seccion.ficha.competencias")}</h2><br> 
182                <ul> 
183                    <#list competencias as item> 
184                        <li class="marked">${item}</li> 
185                    </#list> 
186                </ul> 
187    		</div> 
188        </#if> 
189        <#if activityDuration.getData()?? && activityDuration.getData() != "" > 
190            <div class="col-lg col-xs-6 col-sm"> 
191                <h2 class="purple-title" style="color: #0fb158;">${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.seccion.ficha.duracion")}</h2><br> 
192                <ul> 
193                    <li class="marked">${activityDuration.getData()}</li> 
194                </ul> 
195        	</div> 
196        </#if> 
197        <#if idiomas?size != 0 > 
198            <div class="col-lg col-xs-6 col-sm"> 
199                <h2 class="purple-title" style="color: #0fb158;">${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.seccion.recurso.idioma")}</h2><br> 
200                <ul> 
201                    <#list idiomas as item> 
202                        <li class="marked">${item}</li> 
203                    </#list> 
204                </ul> 
205        	</div> 
206        </#if> 
207    </div> 
208    <hr class="line-12" style="border: 1px solid #0fb158;">  
209</div> 
210 
211<#-- Content section--> 
212<div class="container vertical info-text"> 
213    <div class="row"> 
214        <div class="col-lg-7 col-xs-12"> 
215            <#if description.getData() ?? && description.getData() != ""> 
216                <p>${description.getData()}</p> 
217            </#if> 
218            <#if objective.getData() ?? && objective.getData() != ""> 
219				<h3 style="margin-top:45px;">${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.formacion.objetivos")}</h3>	 
220                <div class="row" style="margin-top: 4%;"> 
221                    <div class="col-lg-12"> 
222                        <p>${objective.getData()}</p> 
223                    </div> 
224                </div> 
225            </#if> 
226            <#if activityMoreInfo.getData() ?? && activityMoreInfo.getData() != ""> 
227				<h3 class="info-title" style="margin-top:45px;;color: #0fb158;">${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.seccion.actividad.info.adicional")}</h3>	 
228                <p>${activityMoreInfo.getData()}</p> 
229            </#if> 
230            <div class="container vertical"> 
231                <div class="row"> 
232                    <div class="center-title" style="margin-top: 3%;"> 
233                            <p id="reservar">${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.seccion.actividad.otra.info")}</p> 
234                        </a> 
235                    </div> 
236                    <#list 0 ..< itinerances.length() as i> 
237						<#if itinerances.get(i)?? && itinerances.get(i) != ""> 
238							<div class="row"> 
239								<div class="col-lg-8"> 
240									<#assign centerName = "" /> 
241									<#if itinerances.get(i).centro?? && itinerances.get(i).centro != ""> 
242										<#assign centerName = itinerances.get(i).centro?upper_case /> 
243										<#assign centerName = centerName?replace("-", " ") /> 
244									</#if> 
245									<#if itinerances.get(i).centro?? && itinerances.get(i).centro != ""> 
246										<a href="/-/${itinerances.get(i).centro}"> 
247											<#assign centerName = itinerances.get(i).centro?upper_case /> 
248											<#assign centerName = centerName?replace("-", " ") /> 
249											<p class="activity-info center-name">${centerName}</p> 
250										</a> 
251									</#if> 
252									<#if itinerances.get(i).dateText?? && itinerances.get(i).dateText != ""> 
253										<div class="activity-info">${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.seccion.actividad.fecha")}  
254											${itinerances.get(i).dateText} 
255										</div> 
256		                            </#if> 
257									<#if itinerances.get(i).startTime?? && itinerances.get(i).startTime != "" ||  
258										itinerances.get(i).endTime?? && itinerances.get(i).endTime != ""> 
259										<#if itinerances.get(i).startTime?? && itinerances.get(i).startTime != ""> 
260											<div class="activity-info">${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.seccion.actividad.horario")}  
261												${itinerances.get(i).startTime} 
262												<#if itinerances.get(i).endTime?? && itinerances.get(i).endTime != ""> 
263												- ${itinerances.get(i).endTime} 
264												</#if> 
265											</div> 
266										</#if> 
267										<#if itinerances.get(i).timeText?? && itinerances.get(i).timeText != ""> 
268											<div>${itinerances.get(i).timeText}</div> 
269		                            	</#if> 
270		                            </#if> 
271		                            <#if itinerances.get(i).duration?? && itinerances.get(i).duration != ""> 
272										<div class="activity-info">${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.seccion.actividad.duracion")}  
273											${itinerances.get(i).duration} 
274										</div> 
275		                            </#if> 
276	                            </div> 
277								<#if itinerances.get(i).active> 
278	                            <div class="col-lg-4"> 
279		                            <#if itinerances.get(i).url?? && itinerances.get(i).url != ""> 
280									<#if is_signed_in> 
281		                            	<div style="border: 1px solid #0fb158" class="center-link"> 
282											<a onClick="addGTMEvent('reserva_online', 'boton_ficha', '${titleEscaped}')" href="${itinerances.get(i).url}" class="color-caixa-green"> 
283												${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.seccion.actividad.reservar")} ${centerName} 
284											</a> 
285										</div> 
286									<#else> 
287										<div style="border: 1px solid #0fb158" class="center-link"> 
288											<a onClick="event.stopPropagation();openPopup('${loginURL}','','500', '650')" class="color-caixa-green"> 
289												${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.seccion.actividad.reservar")} ${centerName} 
290											</a> 
291										</div> 
292									</#if> 
293		                            </#if> 
294	                            </div> 
295								</#if> 
296	                            </br> 
297                            </div> 
298                            <div class=" center-info"> 
299	                            <table style="width:100%"> 
300								  	<#if itinerances.get(i).aforo?? && itinerances.get(i).aforo != ""> 
301									  	<tr> 
302									    	<th><img class="center-info-img" src="/o/educaixa-theme/images/group-icon.PNG" width="50px" alt="grupo actividades EduCaixa"></th> 
303									    	<td><div class="activity-info">${itinerances.get(i).aforo}</div></td> 
304								    	</tr> 
305							    	</#if> 
306									<#if itinerances.get(i).price ?? && itinerances.get(i).price != "">  
307									  	<tr> 
308									    	<th><img class="center-info-img" src="/o/educaixa-theme/images/money-icon-green.PNG" width="50px" alt="precio actividades EduCaixa"></th> 
309									    	<td> 
310									    		<div class="activity-info"> 
311													<#if itinerances.get(i).priceText?? > 
312														${itinerances.get(i).priceText} 
313													<#else> 
314														${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.ficha.gratis")} 
315													</#if> 
316													<#if itinerances.get(i).offer?? && itinerances.get(i).offer != ""> 
317														${itinerances.get(i).offer} 
318													</#if> 
319			                                    </div> 
320									    	</td> 
321								    	</tr> 
322							    	</#if> 
323							    	<#if itinerances.get(i).description?? && itinerances.get(i).description != ""> 
324									  	<tr> 
325									    	<th><img class="center-info-img" src="/o/educaixa-theme/images/info-icon-green.PNG" width="50px" alt="información actividades EduCaixa"></th> 
326									    	<td><div class="activity-info">${itinerances.get(i).description?replace(".", ".</br>")}</div></td> 
327								    	</tr> 
328							    	</#if> 
329								</table> 
330	                         	</br> 
331	                            </br> 
332                            </div> 
333						</#if> 
334					</#list> 
335                </div> 
336            </div> 
337        </div> 
338        <#-- Register content --> 
339		<#if journalArticleLocalService.fetchArticle(groupId, "CAPTACION_ACTIVIDAD") ??> 
340		<#assign register = journalArticleLocalService.getArticle(groupId, "CAPTACION_ACTIVIDAD")/>  
341			<#if register?? && register != ""> 
342	            <#assign registerContent = journalArticleLocalService.getArticleContent(register, register.DDMTemplateKey, "VIEW", themeDisplay.getLocale(), themeDisplay) />  
343	        </#if> 
344	        <#assign registerContent = journalArticleLocalService.getArticleContent(register, register.DDMTemplateKey, "VIEW", themeDisplay.getLocale(), themeDisplay) />  
345		  	<div class= "captacion-ficha"> 
346		  		${registerContent} 
347	  		</div> 
348	    </#if> 	   
349    </div> 
350</div> 
351 
352<style> 
353.center-name{ 
354	text-decoration: underline; 
355    color: #0fb158; 
356
357.center-link{ 
358    border-radius: 15px; 
359    border: 1px solid #009DDF; 
360    width: auto; 
361    line-height: 22px; 
362    text-align: center; 
363
364.center-info th { 
365    width: 15%; 
366
367.center-title{ 
368    width: 100%; 
369
370.activity-info{ 
371    width: 100%; 
372
373</style> 
374 
375<script> 
376$( document ).ready(function() { 
377    initAddThis(); 
378}); 
379</script> 
0.0
Encara no hi ha cap comentari. Sigues el primer a enviar comentaris.

Valoració mitjana global sobre 5

Basada en 0 valoracions