Attuazione di percorsi IFTS in apprendistato
Si è verificato un errore nell'elaborarazione del modello.
Java method "com.sun.proxy.$Proxy91.getFileEntryByUuidAndGroupId(String, long)" threw an exception when invoked on com.sun.proxy.$Proxy91 object "com.liferay.portlet.documentlibrary.service.impl.DLFileEntryLocalServiceImpl@2d90523a"; see cause exception in the Java stack trace. ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign fileEntry = DLFileEntryLocalS... [in template "10154#10192#17414443" in macro "getLinkAndAllegati" at line 269, column 81] - Reached through: @getLinkAndAllegati [in template "10154#10192#17414443" at line 187, column 17] ----
1<#setting time_zone=timeZone.ID>
2<#setting locale=locale.toString()>
3
4<#assign hasCookie >
5 <@rt.checkCookieAcceptance siteId=themeDisplay.getScopeGroupId() cookieToCheck="third-party" />
6</#assign>
7
8<#assign AssetEntryLocalServiceUtil = staticUtil["com.liferay.asset.kernel.service.AssetEntryLocalServiceUtil"] />
9<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
10<#assign DLFileEntryLocalServiceUtil = serviceLocator.findService('com.liferay.document.library.kernel.service.DLFileEntryLocalService') />
11<#assign assetLinkLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService") />
12
13<#assign journalArticleId = .vars['reserved-article-id'].data/>
14<#assign article = JournalArticleLocalService.getArticle(groupId, journalArticleId) />
15<#assign entry = AssetEntryLocalServiceUtil.fetchEntry("com.liferay.journal.model.JournalArticle", article.resourcePrimKey) />
16
17<#assign currentArticleAssetEntryId = entry.getEntryId() />
18
19<#assign assetRenderer = entry.getAssetRenderer() />
20<#assign entryTitle = htmlUtil.escape(entry.getTitle(locale)?html) />
21
22<#assign docXml = saxReaderUtil.read(article.getContent()) />
23
24<style>
25.header-title{
26 display:none;
27}
28.header-back-to{
29 display:none;
30}
31</style>
32
33<section class="portlet-column portlet-column-only" id="column-1">
34
35<div class="rt-subheader rt-subheader--no-bg rt-subheader--updates">
36 <div class="rt-subheader__wrapper">
37 <div class="rt-container">
38 <div class="rt-subheader__content">
39 <p><@getEditIcon /></p>
40 <h2 class="rt-subheader__title"> ${.vars['reserved-article-title'].data} </h2>
41 <#if entry.getSummary(locale)?? && entry.getSummary(locale) != "" >
42 <div class="rt-subheader__text">${entry.getSummary(locale)}</div></br>
43 <#elseif TitoloSecondario?? && TitoloSecondario.getData() != "">
44
45 <div class="rt-subheader__text">${TitoloSecondario.getData()}</div></br>
46 </#if>
47
48 <#if TipologiaDiBando?? && TipologiaDiBando.getData() != "">
49 <div class="rt-subheader__category">
50 <#if TipologiaDiBando.getData()?upper_case == 'BANDOTIPOSEMPREAPERTO'>
51 <div class="rt-subheader__category-label">BANDO SEMPRE APERTO</div>
52 <i aria-hidden="true" class="far fa-flag-alt"></i>
53 </#if>
54
55 <#if TipologiaDiBando.getData()?upper_case == 'BANDOTIPOCONATTUAZIONE'>
56 <div class="rt-subheader__category-label">BANDO CON ATTUAZIONE</div>
57 <i aria-hidden="true" class="far fa-handshake"></i>
58 </#if>
59
60 <#if TipologiaDiBando.getData()?upper_case == 'BANDOTIPOSENZAATTUAZIONE'>
61 <div class="rt-subheader__category-label">BANDO SENZA ATTUAZIONE</div>
62 <i aria-hidden="true" class="far fa-award"></i>
63 </#if>
64 </div>
65 </#if>
66
67 <div class="rt-btn rt-btn-light rt-btn-round rt-btn-share" id="sharebtn">
68 <span class="rt-btn-round__label">Condividi</span> <i aria-hidden="true" class="fas fa-share"></i>
69 </div>
70
71 <#if DataPubblicazioneBandoSuBURT?? && DataPubblicazioneBandoSuBURT.getData()??>
72 <#assign DataPubblicazioneBandoSuBURT_Data = getterUtil.getString(DataPubblicazioneBandoSuBURT.getData())>
73 <#if validator.isNotNull(DataPubblicazioneBandoSuBURT_Data)>
74 <p>Data di pubblicazione bando su BURT</p>
75 <#assign DataPubblicazioneBandoSuBURT_DateObj = dateUtil.parseDate("yyyy-MM-dd", DataPubblicazioneBandoSuBURT_Data, locale)>
76 ${DataPubblicazioneBandoSuBURT_DateObj?string("dd MMMM yyyy")}
77 </#if>
78 </#if>
79
80 <#if NumeroEParteDelBURT?? && NumeroEParteDelBURT.getData() != "">
81 <p>Numero e parte del BURT</p>
82 ${NumeroEParteDelBURT.getData()}
83 </#if>
84
85 <#if DataScadenzaPresentazioneDomande?? && DataScadenzaPresentazioneDomande.getData()?has_content>
86 <#assign DataScadenzaPresentazioneDomande_Data = getterUtil.getString(DataScadenzaPresentazioneDomande.getData())>
87 <p>Data di scadenza presentazione domande</p>
88 <#if validator.isNotNull(DataScadenzaPresentazioneDomande_Data)>
89 <#assign DataScadenzaPresentazioneDomande_DateObj = dateUtil.parseDate("yyyy-MM-dd", DataScadenzaPresentazioneDomande_Data, locale)>
90 <p>
91 ${DataScadenzaPresentazioneDomande_DateObj?string("dd MMMM yyyy")}
92 </p>
93 <#else>
94 <p>Non specificato</p>
95 </#if>
96 </#if>
97
98 <#if DataArchiviazioneBando_Data?? && DataArchiviazioneBando_Data.getData?has_content>
99 <p>Data archiviazione bando</p>
100 <#assign DataArchiviazioneBando_Data = getterUtil.getString(DataArchiviazioneBando.getData())>
101 <#if validator.isNotNull(DataArchiviazioneBando_Data)>
102 <#assign DataArchiviazioneBando_DateObj = dateUtil.parseDate("yyyy-MM-dd", DataArchiviazioneBando_Data, locale)> ${dateUtil.getDate(DataArchiviazioneBando_DateObj, "dd MMMM yyyy - HH:mm:ss", locale)}
103 <p>
104 ${DataArchiviazioneBando_DateObj?string("dd MMMM yyyy")}
105 </p>
106
107 <#else>
108 <p>Non specificato</p>
109 </#if>
110 </#if>
111 </div>
112 </div>
113 </div>
114
115</section>
116
117<section class="container rt-content" id="content">
118 <div class="row">
119 <div class="col-md-8 portlet-column portlet-column-first" id="column-2">
120 <div class="rt-page__content rt-page-content--left">
121 <div class="rt-page__content-text">
122 <#if Didascalia?? && Didascalia.getData() != "">
123 <div class="rt-page__content-emphasis">
124 ${Didascalia.getData()}
125 </div>
126 </#if>
127 <#if ContenutoPrincipale?? && ContenutoPrincipale.getData() != "">
128 <p>
129 <@rt.pruneExternalContent html=ContenutoPrincipale.getData()?remove_beginning("<p> </p>") acceptedCookie=hasCookie?trim?boolean />
130 </p>
131 </#if>
132 <#if Obiettivi?? && Obiettivi.getData() != "">
133 <p>
134 <b>Obiettivi:</b>
135 ${Obiettivi.getData()}
136 </p>
137 </#if>
138 <#if TipoDiAgevolazione?? && TipoDiAgevolazione.getData() != "">
139 <p>
140 <b>Tipo Di Agevolazione:</b>
141 ${TipoDiAgevolazione.getData()}
142 </p>
143 </#if>
144 <#if InterventiESpeseAmmissibili?? && InterventiESpeseAmmissibili.getData() != "">
145 <p>
146 <b>Interventi E Spese Ammissibili:</b>
147 ${InterventiESpeseAmmissibili.getData()}
148 </p>
149 </#if>
150 <#if BandoReferenti?? && BandoReferenti.getData() != "">
151 <p>
152 <b>Referenti Bando:</b>
153 ${BandoReferenti.getData()}
154 </p>
155 </#if>
156
157 <p>
158 <#if OrganismoEmittente?? && OrganismoEmittente.getData() != "">
159 <b>Organismo emittente:</b> </br>
160 <#if OrganismoEmittente.getData() == "bando-organismo-comunita-europea-commissione">
161 Comunità europea commissione
162 </#if>
163 <#if OrganismoEmittente.getData() == "bando-organismo-comunita-europea-consiglio">
164 Comunità europea consiglio
165 </#if>
166 <#if OrganismoEmittente.getData() == "bando-organismo-comunita-europea-parlamento">
167 Comunità europea parlamento
168 </#if>
169 <#if OrganismoEmittente.getData() == "bando-organismo-regione-toscana">
170 Regione Toscana
171 </#if>
172 <#if OrganismoEmittente.getData() == "bando-organismo-istituti-universita">
173 Istituti e Università
174 </#if>
175 <#if OrganismoEmittente.getData() == "bando-organismo-altro">
176 <#if AltroOrganismoEmittente?? && AltroOrganismoEmittente.getData() != "">
177 ${AltroOrganismoEmittente.getData()}
178 </#if>
179 </#if>
180 </#if>
181 </p>
182
183 </div>
184 </div>
185 </div>
186
187 <@getLinkAndAllegati />
188
189 </div>
190
191 <div class="rt-update-informations">
192 <div class="rt-update-informations__row">
193 <div class="rt-update-informations__info rt-update-informations__info--updated">
194 <i aria-hidden="true" class="far fa-calendar-edit"></i>
195 <div class="rt-update-informations__info-label">Aggiornato al:</div>
196 <div class="rt-update-informations__info-value"><strong>${article.modifiedDate?string["dd.MM.yyyy"]}</strong></div>
197 </div>
198
199 <div class="rt-update-informations__info rt-update-informations__info--id">
200 <i aria-hidden="true" class="far fa-hashtag"></i>
201 <div class="rt-update-informations__info-label">Article ID:</div>
202 <div class="rt-update-informations__info-value"><strong>${article.getArticleId()}</strong></div>
203 </div>
204 </div>
205 </div>
206</section>
207
208
209<#macro getLinkAndAllegati>
210 <#assign assetLinkLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService") />
211 <#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") />
212 <#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
213
214 <#assign currentArticle = JournalArticleLocalService.getArticle(groupId, .vars['reserved-article-id'].data) />
215 <#assign currentArticleResourcePrimKey = currentArticle.getResourcePrimKey() />
216 <#assign currentArticleAssetEntry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", currentArticleResourcePrimKey) />
217 <#assign currentArticleAssetEntryId = currentArticleAssetEntry.getEntryId() />
218 <#assign currentArticleRelatedLinks = assetLinkLocalService.getDirectLinks(currentArticleAssetEntryId) />
219
220 <#assign hasAllegato = "false" />
221 <#assign hasLink = "false" />
222 <#if currentArticleRelatedLinks?? && currentArticleRelatedLinks?has_content>
223 <#list currentArticleRelatedLinks as related_entry>
224 <#assign relatedAssetEntryId = related_entry.getEntryId2() />
225 <#assign relatedAssetEntry = assetEntryLocalService.getEntry(relatedAssetEntryId) />
226 <#assign relatedAssetEntryPrimKey = relatedAssetEntry.getClassPK() />
227
228 <#if relatedAssetEntry.getClassName() == 'com.liferay.document.library.kernel.model.DLFileEntry' >
229 <#assign hasAllegato = "true" />
230 <#elseif relatedAssetEntry.getClassName() == 'com.liferay.journal.model.JournalArticle' >
231 <#assign hasLink = "true" />
232 </#if>
233 </#list>
234 </#if>
235
236 <div class="col-md-4 portlet-column portlet-column-last" id="column-3">
237 <#if (TitoloAllegato?? && TitoloAllegato.getData()?has_content && TitoloAllegato.getSiblings()?has_content)
238 || (hasAllegato == "true")>
239 <div class="rt-section rt-section--sidebar" aria-label="Lista dei link utili">
240 <div class="rt-section-title-wrapper">
241 <h2 class="rt-section-title">Allegati</h2>
242 </div>
243
244 <#if (TitoloAllegato?? && TitoloAllegato.getData()?has_content && TitoloAllegato.getSiblings()?has_content)>
245
246 <#assign allegati = docXml.getRootElement().selectNodes("//dynamic-element[@name='TitoloAllegato']") />
247 <#list allegati as allegatoXML>
248
249 <#assign titoloAllegato = allegatoXML.elementText("dynamic-content") />
250 <#assign allegato = allegatoXML.valueOf("//dynamic-element[@name='Allegato']/dynamic-content/text()") />
251
252 <#assign subfields = allegatoXML.elements("dynamic-element")>
253 <#list subfields as subfield >
254 <#if subfield.attributeValue("name") == "Allegato" && titoloAllegato?? && titoloAllegato != "">
255 <#assign allegato = subfield.elementText("dynamic-content") />
256 <#assign json = jsonFactoryUtil.createJSONObject(allegato) />
257
258 <#assign nameImg = json.getString("name") />
259 <#assign altImg = json.getString("alt") />
260 <#assign fileEntryId = json.getLong("fileEntryId") />
261 <#assign uuiD = json.getString("uuid") />
262 <#assign groupId = json.getLong("groupId") />
263
264 <#if fileEntryId != 0>
265 <#assign fileEntry = DLFileEntryLocalServiceUtil.getFileEntry(fileEntryId) />
266 <#assign fileUrl = "/documents/" + fileEntry.getGroupId() + "/" + fileEntry.getFolderId() + "/" + fileEntry.getTitle() + "/" + fileEntry.getUuid() />
267 <#else>
268 <#if groupId != 0 && uuiD != "">
269 <#assign fileEntry = DLFileEntryLocalServiceUtil.getFileEntryByUuidAndGroupId(uuiD,groupId) />
270 <#if fileEntry?? >
271 <#assign fileUrl = "/documents/" + fileEntry.getGroupId() + "/" + fileEntry.getFolderId() + "/" + fileEntry.getTitle() + "/" + fileEntry.getUuid() />
272 </#if>
273 </#if>
274 </#if>
275 <div class="rt-box rt-box--link">
276 <div class="rt-box__header">
277 <div class="rt-box__wrapper">
278 <div class="rt-box__title">
279 <a target="_blank" href="${fileUrl}" aria-label="Vedi ${titoloAllegato?html}" title="Vedi ${titoloAllegato?html}">
280 ${titoloAllegato?html}
281 </a>
282 </div>
283 </div>
284 <div class="rt-box__icon">
285 <i aria-hidden="true" class="far fa-download"></i>
286 </div>
287 </div>
288 </div>
289
290 </#if>
291 </#list>
292 </#list>
293
294 </#if>
295
296 <#if hasAllegato == "true">
297 <#list currentArticleRelatedLinks as related_entry>
298 <#assign relatedAssetEntryId = related_entry.getEntryId2() />
299 <#assign relatedAssetEntry = assetEntryLocalService.getEntry(relatedAssetEntryId) />
300 <#assign relatedAssetEntryPrimKey = relatedAssetEntry.getClassPK() />
301
302 <#if relatedAssetEntry.getClassName() == 'com.liferay.document.library.kernel.model.DLFileEntry' >
303 <#assign fileEntry = DLFileEntryLocalServiceUtil.getFileEntry(relatedAssetEntryPrimKey) />
304 <#assign fileUrl = "/documents/" + fileEntry.getGroupId() + "/" + fileEntry.getFolderId() + "/" + fileEntry.getTitle() + "/" + fileEntry.getUuid() />
305 <#if fileEntry?? && fileUrl != "">
306 <#if fileEntry.getExtension() == 'mp3'>
307 <div class="rt-box rt-box--link rt-box--audio">
308 <div class="rt-box__header">
309 <div class="rt-box__wrapper">
310 <div class="rt-box__title">
311 <a title="Scarica ${fileEntry.getTitle()}" aria-label="Scarica ${fileEntry.getTitle()}" href="${fileUrl}" target="_blank">
312 ${fileEntry.getTitle()}
313 </a>
314 </div>
315 <audio controls>
316 <source src="${fileUrl}" type="audio/ogg">
317 <source src="${fileUrl}" type="audio/mpeg">
318 Il tuo browser non supporta questo tipo di oggetto html
319 </audio>
320 </div>
321 </div>
322 </div>
323 <#else>
324 <div class="rt-box rt-box--link">
325 <div class="rt-box__header">
326 <div class="rt-box__wrapper">
327 <div class="rt-box__title">
328 <a target="_blank" href="${fileUrl}" aria-label="Vedi ${fileEntry.getTitle()}" title="Vedi ${fileEntry.getTitle()}">
329 ${fileEntry.getTitle()}
330 </a>
331 </div>
332 </div>
333
334 <div class="rt-box__icon">
335 <i aria-hidden="true" class="far fa-download"></i>
336 </div>
337 </div>
338 </div>
339 </#if>
340 </#if>
341 </#if>
342 </#list>
343 </#if>
344
345
346 </div>
347
348 </#if>
349 <#if (TitoloLinkUtile?? && TitoloLinkUtile.getData()?has_content && TitoloLinkUtile.getSiblings()?has_content)
350 || (hasLink == "true")>
351
352 <div class="rt-section rt-section--sidebar" aria-label="Lista dei link utili">
353 <div class="rt-section-title-wrapper">
354 <h2 class="rt-section-title">Link</h2>
355 </div>
356
357 <#if (TitoloLinkUtile?? && TitoloLinkUtile.getData()?has_content && TitoloLinkUtile.getSiblings()?has_content)>
358
359 <#assign links = docXml.getRootElement().selectNodes("//dynamic-element[@name='TitoloLinkUtile']") />
360 <#list links as linkXML>
361 <#assign titoloLink = linkXML.elementText("dynamic-content") />
362 <#assign link = linkXML.valueOf("//dynamic-element[@name='Link']/dynamic-content/text()") />
363
364 <#assign subfields = linkXML.elements("dynamic-element")>
365 <#list subfields as subfield >
366 <#if subfield.attributeValue("name") == "Link" && titoloLink?? && titoloLink != "">
367 <#assign link = subfield.elementText("dynamic-content") />
368 <div class="rt-box rt-box--link">
369 <div class="rt-box__header">
370 <div class="rt-box__wrapper">
371 <div class="rt-box__title">
372 <#if link?html?starts_with("www")>
373 <a target="_blank" href="//${link?html}" aria-label="Vedi ${titoloLink?html}" title="Vedi ${titoloLink?html}">
374 ${titoloLink?html}
375 </a>
376 <#else>
377 <a target="_blank" href="${link?html}" aria-label="Vedi ${titoloLink?html}" title="Vedi ${titoloLink?html}">
378 ${titoloLink?html}
379 </a>
380 </#if>
381
382 </div>
383 </div>
384
385 <div class="rt-box__icon">
386 <i aria-hidden="true" class="far fa-link"></i>
387 </div>
388 </div>
389 </div>
390
391
392 </#if>
393 </#list>
394 </#list>
395
396
397 </#if>
398
399
400 <#if hasLink == "true">
401 <#list currentArticleRelatedLinks as related_entry>
402 <#assign relatedAssetEntryId = related_entry.getEntryId2() />
403 <#assign relatedAssetEntry = assetEntryLocalService.getEntry(relatedAssetEntryId) />
404 <#assign relatedAssetEntryPrimKey = relatedAssetEntry.getClassPK() />
405
406 <#if relatedAssetEntry.getClassName() == 'com.liferay.journal.model.JournalArticle' >
407 <#assign relatedArticle = JournalArticleLocalService.getLatestArticle(relatedAssetEntryPrimKey) />
408 <#if relatedArticle?? && relatedArticle != "">
409 <div class="rt-box rt-box--link">
410 <div class="rt-box__header">
411 <div class="rt-box__wrapper">
412 <div class="rt-box__title">
413 <a target="_blank" href="/-/${relatedArticle.getUrlTitle()}" aria-label="Vedi ${relatedArticle.getTitle()}" title="Vedi ${relatedArticle.getTitle()}">
414 ${relatedArticle.getTitle()}
415 </a>
416 </div>
417 </div>
418
419 <div class="rt-box__icon">
420 <i aria-hidden="true" class="far fa-link"></i>
421 </div>
422 </div>
423 </div>
424 </#if>
425 </#if>
426 </#list>
427 </#if>
428 </div>
429 </#if>
430
431
432
433 </div>
434
435</#macro>
436
437<#macro getEditIcon>
438 <#if assetRenderer.hasEditPermission(themeDisplay.getPermissionChecker())>
439 <#if renderResponse?? >
440 <#assign redirectURL = renderResponse.createRenderURL() />
441
442 ${redirectURL.setParameter("mvcPath", "/add_asset_redirect.jsp")}
443 ${redirectURL.setWindowState("pop_up")}
444
445 <#assign editPortletURL = assetRenderer.getURLEdit(renderRequest, renderResponse, windowStateFactory.getWindowState("pop_up"), redirectURL)!"" />
446
447 <#if validator.isNotNull(editPortletURL)>
448 <#assign title = languageUtil.format(locale, "edit-x", entryTitle, false) />
449
450 <@liferay_ui["icon"]
451 cssClass="icon-monospaced visible-interaction"
452 icon="pencil"
453 markupView="lexicon"
454 message=title
455 url="javascript:Liferay.Util.openWindow({id:'" + renderResponse.getNamespace() + "editAsset', title: '" + title + "', uri:'" + htmlUtil.escapeURL(editPortletURL.toString()) + "'});"
456 />
457 </#if>
458 </#if>
459 </#if>
460</#macro>