Sessioni Esame
Si è verificato un errore nell'elaborarazione del modello.
The following has evaluated to null or missing: ==> document.selectSingleNode("/root/dynamic-element[@name='protocollo']/dynamic-content") [in template "20155#20195#36430" at line 32, column 36] ---- Tip: If the failing expression is known to 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: protocollo = document.selectSingleNod... [in template "20155#20195#36430" at line 32, column 23] ----
1<#-- CNF UTILS -->
2<#include "${templatesPath}/CNF-UTILS" />
3<#setting time_zone=timeZone.ID>
4<#setting locale=locale.toString()>
5<#assign portlet_display = portletDisplay />
6<#assign portlet_display_name = htmlUtil.escape(portlet_display.getPortletDisplayName()) />
7<#assign portlet_title = htmlUtil.escape(portlet_display.getTitle()) />
8
9<#-- Servizi -->
10<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
11<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService" ) />
12
13<div>
14 <#if portlet_title!="">
15 <article class="article-detail">
16 <div class="article-detail__title mb-5">
17 <h1>
18 ${portlet_title}
19 </h1>
20 <span class="under-title"></span>
21 </div>
22 </article>
23 </#if>
24 <div class="row">
25 <div class="col-12">
26 <#if entries?has_content>
27 <#list entries as curEntry>
28 <#assign renderer = curEntry.getAssetRenderer()
29 journalArticle = renderer.getArticle()
30 document = saxReaderUtil.read(journalArticle.getContentByLocale(locale.toString()))
31 titolo = document.selectSingleNode("/root/dynamic-element[@name='titolo']/dynamic-content").getText()
32 protocollo = document.selectSingleNode("/root/dynamic-element[@name='protocollo']/dynamic-content").getText()
33 testo = document.selectSingleNode("/root/dynamic-element[@name='testo']/dynamic-content").getText()
34 link_esterno = document.selectSingleNode("/root/dynamic-element[@name='link_esterno']/dynamic-content").getText()
35 currentURL = themeDisplay.getURLCurrent()
36 viewInContextUrl = renderer.getURLViewInContext(renderRequest, renderResponse, currentURL)
37 i = curEntry?index
38 data_inizio = document.selectSingleNode("/root/dynamic-element[@name='data_inizio']/dynamic-content")
39 start_date = ""
40 start_day = ""
41 start_month = ""
42 start_year = ""
43 data_scadenza = document.selectSingleNode("/root/dynamic-element[@name='data_scadenza']/dynamic-content")
44 end_date = ""
45 end_date_string = ""
46 />
47
48 <#if validator.isNotNull(data_inizio) && validator.isNotNull(data_inizio.getText())>
49 <#assign start_date = data_inizio.getText()?date("yyyy-MM-dd")
50 start_day = start_date?string["dd"]
51 start_month = start_date?string["MMMM"]
52 start_year = start_date?string["yyy"]
53 />
54 </#if>
55
56 <#if validator.isNotNull(data_scadenza) && validator.isNotNull(data_scadenza.getText())>
57 <#assign end_date = data_scadenza.getText()?date("yyyy-MM-dd")
58 end_date_string = end_date?string["dd/MMM/yyyy"]
59 />
60 </#if>
61
62 <div class="card-document">
63 <div class="row">
64 <div class="col-md-3">
65 <div class="card-document__date">
66 <div class="d-md-flex">
67 <svg class="ico-svg">
68 <use xlink:href="${icons}#file-alt"></use>
69 </svg>
70 <div>
71 <div class="card-document__day">
72 ${start_day}
73 </div>
74 <div>
75 ${start_month}
76 </div>
77 <div>
78 ${start_year}
79 </div>
80 </div>
81 </div>
82 </div>
83 </div>
84 <div class="col-md-8">
85 <div class="d-flex justify-content-between">
86 <div class="card-document__info">
87 <#if data_scadenza.getText() != "" >
88 Scadenza
89 <span>${end_date_string}</span>
90 </#if>
91 </div>
92 <div class="card-document__info">
93 <#if protocollo != "" >
94 Protocollo
95 <span>${protocollo}</span>
96 </#if>
97 </div>
98 </div>
99 <a href="${viewInContextUrl}" title="${titolo}" class="card-document__title">
100 ${titolo}
101 <@getEditIcon "Contenuto" />
102 </a>
103 <div>
104 <#assign
105 assetLinkLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService")
106 assetLinks = assetLinkLocalService.getDirectLinks(curEntry.getEntryId())
107 AssetEntryService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryService")
108 counter = 0
109 />
110
111 <#list assetLinks as item>
112 <#assign linkedAssetEntryId = item.getEntryId2() />
113 <#assign linkedAssetEntry = assetEntryLocalService.getEntry(linkedAssetEntryId) />
114 <#assign linkedAssetEntryClassName = linkedAssetEntry.getClassName() />
115 <#if (linkedAssetEntryClassName == "com.liferay.document.library.kernel.model.DLFileEntry") >
116 <#assign counter = counter + 1 />
117 </#if>
118 </#list>
119
120 <#if counter != 0>
121 <a href="${viewInContextUrl}" title="${titolo}" class="btn-link btn-link--blue">
122 ${counter} Allegati
123 </a>
124 </#if>
125 <#if link_esterno != "">
126 <a href="${viewInContextUrl}" title="${titolo}" class="btn-link btn-link--green">
127 Link Utile
128 </a>
129 </#if>
130 </div>
131 </div>
132 </div>
133 </div>
134 </#list>
135 </#if>
136 <#attempt>
137 <#assign bandi_page = getterUtil.getString(themeDisplay.getThemeSetting('bandi-page'), "") />
138 <#recover>
139 <#assign bandi_page = "" />
140 </#attempt>
141 <#if bandi_page!="">
142 <a href="${bandi_page}" title="vedi tutti >" class="btn-link">
143 vedi tutti >
144 </a>
145 </#if>
146 </div>
147 </div>
148</div>