null Rinnovo abbonamento servizi on-line gruppo delfino

Si è verificato un errore nell'elaborarazione del modello.
The following has evaluated to null or missing:
==> administrative_people_webContentData.classPK  [in template "34140#34167#40318" at line 721, column 141]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign cur_administrative_staff_clas...  [in template "34140#34167#40318" at line 721, column 97]
----
1<#-- ricavo i valori dei custom field con structureKey --> 
2<#if validator.isNotNull(themeDisplay.getLayout().getGroup().getExpandoBridge()) > 
3	<#assign STRUCTURE_KEY_UFFICIO = "" /> 
4	<#assign STRUCTURE_KEY_PERSONALE_AMMINISTRATIVO = "" /> 
5	<#if (( themeDisplay.getLayout().getGroup().getExpandoBridge().hasAttribute("structure_key_ufficio"))) > 
6		<#if themeDisplay.getLayout().getGroup().getExpandoBridge().getAttribute("structure_key_ufficio")??> 
7			<#assign STRUCTURE_KEY_UFFICIO = themeDisplay.getLayout().getGroup().getExpandoBridge().getAttribute("structure_key_ufficio")/> 
8		</#if> 
9	</#if> 
10	<#if (( themeDisplay.getLayout().getGroup().getExpandoBridge().hasAttribute("structure_key_personale_amministrativo"))) > 
11		<#if themeDisplay.getLayout().getGroup().getExpandoBridge().getAttribute("structure_key_personale_amministrativo")??> 
12			<#assign STRUCTURE_KEY_PERSONALE_AMMINISTRATIVO = themeDisplay.getLayout().getGroup().getExpandoBridge().getAttribute("structure_key_personale_amministrativo")/> 
13		</#if> 
14	</#if> 
15</#if> 
16 
17<#-- instanceId --> 
18<#assign instanceId = themeDisplay.getPortletDisplay().getId()?keep_after("INSTANCE_") /> 
19 
20<#-- etichette --> 
21<#assign label_bando_gara_contratto = languageUtil.get(locale, "label_bando_gara_contratto") /> 
22<#assign label_numero = languageUtil.get(locale, "label_numero") /> 
23<#assign label_del = languageUtil.get(locale, "label_del") /> 
24<#assign label_date = languageUtil.get(locale, "label_date") /> 
25<#assign label_data_atto = languageUtil.get(locale, "label_data_atto") /> 
26<#assign label_data_ultima_modifica = languageUtil.get(locale, "label_data_ultima_modifica") /> 
27<#assign label_data_inizio_validita = languageUtil.get(locale, "label_data_inizio_validita") /> 
28<#assign label_data_fine_validita = languageUtil.get(locale, "label_data_fine_validita") /> 
29<#assign label_data_cig = languageUtil.get(locale, "label_data_cig") /> 
30<#assign label_data_fine_liquidazione = languageUtil.get(locale, "label_data_fine_liquidazione") /> 
31<#assign label_data_inizio_lavori = languageUtil.get(locale, "label_data_inizio_lavori") /> 
32<#assign label_data_fine_lavori = languageUtil.get(locale, "label_data_fine_lavori") /> 
33<#assign label_importo = languageUtil.get(locale, "label_importo") /> 
34<#assign label_cig = languageUtil.get(locale, "label_cig") /> 
35<#assign label_importo_aggiudicazione = languageUtil.get(locale, "label_importo_aggiudicazione") /> 
36<#assign label_importo_somme_liquidate = languageUtil.get(locale, "label_importo_somme_liquidate") /> 
37<#assign label_documenti = languageUtil.get(locale, "label_documenti") /> 
38<#assign label_ulteriori_informazioni = languageUtil.get(locale, "label_ulteriori_informazioni") /> 
39<#assign label_ultimo_aggiornamento = languageUtil.get(locale, "label_ultimo_aggiornamento") /> 
40<#assign label_responsabile_del_procedimento = languageUtil.get(locale, "label_responsabile_del_procedimento") /> 
41<#assign label_ufficio_responsabile = languageUtil.get(locale, "label_ufficio_responsabile") /> 
42<#assign label_risorse_correlate = languageUtil.get(locale, "label_risorse_correlate") /> 
43<#assign label_dati_generali = languageUtil.get(locale, "label_dati_generali") /> 
44<#assign label_importi = languageUtil.get(locale, "label_importi") /> 
45<#assign label_contracting_authority_name = languageUtil.get(locale, "label_contracting_authority_name") /> 
46<#assign label_fiscal_code_contracting_authority = languageUtil.get(locale, "label_fiscal_code_contracting_authority") /> 
47<#assign label_act_custody_extremes = languageUtil.get(locale, "label_act_custody_extremes") /> 
48<#assign label_notes_choose_contractor_mode = languageUtil.get(locale, "label_notes_choose_contractor_mode") /> 
49 
50<#assign label_condividi = languageUtil.get(locale, "label_condividi") /> 
51<#assign label_vedi_azioni = languageUtil.get(locale, "label_vedi_azioni") /> 
52<#assign label_argomenti = languageUtil.get(locale, "label_argomenti") /> 
53<#assign label_facebook = languageUtil.get(locale, "label_facebook") /> 
54<#assign label_twitter = languageUtil.get(locale, "label_twitter") /> 
55<#assign label_linkedin = languageUtil.get(locale, "label_linkedin") /> 
56<#assign label_whatsapp = languageUtil.get(locale, "label_whatsapp") /> 
57<#assign label_stampa = languageUtil.get(locale, "label_stampa") /> 
58<#assign label_invia = languageUtil.get(locale, "label_invia") /> 
59<#assign label_indice_pagina = languageUtil.get(locale, "label_indice_pagina") /> 
60 
61<#assign label_vai_sezione = languageUtil.get(locale, "label_vai_sezione") /> 
62<#assign label_vai_alla_pagina = languageUtil.get(locale, "label_vai_alla_pagina") /> 
63<#assign label_documento = languageUtil.get(locale, "label_documento") /> 
64<#assign label_data = languageUtil.get(locale, "label_data") /> 
65 
66<#-- Ricavo servizi utili in seguito --> 
67<#-- Servizo per ricavare le categorie --> 
68<#assign catLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") /> 
69<#-- Servizio per ricavare dati del journal article --> 
70<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
71<#-- Servizio per ricavare il nome del gruppo corrente --> 
72<#assign groupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService") /> 
73<#-- Nome del sito --> 
74<#assign currentGroupName = groupLocalService.getGroup(groupId).getName(locale) /> 
75<#-- Servizio per ricavare l'oggetto layout --> 
76<#assign layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService") /> 
77<#assign assetLinkLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService") /> 
78<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") /> 
79 
80<#-- Ricavo alcuni meta dati associati all'articolo --> 
81<#-- Ricavo article id --> 
82<#assign articleId = .vars['reserved-article-id'].data /> 
83<#-- Ricavo il titolo --> 
84<#assign titolo = .vars['reserved-article-title'].data /> 
85<#assign titolo = escapeExtraChar(titolo) /> 
86 
87<#-- Altri dati associati all'articolo che ricavo tramite API --> 
88<#assign article = journalArticleLocalService.getArticle( groupId,  articleId ) /> 
89 
90<#-- Data ultima modifica articolo --> 
91<#assign articleModifiedDateObj = article.getModifiedDate() /> 
92<#if validator.isNotNull(articleModifiedDateObj)> 
93	<#assign articleModifiedDate = dateUtil.getDate(articleModifiedDateObj, "dd/MM/yyyy, hh:mm", locale) /> 
94</#if> 
95 
96<#-- Url Title journal article --> 
97<#assign articleUrlTitle = article.getUrlTitle() /> 
98<#-- Primary key journal article --> 
99<#assign articlePrimKey = article.resourcePrimKey/> 
100 
101<#-- Se il carattere indicato è il prefisso della categoria, indica che la stessa non deve essere mostrata a video, ma viene solo usata per scopi funzionali --> 
102<#assign PREFIX_SERVICE_CATEGORY = "_" /> 
103 
104<#-- Ricavo tutte le categorie associate ad un articolo a meno di quelle che hanno un prefisso "_" --> 
105<#function getCategoryByArticlePrimKey articlePrimKey> 
106    <#assign tmp = "" />	 
107    <#assign articleCatNames = catLocalService.getCategories("com.liferay.journal.model.JournalArticle", getterUtil.getLong(articlePrimKey)) /> 
108	<#if (articleCatNames?size > 0)> 
109		<#list articleCatNames as category>	 
110			<#if category.name?substring(0,1) != PREFIX_SERVICE_CATEGORY > 
111				<#assign tmp = tmp + category.name + ", " />	 
112			</#if> 
113		</#list> 
114		<#assign tmp = tmp?keep_before_last(",") />				 
115	</#if>  
116    <#return tmp> 
117</#function> 
118 
119<#-- Variante: restituisce solo la lista di oggetti category --> 
120<#function getListCategoryByArticlePrimKey articlePrimKey> 
121    <#assign listCategories = [] />	 
122    <#assign articleCat = catLocalService.getCategories("com.liferay.journal.model.JournalArticle", getterUtil.getLong(articlePrimKey)) /> 
123	<#if (articleCat?size > 0)> 
124		<#list articleCat as category>	 
125			<#if category.name?substring(0,1) != PREFIX_SERVICE_CATEGORY > 
126				<#assign listCategories = listCategories + [category] />	 
127			</#if> 
128		</#list> 
129	</#if>  
130    <#return listCategories> 
131</#function> 
132 
133<#-- Funzione formatta euro  --> 
134<#function formatEuro amount> 
135	<#assign str = amount?replace("\\.","" "r")?replace(",","." "r")> 
136	<#attempt> 
137		<#assign x = str?number> 
138	    <#return x?string[",##0.00"]> 
139	<#recover> 
140	    <#return amount> 
141	</#attempt> 
142</#function> 
143 
144<#-- Funzione escape su stringa  --> 
145<#function escapeExtraChar text> 
146    <#return text?replace("\"","&quot;", "r")?replace("'","&rsquo;", "r")> 
147</#function> 
148 
149<#-- Verifico se il primo elemento di una lista esiste --> 
150<#function firstOfListNotEmpty list> 
151    <#assign result = false /> 
152	<#if list?? && list?has_content && list.getSiblings()?has_content && list.getSiblings()?first.getData()?has_content> 
153    	<#assign result = true />  
154    </#if> 
155    <#return result> 
156</#function> 
157 
158<#-- Verifico che ci sia almeno un elemento in lista --> 
159<#function oneAtLeastOfListNotEmpty list> 
160	 <#assign esito = false /> 
161	 <#if list?? && list?has_content && list.getSiblings()?has_content> 
162	 	<#list list.getSiblings() as cur_elem> 
163	 		<#if cur_elem.getData()?has_content> 
164	    		<#assign esito = true /> 
165		    	<#break> 
166	    	</#if> 
167	 	</#list> 
168    </#if> 
169    <#return esito> 
170</#function> 
171 
172<#-- parso tutte le date della struttura --> 
173<#-- data dell'atto --> 
174<#if validator.isNotNull(release_date) && validator.isNotNull(release_date.getData())> 
175	<#assign release_date_string = getterUtil.getString(release_date.getData()) /> 
176	<#if validator.isNotNull(release_date_string) && release_date_string?trim != ""> 
177		<#assign release_date_DateObj = dateUtil.parseDate("yyyy-MM-dd", release_date.getData(), locale) /> 
178		<#assign release_date_res = dateUtil.getDate(release_date_DateObj, "dd MMMM yyyy", locale) /> 
179		<#assign release_date_compact = dateUtil.getDate(release_date_DateObj, "dd-MMM-yy", locale) /> 
180	</#if> 
181</#if> 
182 
183<#-- data ultima modifica dell'atto --> 
184<#if validator.isNotNull(last_modification_date) && validator.isNotNull(last_modification_date.getData())> 
185	<#assign last_modification_date_string = getterUtil.getString(last_modification_date.getData()) /> 
186	<#if validator.isNotNull(last_modification_date_string) && last_modification_date_string?trim != ""> 
187		<#assign last_modification_date_DateObj = dateUtil.parseDate("yyyy-MM-dd", last_modification_date.getData(), locale) /> 
188		<#assign last_modification_date_res = dateUtil.getDate(last_modification_date_DateObj, "dd MMMM yyyy", locale) /> 
189		<#assign last_modification_date_compact = dateUtil.getDate(last_modification_date_DateObj, "dd-MMM-yy", locale) /> 
190	</#if> 
191</#if> 
192 
193<#-- data inizio validita' --> 
194<#if validator.isNotNull(start_date) && validator.isNotNull(start_date.getData())> 
195	<#assign start_date_string = getterUtil.getString(start_date.getData()) /> 
196	<#if validator.isNotNull(start_date_string) && start_date_string?trim != ""> 
197		<#assign start_date_DateObj = dateUtil.parseDate("yyyy-MM-dd", start_date.getData(), locale) /> 
198		<#assign start_date_res = dateUtil.getDate(start_date_DateObj, "dd MMMM yyyy", locale) /> 
199		<#assign start_date_compact = dateUtil.getDate(start_date_DateObj, "dd-MMM-yy", locale) /> 
200	</#if> 
201</#if> 
202 
203<#-- data fine validita' --> 
204<#if validator.isNotNull(end_date) && validator.isNotNull(end_date.getData())> 
205	<#assign end_date_string = getterUtil.getString(end_date.getData()) /> 
206	<#if validator.isNotNull(end_date_string) && end_date_string?trim != ""> 
207		<#assign end_date_DateObj = dateUtil.parseDate("yyyy-MM-dd", end_date.getData(), locale) /> 
208		<#assign end_date_res = dateUtil.getDate(end_date_DateObj, "dd MMMM yyyy", locale) /> 
209		<#assign end_date_compact = dateUtil.getDate(end_date_DateObj, "dd-MMM-yy", locale) /> 
210	</#if> 
211</#if> 
212 
213<#-- data cig --> 
214<#if validator.isNotNull(cig_date) && validator.isNotNull(cig_date.getData())> 
215	<#assign cig_date_string = getterUtil.getString(cig_date.getData()) /> 
216	<#if validator.isNotNull(cig_date_string) && cig_date_string?trim != ""> 
217		<#assign cig_date_DateObj = dateUtil.parseDate("yyyy-MM-dd", cig_date.getData(), locale) /> 
218		<#assign cig_date_res = dateUtil.getDate(cig_date_DateObj, "dd MMMM yyyy", locale) /> 
219		<#assign cig_date_compact = dateUtil.getDate(cig_date_DateObj, "dd-MMM-yy", locale) /> 
220	</#if> 
221</#if> 
222 
223<#-- data inizio lavori --> 
224<#if validator.isNotNull(start_work_date) && validator.isNotNull(start_work_date.getData())> 
225	<#assign start_work_date_string = getterUtil.getString(start_work_date.getData()) /> 
226	<#if validator.isNotNull(start_work_date_string) && start_work_date_string?trim != ""> 
227		<#assign start_work_date_DateObj = dateUtil.parseDate("yyyy-MM-dd", start_work_date.getData(), locale) /> 
228		<#assign start_work_date_res = dateUtil.getDate(start_work_date_DateObj, "dd MMMM yyyy", locale) /> 
229		<#assign start_work_date_compact = dateUtil.getDate(start_work_date_DateObj, "dd-MMM-yy", locale) /> 
230	</#if> 
231</#if> 
232 
233<#-- data fine lavori --> 
234<#if validator.isNotNull(end_work_date) && validator.isNotNull(end_work_date.getData())> 
235	<#assign end_work_date_string = getterUtil.getString(end_work_date.getData()) /> 
236	<#if validator.isNotNull(end_work_date_string) && end_work_date_string?trim != ""> 
237		<#assign end_work_date_DateObj = dateUtil.parseDate("yyyy-MM-dd", end_work_date.getData(), locale) /> 
238		<#assign end_work_date_res = dateUtil.getDate(end_work_date_DateObj, "dd MMMM yyyy", locale) /> 
239		<#assign end_work_date_compact = dateUtil.getDate(end_work_date_DateObj, "dd-MMM-yy", locale) /> 
240	</#if> 
241</#if> 
242 
243<#-- data liquidazione finale --> 
244<#if validator.isNotNull(final_settlement_date) && validator.isNotNull(final_settlement_date.getData())> 
245	<#assign final_settlement_date_string = getterUtil.getString(final_settlement_date.getData()) /> 
246	<#if validator.isNotNull(final_settlement_date_string) && final_settlement_date_string?trim != ""> 
247		<#assign final_settlement_date_DateObj = dateUtil.parseDate("yyyy-MM-dd", final_settlement_date.getData(), locale) /> 
248		<#assign final_settlement_date_res = dateUtil.getDate(final_settlement_date_DateObj, "dd MMMM yyyy", locale) /> 
249		<#assign final_settlement_date_compact = dateUtil.getDate(final_settlement_date_DateObj, "dd-MMM-yy", locale) /> 
250	</#if> 
251</#if> 
252 
253<#-- ricavo elenco di articoli correlati --> 
254<#assign currentArticleResourcePrimKey = article.getResourcePrimKey() /> 
255<#assign currentArticleAssetEntry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", currentArticleResourcePrimKey) /> 
256<#assign currentArticleAssetEntryId = currentArticleAssetEntry.getEntryId() /> 
257<#assign currentArticleRelatedLinks = assetLinkLocalService.getDirectLinks(currentArticleAssetEntryId) /> 
258 
259<#-- HTML --> 
260<section class="comuni-scheda scheda-bando-gara-contratto"> 
261	<div class="container"> 
262		 
263		<#-- intro scheda + funzionalita trasversali --> 
264		<div class="row"> 
265			<div class="offset-lg-1 col-lg-6 col-md-8"> 
266				<section class="intro-sezione"> 
267					<#-- titolo scheda --> 
268					<#assign titoloScheda = escapeExtraChar(titolo) /> 
269					<#if validator.isNotNull(title) && validator.isNotNull(title.getData())> 
270						<h2 class="titolo-sezione">${title.getData()}</h2> 
271						<#assign titoloScheda = escapeExtraChar(title.getData()) /> 
272					</#if> 
273					<#-- non c'è sottotitolo, ma inserisco le date di validita --> 
274					<#if start_date_res?has_content> 
275						<p class="sottotitolo-sezione mb-0"><span>${label_data_inizio_validita}:</span> <strong>${start_date_res}</strong></p> 
276						<#if end_date_res?has_content> 
277							<p class="sottotitolo-sezione mb-0"><span>${label_data_fine_validita}:</span> <strong>${end_date_res}</strong></p> 
278						</#if>						 
279					</#if> 
280				</section> 
281			</div> 
282			 
283			<#-- blocco funzionalita trasversali --> 
284			<div class="offset-lg-1 col-lg-3 col-md-4"> 
285				<#-- condivisione sui social --> 
286				<#assign currentPageURL = themeDisplay.getPortalURL()+themeDisplay.getURLCurrent() /> 
287				<#assign companyName = themeDisplay.getCompany().getName() /> 
288				 
289				<#assign twitterUrl = "http://twitter.com/share?text=${companyName} - ${titoloScheda} &url=${currentPageURL}" /> 
290				<#assign facebookUrl = "http://www.facebook.com/sharer/sharer.php?u=${currentPageURL}" /> 
291				<#assign linkedinUrl = "https://www.linkedin.com/shareArticle?mini=true&url=${currentPageURL}&title=${companyName} - ${titoloScheda}" /> 
292				<#assign whatsappUrl = "https://api.whatsapp.com/send?text=${companyName} - ${titoloScheda} - ${currentPageURL}" /> 
293				 
294				<#-- condivisione social --> 
295				<div class="dropdown d-inline share-functions"> 
296					<button class="btn btn-dropdown dropdown-toggle btn-sm" type="button" id="shareActions" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> 
297						<svg class="icon"> 
298							<use xlink:href="/o/comuni-theme/svg/sprite.svg#it-share"></use> 
299						</svg> 
300						<span>${label_condividi}</span> 
301					</button> 
302					 
303					<div class="dropdown-menu shadow-lg" aria-labelledby="shareActions"> 
304						<div class="link-list-wrapper"> 
305							<ul class="link-list"> 
306								<li> 
307									<a class="list-item" href="${facebookUrl}" target="_blank"> 
308										<svg class="icon icon-sm"> 
309											<use xlink:href="/o/comuni-theme/svg/sprite.svg#it-facebook"></use> 
310										</svg> 
311										<span>${label_facebook}</span> 
312									</a> 
313								</li> 
314								<li> 
315									<a class="list-item" href="${twitterUrl}" target="_blank"> 
316										<svg class="icon icon-sm"> 
317											<use xlink:href="/o/comuni-theme/svg/sprite.svg#it-twitter"></use> 
318										</svg> 
319										<span>${label_twitter}</span> 
320									</a> 
321								</li> 
322								<li> 
323									<a class="list-item" href="${linkedinUrl}" target="_blank"> 
324										<svg class="icon icon-sm"> 
325											<use xlink:href="/o/comuni-theme/svg/sprite.svg#it-linkedin"></use> 
326										</svg> 
327										<span>${label_linkedin}</span> 
328									</a> 
329								</li> 
330								<li> 
331									<a class="list-item" href="${whatsappUrl}" target="_blank"> 
332										<svg class="icon icon-sm"> 
333											<use xlink:href="/o/comuni-theme/svg/sprite.svg#it-whatsapp"></use> 
334										</svg> 
335										<span>${label_whatsapp}</span> 
336									</a> 
337								</li> 
338							</ul> 
339						</div> 
340					</div> 
341				</div> 
342			 
343				<#-- stampa + invia via email --> 
344				<#assign subjectEmail = companyName+" - "+titoloScheda /> 
345				<#assign bodyEmail = currentPageURL /> 
346				 
347				<div class="dropdown d-inline other-functions"> 
348					<button class="btn btn-dropdown dropdown-toggle btn-sm" type="button" id="viewActions" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> 
349						<svg class="icon"> 
350							<use xlink:href="/o/comuni-theme/svg/sprite.svg#it-more-items"></use> 
351						</svg> 
352						<span>${label_vedi_azioni}</span> 
353					</button> 
354					<div class="dropdown-menu shadow-lg" aria-labelledby="viewActions"> 
355						<div class="link-list-wrapper"> 
356							<ul class="link-list"> 
357								<li> 
358									<a class="list-item" href="javascript:void(0);" onclick="window.print();"> 
359										<svg class="icon icon-sm"> 
360              								<use xlink:href="/o/comuni-theme/svg/sprite.svg#it-print"></use> 
361            							</svg> 
362            							<span>${label_stampa}</span> 
363									</a> 
364								</li> 
365								<li> 
366									<a class="list-item" href="mailto:?subject=${subjectEmail}&body=${bodyEmail}"> 
367										<svg class="icon icon-sm"> 
368              								<use xlink:href="/o/comuni-theme/svg/sprite.svg#it-mail"></use> 
369            							</svg> 
370            							<span>${label_invia}</span> 
371									</a> 
372								</li> 
373							</ul> 
374						</div> 
375					</div>	 
376				</div> 
377				 
378				<#-- categorie --> 
379				<#assign categorie = [] /> 
380 
381				<#-- recupero l'elenco delle categorie da visualizzare --> 
382				<#assign categorie = getListCategoryByArticlePrimKey(articlePrimKey) /> 
383				 
384				<#if categorie?? && (categorie?size > 0)>	 
385					<div class="mt-4 mb-4"> 
386						<h6>${label_argomenti}</h6> 
387						<#list categorie as cur_cat> 
388							<#if validator.isNotNull(cur_cat) && cur_cat != ""> 
389								<div class="chip chip-simple chip-primary no-link"> 
390									<span class="chip-label">${cur_cat.getName()}</span> 
391								</div> 
392							</#if> 
393						</#list> 
394					</div> 
395				</#if> 
396			</div> 
397		</div> 
398	</div> 
399	 
400	<#-- dettaglio scheda --> 
401	<div class="container"> 
402		<div class="row"> 
403			<div class="col"> 
404				<section class="dettaglio-scheda border-top"> 
405					<div class="row">				 
406						<#-- menu ancore sinistra --> 
407						<div class="col-lg-3 col-md-4"> 
408							<aside class="left-anchor-menu"> 
409								 
410								<h4 class="left-anchor-menu-header" id="${instanceId}_${articleId}_left-anchor-menu-header" data-toggle="collapse" data-target="#${instanceId}_${articleId}_left-anchor-menu" aria-expanded="true" aria-controls="${instanceId}_${articleId}_left-anchor-menu"> 
411									<span>${label_indice_pagina}</span> 
412									<svg class="icon icon-sm"> 
413										<use xlink:href="/o/comuni-theme/svg/sprite.svg#it-arrow-up"></use> 
414									</svg> 
415								</h4>							 
416								 
417								<div class="left-anchor-menu-separator"><div class="left-anchor-menu-separator-inner"></div></div> 
418								 
419								<div id="${instanceId}_${articleId}_left-anchor-menu" class="collapse show" aria-labelledby="${instanceId}_${articleId}_left-anchor-menu-header"> 
420									<div class="anchor-menu-wrapper"> 
421										<ul> 
422											<#-- sezione dati generali --> 
423											<#if description?has_content || number?has_content || cig?has_content || contracting_authority_name?has_content || 
424												fiscal_code_contracting_authority?has_content || act_custody_extremes?has_content || notes_choose_contractor_mode?has_content> 
425												<li class="anchor-item"> 
426													<a class="anchor-link" href="#${instanceId}_${articleId}_dati_generali" title="${label_vai_sezione} ${label_dati_generali}">${label_dati_generali}</a>													 
427												</li> 
428											</#if> 
429											<#-- sezione importi --> 
430											<#if  
431												(validator.isNotNull(amount_award) && validator.isNotNull(amount_award.getData())) || 
432												(validator.isNotNull(amount_paid) && validator.isNotNull(amount_paid.getData())) 
433
434												<li class="anchor-item"> 
435													<a class="anchor-link" href="#${instanceId}_${articleId}_importi" title="${label_vai_sezione} ${label_importi}">${label_importi}</a>													 
436												</li> 
437											</#if> 
438											<#-- gia ricavato nella sezione principale della scheda --> 
439											<#if start_work_date_compact?has_content || end_work_date_compact?has_content || final_settlement_date_compact?has_content> 
440												<li class="anchor-item"> 
441													<a class="anchor-link" href="#${instanceId}_${articleId}_date" title="${label_vai_sezione} ${label_date}">${label_date}</a>													 
442												</li> 
443											</#if> 
444											<#-- sezione responsabile procedimento --> 
445											<#if administrative_people?has_content> 
446												<li class="anchor-item"> 
447													<a class="anchor-link" href="#${instanceId}_${articleId}_responsabile_del_procedimento" title="${label_vai_sezione} ${label_responsabile_del_procedimento}">${label_responsabile_del_procedimento}</a>													 
448												</li> 
449											</#if> 
450											<#-- sezione ufficio --> 
451											<#if office?has_content> 
452												<li class="anchor-item"> 
453													<a class="anchor-link" href="#${instanceId}_${articleId}_ufficio" title="${label_vai_sezione} ${label_ufficio_responsabile}">${label_ufficio_responsabile}</a>													 
454												</li> 
455											</#if> 
456											<#-- articoli correlati --> 
457											<#if validator.isNotNull(currentArticleRelatedLinks) && currentArticleRelatedLinks?size gt 0 > 
458												<li class="anchor-item"> 
459													<a class="anchor-link" href="#${instanceId}_${articleId}_related_articles" title="${label_vai_sezione} ${label_risorse_correlate}">${label_risorse_correlate}</a>													 
460												</li> 
461											</#if> 
462											<#-- sezione documenti --> 
463											<#if oneAtLeastOfListNotEmpty(attachment)> 
464												<li class="anchor-item"> 
465													<a class="anchor-link" href="#${instanceId}_${articleId}_attachments" title="${label_vai_sezione} ${label_documenti}">${label_documenti}</a>													 
466												</li> 
467											</#if>	 
468											<#-- sezione ulteriori informazioni + ultimo aggiornamento --> 
469											<li class="anchor-item"> 
470												<a class="anchor-link" href="#${instanceId}_${articleId}_further_information" title="${label_vai_sezione} ${label_ulteriori_informazioni}">${label_ulteriori_informazioni}</a>													 
471											</li> 
472										</ul> 
473									</div> 
474								</div> 
475							</aside> 
476						</div> 
477						 
478						<div class="col-lg-9 col-md-8"> 
479							<div class="border-left pl-md-4 pt-4"> 
480								<#-- sezione testo principale --> 
481								<#if  
482									(validator.isNotNull(description) && validator.isNotNull(description.getData())) || 
483									(validator.isNotNull(cig) && validator.isNotNull(cig.getData())) || 
484									(validator.isNotNull(number) && validator.isNotNull(number.getData())) || 
485									(validator.isNotNull(contracting_authority_name) && validator.isNotNull(contracting_authority_name.getData())) || 
486									(validator.isNotNull(fiscal_code_contracting_authority) && validator.isNotNull(fiscal_code_contracting_authority.getData())) || 
487									(validator.isNotNull(act_custody_extremes) && validator.isNotNull(act_custody_extremes.getData())) || 
488									(validator.isNotNull(notes_choose_contractor_mode) && validator.isNotNull(notes_choose_contractor_mode.getData())) || 
489									release_date_compact?has_content || last_modification_date_compact?has_content || cig_date?has_content || start_date?has_content || end_date?has_content 
490
491									<article id="${instanceId}_${articleId}_dati_generali" class="page-section anchor-section"> 
492										<h4 class="h2">${label_dati_generali}</h4> 
493										<div class="row"> 
494											<div class="col-12"> 
495												<div class="page-section-text"> 
496													<#if validator.isNotNull(description) && validator.isNotNull(description.getData())> 
497														${description.getData()} 
498													</#if> 
499													<#if validator.isNotNull(number) && validator.isNotNull(number.getData())> 
500														<div><strong>${label_numero}: </strong>${number.getData()}</div>													 
501													</#if> 
502													<#if validator.isNotNull(cig) && validator.isNotNull(cig.getData())> 
503														<div><strong>${label_cig} </strong>${cig.getData()}</div>													 
504													</#if> 
505													<#if validator.isNotNull(contracting_authority_name) && validator.isNotNull(contracting_authority_name.getData())> 
506														<div><strong>${label_contracting_authority_name} </strong>${contracting_authority_name.getData()}</div>													 
507													</#if> 
508													<#if validator.isNotNull(fiscal_code_contracting_authority) && validator.isNotNull(fiscal_code_contracting_authority.getData())> 
509														<div><strong>${label_fiscal_code_contracting_authority} </strong>${fiscal_code_contracting_authority.getData()}</div>													 
510													</#if> 
511													<#if validator.isNotNull(act_custody_extremes) && validator.isNotNull(act_custody_extremes.getData())> 
512														<div><strong>${label_act_custody_extremes} </strong>${act_custody_extremes.getData()}</div>													 
513													</#if> 
514													<#if validator.isNotNull(notes_choose_contractor_mode) && validator.isNotNull(notes_choose_contractor_mode.getData())> 
515														<div><strong>${label_notes_choose_contractor_mode} </strong><br/>${notes_choose_contractor_mode.getData()}</div>													 
516													</#if> 
517													 
518													<div class="point-list-wrapper my-4"> 
519														<#-- data ultima modifica dell'atto --> 
520														<#if last_modification_date_compact?has_content> 
521															<#assign last_modification_date_split = last_modification_date_compact?split("-") />	 
522															<div class="point-list"> 
523																<div class="point-list-aside point-list-warning"> 
524																	<div class="point-date">${last_modification_date_split[0]}</div> 
525																	<div class="point-month">${last_modification_date_split[1]}/${last_modification_date_split[2]}</div> 
526																	<#-- <div class="point-year">${last_modification_date_split[2]}</div> --> 
527																</div> 
528																<div class="point-list-content"> 
529																	<div class="card m-0"> 
530																		<div class="card-body"> 
531																			<h5 class="h3 card-title m-0"><span>${label_data_ultima_modifica}</span></h5> 
532																		</div> 
533																	</div> 
534																</div> 
535															</div> 
536														</#if> 
537														 
538														<#-- data acquisizione cig --> 
539														<#if cig_date_compact?has_content> 
540															<#assign cig_date_split = cig_date_compact?split("-") />	 
541															<div class="point-list"> 
542																<div class="point-list-aside point-list-warning"> 
543																	<div class="point-date">${cig_date_split[0]}</div> 
544																	<div class="point-month">${cig_date_split[1]}/${cig_date_split[2]}</div> 
545																	<#-- <div class="point-year">${cig_date_split[2]}</div> --> 
546																</div> 
547																<div class="point-list-content"> 
548																	<div class="card m-0"> 
549																		<div class="card-body"> 
550																			<h5 class="h3 card-title m-0"><span>${label_data_cig}</span></h5> 
551																		</div> 
552																	</div> 
553																</div> 
554															</div> 
555														</#if> 
556														 
557														<#-- data dell'atto --> 
558														<#if release_date_compact?has_content> 
559															<#assign release_date_split = release_date_compact?split("-") />	 
560															<div class="point-list"> 
561																<div class="point-list-aside point-list-warning"> 
562																	<div class="point-date">${release_date_split[0]}</div> 
563																	<div class="point-month">${release_date_split[1]}/${release_date_split[2]}</div> 
564																	<#-- <div class="point-year">${release_date_split[2]}</div> --> 
565																</div> 
566																<div class="point-list-content"> 
567																	<div class="card m-0"> 
568																		<div class="card-body"> 
569																			<h5 class="h3 card-title m-0"><span>${label_data_atto}</span></h5> 
570																		</div> 
571																	</div> 
572																</div> 
573															</div> 
574														</#if> 
575														 
576														<#-- data inizio validita' --> 
577														<#if start_date_compact?has_content> 
578															<#assign start_date_split = start_date_compact?split("-") />	 
579															<div class="point-list"> 
580																<div class="point-list-aside point-list-warning"> 
581																	<div class="point-date">${start_date_split[0]}</div> 
582																	<div class="point-month">${start_date_split[1]}/${start_date_split[2]}</div> 
583																	<#-- <div class="point-year">${start_date_split[2]}</div> --> 
584																</div> 
585																<div class="point-list-content"> 
586																	<div class="card m-0"> 
587																		<div class="card-body"> 
588																			<h5 class="h3 card-title m-0"><span>${label_data_inizio_validita}</span></h5> 
589																		</div> 
590																	</div> 
591																</div> 
592															</div> 
593														</#if> 
594														 
595														<#-- data fine validita' --> 
596														<#if end_date_compact?has_content> 
597															<#assign end_date_split = end_date_compact?split("-") />	 
598															<div class="point-list"> 
599																<div class="point-list-aside point-list-warning"> 
600																	<div class="point-date">${end_date_split[0]}</div> 
601																	<div class="point-month">${end_date_split[1]}/${end_date_split[2]}</div> 
602																	<#-- <div class="point-year">${end_date_split[2]}</div> --> 
603																</div> 
604																<div class="point-list-content"> 
605																	<div class="card m-0"> 
606																		<div class="card-body"> 
607																			<h5 class="h3 card-title m-0"><span>${label_data_fine_validita}</span></h5> 
608																		</div> 
609																	</div> 
610																</div> 
611															</div> 
612														</#if> 
613													</div> 
614												</div> 
615											</div> 
616										</div> 
617									</article>	 
618								</#if> 
619								 
620								<#-- sezione importi --> 
621								<#if  
622									(validator.isNotNull(amount_award) && validator.isNotNull(amount_award.getData())) || 
623									(validator.isNotNull(amount_paid) && validator.isNotNull(amount_paid.getData())) 
624
625									<article id="${instanceId}_${articleId}_importi" class="page-section anchor-section"> 
626									<h4 class="h2">${label_importi}</h4> 
627										<div class="row"> 
628											<div class="col-12"> 
629												<div class="page-section-text"> 
630													<#if validator.isNotNull(amount_award) && validator.isNotNull(amount_award.getData())> 
631														<div><strong>${label_importo_aggiudicazione} </strong>${formatEuro(amount_award.getData())}&nbsp;&euro;</div>													 
632													</#if> 
633													<#if validator.isNotNull(amount_paid) && validator.isNotNull(amount_paid.getData())> 
634														<div><strong>${label_importo_somme_liquidate} </strong>${formatEuro(amount_paid.getData())}&nbsp;&euro;</div>													 
635													</#if> 
636												</div> 
637											</div> 
638										</div> 
639									</article>	 
640								</#if> 
641								 
642								<#-- sezione date dell' atto --> 
643								<#if start_work_date_compact?has_content || end_work_date_compact?has_content || final_settlement_date_compact?has_content> 
644									<article id="${instanceId}_${articleId}_date" class="page-section anchor-section"> 
645										<h4 class="h2">${label_date}</h4> 
646										<div class="row"> 
647											<div class="col-12"> 
648												<div class="point-list-wrapper my-4"> 
649													 
650													<#-- data inizio lavori --> 
651													<#if start_work_date_compact?has_content> 
652														<#assign start_work_date_split = start_work_date_compact?split("-") />	 
653														<div class="point-list"> 
654															<div class="point-list-aside point-list-warning"> 
655																<div class="point-date">${start_work_date_split[0]}</div> 
656																<div class="point-month">${start_work_date_split[1]}/${start_work_date_split[2]}</div> 
657																<#-- <div class="point-year">${start_work_date_split[2]}</div> --> 
658															</div> 
659															<div class="point-list-content"> 
660																<div class="card m-0"> 
661																	<div class="card-body"> 
662																		<h5 class="h3 card-title m-0"><span>${label_data_inizio_lavori}</span></h5> 
663																	</div> 
664																</div> 
665															</div> 
666														</div> 
667													</#if> 
668													 
669													<#-- data fine lavori --> 
670													<#if end_work_date_compact?has_content> 
671														<#assign end_work_date_split = end_work_date_compact?split("-") />	 
672														<div class="point-list"> 
673															<div class="point-list-aside point-list-warning"> 
674																<div class="point-date">${end_work_date_split[0]}</div> 
675																<div class="point-month">${end_work_date_split[1]}/${end_work_date_split[2]}</div> 
676																<#-- <div class="point-year">${end_work_date_split[2]}</div> --> 
677															</div> 
678															<div class="point-list-content"> 
679																<div class="card m-0"> 
680																	<div class="card-body"> 
681																		<h5 class="h3 card-title m-0"><span>${label_data_fine_lavori}</span></h5> 
682																	</div> 
683																</div> 
684															</div> 
685														</div> 
686													</#if> 
687													 
688													<#-- data fine liquidazione --> 
689													<#if final_settlement_date_compact?has_content> 
690														<#assign final_settlement_date_split = final_settlement_date_compact?split("-") />	 
691														<div class="point-list"> 
692															<div class="point-list-aside point-list-warning"> 
693																<div class="point-date">${final_settlement_date_split[0]}</div> 
694																<div class="point-month">${final_settlement_date_split[1]}/${final_settlement_date_split[2]}</div> 
695																<#-- <div class="point-year">${final_settlement_date_split[2]}</div> --> 
696															</div> 
697															<div class="point-list-content"> 
698																<div class="card m-0"> 
699																	<div class="card-body"> 
700																		<h5 class="h3 card-title m-0"><span>${label_data_fine_liquidazione}</span></h5> 
701																	</div> 
702																</div> 
703															</div> 
704														</div> 
705													</#if> 
706													 
707												</div> 
708											</div> 
709										</div> 
710									</article>	 
711								</#if> 
712								 
713								<#-- sezione responsabile procedimento --> 
714								<article id="${instanceId}_${articleId}_responsabile_del_procedimento" class="page-section anchor-section"> 
715									<h4 class="h2">${label_responsabile_del_procedimento}</h4> 
716									<div class="row"> 
717										<div class="col-12"> 
718											<#assign administrative_people_webContentData = jsonFactoryUtil.createJSONObject(administrative_people.getData()) /> 
719											<#if validator.isNotNull(administrative_people_webContentData)> 
720												<#-- ricavo il classPK --> 
721												<#assign cur_administrative_staff_classPK = administrative_people_webContentData.classPK?number /> 
722												<#-- ricavo il journal article --> 
723												<#assign cur_administrative_staff_ja = journalArticleLocalService.getLatestArticle(cur_administrative_staff_classPK) /> 
724												<#-- ricavo il nome della struttura --> 
725												<#assign cur_administrative_staff_ja_structure_name = cur_administrative_staff_ja.getDDMStructure().getName(locale) /> 
726												<#-- ricavo structureKey --> 
727												<#assign cur_administrative_staff_ja_structureKey = cur_administrative_staff_ja.getDDMStructureKey() /> 
728 
729												<#if cur_administrative_staff_ja??> 
730													<#if cur_administrative_staff_ja_structureKey == STRUCTURE_KEY_PERSONALE_AMMINISTRATIVO> 
731													 
732														<#-- ricavo l'url title associato all'articolo --> 
733														<#assign cur_administrative_staff_ja_url_title= cur_administrative_staff_ja.getUrlTitle() /> 
734													 
735														<#-- ricavo il metodo di saxReaderUtil utile per ricavare poi gli elementi della struttura --> 
736														<#assign document = saxReaderUtil.read(cur_administrative_staff_ja.getContentByLocale(locale)) /> 
737														<#assign rootElement = document.getRootElement() /> 
738														 
739														<#-- inizio a ricavare i dati dalla struttura dell'articolo --> 
740														<#-- nome --> 
741														<#assign name = "" /> 
742														<#assign name_xpath = saxReaderUtil.createXPath("dynamic-element[@name='name']") /> 
743														<#assign name = name_xpath.selectSingleNode(rootElement).getStringValue() /> 
744														<#assign name = name?trim /> 
745	 
746														<#-- cognome --> 
747														<#assign surname = "" /> 
748														<#assign surname_xpath = saxReaderUtil.createXPath("dynamic-element[@name='surname']") /> 
749														<#assign surname = surname_xpath.selectSingleNode(rootElement).getStringValue() /> 
750														<#assign surname = surname?trim /> 
751														 
752														<#if name?has_content && surname?has_content> 
753															<a class="chip-link" href="/-/${cur_administrative_staff_ja_url_title}" title="${label_vai_alla_pagina} ${escapeExtraChar(name)} ${escapeExtraChar(surname)}"> 
754																<div class="chip chip-simple chip-primary"> 
755																	<span class="chip-label">${name} ${surname}</span> 
756																</div> 
757															</a>		 
758														</#if> 
759													 
760													</#if> 
761												</#if> 
762											</#if> 
763										</div> 
764									</div> 
765								</article> 
766								 
767								<#-- sezione ufficio --> 
768								<article id="${instanceId}_${articleId}_ufficio" class="page-section anchor-section"> 
769									<div class="row"> 
770										<div class="col-12"> 
771											<h4 class="h2">${label_ufficio_responsabile}</h4> 
772											<div class="row"> 
773												<#assign office_webContentData = jsonFactoryUtil.createJSONObject(office.getData()) /> 
774												<#-- ricavo il classPK --> 
775												<#assign cur_office_classPK = office_webContentData.classPK?number /> 
776												<#-- ricavo il journal article --> 
777												<#assign cur_office_ja = journalArticleLocalService.getLatestArticle(cur_office_classPK) /> 
778												<#-- ricavo il nome della struttura --> 
779												<#assign cur_office_ja_structure_name = cur_office_ja.getDDMStructure().getName(locale) /> 
780												<#-- ricavo structureKey --> 
781												<#assign cur_office_ja_structureKey = cur_office_ja.getDDMStructureKey() /> 
782	 
783												<#if cur_office_ja??> 
784													<#if cur_office_ja_structureKey == STRUCTURE_KEY_UFFICIO> 
785													 
786														<#-- ricavo l'url title associato all'articolo --> 
787														<#assign cur_office_ja_url_title= cur_office_ja.getUrlTitle() /> 
788													 
789														<#-- ricavo il metodo di saxReaderUtil utile per ricavare poi gli elementi della struttura --> 
790														<#assign document = saxReaderUtil.read(cur_office_ja.getContentByLocale(locale)) /> 
791														<#assign rootElement = document.getRootElement() /> 
792														 
793														<#-- inizio a ricavare i dati dalla struttura dell'articolo --> 
794														<#-- titolo --> 
795														<#assign title = "" /> 
796														<#assign title_xpath = saxReaderUtil.createXPath("dynamic-element[@name='title']") /> 
797														<#assign title = title_xpath.selectSingleNode(rootElement).getStringValue() /> 
798														<#assign title = title?trim /> 
799														 
800														<#if title?has_content> 
801															<div class="col-lg-6"> 
802																<div class="card"> 
803																	<div class="card-body p-3"> 
804																		<h2 class="h2 card-title m-0 d-inline-flex"> 
805																			<div class="category-top mb-0 mr-2"> 
806																				<svg class="icon icon-primary"> 
807																					<use xlink:href="/o/comuni-theme/svg/sprite.svg#it-pa"></use> 
808																				</svg> 
809																			</div> 
810																			<a href="/-/${cur_office_ja_url_title}" title="${label_vai_alla_pagina} ${escapeExtraChar(title)}"> 
811																				${title} 
812																			</a> 
813																		</h2> 
814																	</div> 
815																</div> 
816															</div> 
817														</#if> 
818													</#if> 
819												</#if> 
820											</div> 
821										</div> 
822									</div> 
823								</article> 
824								 
825								<#-- sezione link articoli correlati --> 
826								<#if validator.isNotNull(currentArticleRelatedLinks) && currentArticleRelatedLinks?size gt 0 > 
827									<div class="row"> 
828										<div class="col-12"> 
829											<article id="${instanceId}_${articleId}_related_articles" class="page-section anchor-section"> 
830												<h4 class="h2">${label_risorse_correlate}</h4> 
831												<div class="row"> 
832													<#list currentArticleRelatedLinks as related_entry> 
833														<#assign relatedAssetEntryId = related_entry.getEntryId2() /> 
834														<#assign relatedAssetEntry = assetEntryLocalService.getEntry(relatedAssetEntryId) /> 
835														<#assign relatedAssetEntryPrimKey = relatedAssetEntry.getClassPK() /> 
836														<#assign relatedArticle = journalArticleLocalService.getLatestArticle(relatedAssetEntryPrimKey) /> 
837	 
838														<#-- ricavo l'url title associato all'articolo --> 
839														<#assign related_js_url_title = relatedArticle.getUrlTitle() /> 
840													 
841														<#-- ricavo il metodo di saxReaderUtil utile per ricavare poi gli elementi della struttura --> 
842														<#assign document = saxReaderUtil.read(relatedArticle.getContentByLocale(locale)) /> 
843														<#assign rootElement = document.getRootElement() /> 
844														 
845														<#-- inizio a ricavare i dati dalla struttura dell'articolo --> 
846														<#-- titolo --> 
847														<#assign title = "" /> 
848														<#assign title_xpath = saxReaderUtil.createXPath("dynamic-element[@name='title']") /> 
849														<#assign title = title_xpath.selectSingleNode(rootElement).getStringValue() /> 
850														<#assign title = title?trim /> 
851														 
852														<#if title?has_content> 
853															<div class="col-lg-6"> 
854																<div class="card"> 
855																	<div class="card-body"> 
856																		<h2 class="h2 card-title m-0 d-inline-flex"> 
857																			<div class="category-top mb-0 mr-2"> 
858																				<svg class="icon icon-primary"> 
859																					<use xlink:href="/o/comuni-theme/svg/sprite.svg#it-files"></use> 
860																				</svg> 
861																			</div> 
862																			<a href="/-/${related_js_url_title}" title="${label_vai_alla_pagina} ${escapeExtraChar(title)}"> 
863																				${title} 
864																			</a> 
865																		</h2> 
866																	</div> 
867																</div> 
868															</div>			 
869														</#if>	 
870													</#list> 
871												</div> 
872											</article> 
873										</div> 
874									</div> 
875								</#if> 
876								 
877								<#-- sezione documenti --> 
878								<#if oneAtLeastOfListNotEmpty(attachment)> 
879									<article id="${instanceId}_${articleId}_attachments" class="page-section anchor-section"> 
880										<h4 class="h2">${label_documenti}</h4>									 
881										<div class="row"> 
882											<#list attachment.getSiblings() as cur_attachment> 
883												<#if validator.isNotNull(cur_attachment) && validator.isNotNull(cur_attachment.getData())> 
884													<#attempt> 
885													 
886														<#-- ricavo la size del documento --> 
887														<#-- a partire dal link, lo splitto e ricavo il secondo ed il 5 argomento che mi servono per il metodo successivo --> 
888														<#assign dlFileEntrySize = "" /> 
889														<#assign parts = (cur_attachment.getData())?split("/") /> 
890														<#assign groupId = parts[2] /> 
891														<#assign uuId = parts[5]?split("?")[0] /> 
892														 
893														<#assign dlFileEntryService = serviceLocator.findService('com.liferay.document.library.kernel.service.DLFileEntryLocalService') /> 
894														<#assign dlFileEntry = dlFileEntryService.getFileEntryByUuidAndGroupId(uuId,groupId?number) />									 
895														 
896														<#assign dlFileEntrySize = dlFileEntry.getSize() /> 
897														<#assign dlFileEntryExtension = dlFileEntry.getExtension()?upper_case?trim /> 
898														 
899														<#-- trasformo la dimensione in KB --> 
900														<#if (dlFileEntrySize gt 0) > 
901															<#assign dlFileEntrySize = (dlFileEntrySize / 1000) + " KB"/> 
902														</#if> 
903								 
904														<#-- ricavo il titolo dell'allegato: se nn c'è passo un titolo generico --> 
905														<#assign attachment_header = label_documento /> 
906														<#if validator.isNotNull(cur_attachment.attachment_header) && validator.isNotNull(cur_attachment.attachment_header.getData()) > 
907															<#assign attachment_header = cur_attachment.attachment_header.getData()?trim /> 
908														</#if> 
909														 
910														<#-- visualizzo il link dell'allegato -->  
911														<div class="col-lg-6"> 
912															<div class="card allegati-card"> 
913																<div class="card-body"> 
914																	<div class="allegato d-flex"> 
915																		<div class="icon-img-wrapper"> 
916																			<svg class="icon"> 
917																				<use xlink:href="/o/comuni-theme/svg/sprite.svg#it-clip"></use> 
918																			</svg> 
919																		</div> 
920																		<div class="text-wrapper pl-3"> 
921																			<h5 class="h3 card-title m-0"> 
922																				<a href="${cur_attachment.getData()}" target="_blank" title='File <#if dlFileEntryExtension != "">in formato ${dlFileEntryExtension}</#if> - ${dlFileEntrySize}'> 
923																					<strong>${attachment_header}</strong> 
924																				</a> 
925																			</h5> 
926																			<#if cur_attachment.attachment_description?? && validator.isNotNull(cur_attachment.attachment_description) && validator.isNotNull(cur_attachment.attachment_description.getData()) > 
927																				<div class="card-text"><small>${cur_attachment.attachment_description.getData()}</small></div> 
928																			</#if> 
929																		</div> 
930																	</div> 
931																</div> 
932															</div> 
933														</div> 
934													<#recover> 
935														<#-- non visualizzo nulla -->															 
936													</#attempt>					 
937												</#if> 
938											</#list> 
939										</div> 
940									</article> 
941								</#if> 
942								 
943								<#-- sezione ulteriori informazioni + data ultimo aggiornamento --> 
944								<article id="${instanceId}_${articleId}_further_information" class="page-section anchor-section"> 
945									<h4 class="h2">${label_ulteriori_informazioni}</h4> 
946									<#if validator.isNotNull(further_information) && validator.isNotNull(further_information.getData())> 
947										<div class="row"> 
948											<div class="col-12"> 
949												<div class="callout"> 
950													<div class="callout-title"> 
951														<svg class="icon"> 
952															<use xlink:href="/o/comuni-theme/svg/sprite.svg#it-info-circle"></use> 
953														</svg> 
954													</div> 
955													<div class="callout-text"> 
956														${further_information.getData()} 
957													</div> 
958												</div> 
959											</div> 
960										</div> 
961									</#if>	 
962									<#-- data ultimo aggiornamento --> 
963									<div class="row"> 
964										<div class="col-12"> 
965											<p class="mb-0">${label_ultimo_aggiornamento}</p> 
966											<p><strong>${articleModifiedDate}</strong></p> 
967										</div> 
968									</div> 
969								</article> 
970								 
971							</div> 
972						</div> 
973					</div> 
974				</section> 
975			</div> 
976		</div> 
977	</div> 
978</section>