CNGeGL
I Collegi
ELEZIONE DEI CONSIGLI DIRETTIVI
テンプレート処理中にエラーが発生しました。
Java method "jdk.proxy3.$Proxy129.getFileEntryByUuidAndGroupId(String, long)" threw an exception when invoked on jdk.proxy3.$Proxy129 object "com.liferay.document.library.internal.service.SubscriptionDLAppLocalServiceWrapper@1a1af02c"; see cause exception in the Java stack trace.
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign allegatoEntry = dlAppLocalSer... [in template "20115#20151#331590" at line 124, column 9]
----
1<!-- ModelloConsigliDirettivi -->
2
3<#-- =================== INIZIO PARTE NEWS LOOP =================== -->
4
5<main class="cng">
6<section class="section">
7
8<div class="container">
9
10
11 <div class="" id="newsContainer">
12
13
14
15<div class="row">
16
17
18 <div class="col-lg-12 col-12">
19 <!-- *** TABELLA *** -->
20 <div >
21
22
23 <table id="rassegna-table" class="table dataTable no-footer font-size-12" style="width: 100%;">
24
25 <thead style="color: #fff;
26 background-color: #007BA5;
27 border-color: #dee2e6;">
28 <tr role="row">
29 <th class="sorting_desc" rowspan="1" colspan="1">Collegio</th>
30 <th class="sorting" rowspan="1" colspan="1">Prima convocazione</th>
31 <th class="sorting" rowspan="1" colspan="1">Seconda convocazione</th>
32 <th class="sorting" rowspan="1" colspan="1">Eventuale ballottaggio</th>
33
34 </tr>
35 </thead>
36 <tbody style="background-color: white;">
37
38<#assign img_folder = themeDisplay.getPathThemeImages() + "/../img" />
39
40<#if entries?has_content>
41
42 <#assign idxLoop = 0 />
43
44 <#list entries as curEntry> <#-- INIZIO LOOP (indici 0-based)-->
45
46
47<#assign idxLoop = curEntry?index />
48
49<#assign newsTitle = curEntry.getTitle(locale) />
50<#assign newsSummary = curEntry.getSummary(locale) />
51<#assign dataPub = curEntry.getModifiedDate() /> <#-- getPublishDate() -->
52
53<#assign renderer = curEntry.getAssetRenderer() />
54<#assign Article = renderer.getArticle() />
55
56
57<#assign viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, curEntry) />
58<#assign viewURLAsset = renderer.getURLViewInContext(renderRequest, renderResponse, viewURL) />
59
60
61
62<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
63<#assign DDMStructureLocalService = serviceLocator.findService("com.liferay.dynamic.data.mapping.service.DDMStructureLocalService") >
64<#assign dlAppLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppLocalService")>
65<#assign article = journalArticleLocalService.getLatestArticle(Article.resourcePrimKey) />
66<#assign docTotale = article.getContentByLocale(localeUtil.toLanguageId(localeUtil.getDefault())) />
67<#assign doc = saxReaderUtil.read(article.getContentByLocale(localeUtil.toLanguageId(localeUtil.getDefault()))) />
68
69
70<#-- INIZIO LETTURA CAMPI -->
71
72<#-- ORIGNALE
73<#assign titoloNodePath = saxReaderUtil.createXPath("dynamic-element[@name='nomeAllegato']") />
74<#assign titoloNode = titoloNodePath.selectSingleNode(rootElement) />
75<#assign xPathSelector = saxReaderUtil.createXPath("dynamic-content") />
76<#assign nomeAllegato = xPathSelector.selectSingleNode(titoloNode).getStringValue() />
77
78<#assign PrimaConvNodePath = saxReaderUtil.createXPath("dynamic-element[@name='primaConv']") />
79<#assign primaConvc = PrimaConvNodePath.selectSingleNode(rootElement) />
80<#assign xPathSelector2 = saxReaderUtil.createXPath("dynamic-content") />
81<#assign primaConv = xPathSelector2.selectSingleNode(primaConvc).getStringValue() />
82
83<#assign SecondaConvNodePath = saxReaderUtil.createXPath("dynamic-element[@name='secondaConv']") />
84<#assign secondaConvc = SecondaConvNodePath.selectSingleNode(rootElement) />
85<#assign xPathSelector3= saxReaderUtil.createXPath("dynamic-content") />
86<#assign secondaConv = xPathSelector3.selectSingleNode(secondaConvc).getStringValue() />
87
88<#assign xPathFile = saxReaderUtil.createXPath("dynamic-element[@name='allegato']") />
89
90<#assign BallottaggioNodePath = saxReaderUtil.createXPath("dynamic-element[@name='ballottaggio']") />
91<#assign ball = BallottaggioNodePath.selectSingleNode(rootElement) />
92<#assign xPathSelector4= saxReaderUtil.createXPath("dynamic-content") />
93<#assign ballottaggio = xPathSelector4.selectSingleNode(ball).getStringValue() />
94
95<#assign xPathFile = saxReaderUtil.createXPath("dynamic-element[@name='allegato']") />
96
97<#assign fileLink = "" />
98<#if xPathFile?? >
99<#assign xPathFile = saxReaderUtil.createXPath("dynamic-element[@name='allegato']/dynamic-content") />
100<#assign fileLink = xPathFile.selectSingleNode(titoloNode).getStringValue() />
101<#else>
102<#assign fileLink = "" />
103-->
104
105<#-- NUOVE API 2025 -->
106<#assign rootElement = doc.getRootElement() />
107<#assign news = rootElement.selectNodes("/nomeAllegato") />
108
109<#assign nomeAllegato = rootElement.selectSingleNode("//dynamic-element[@name='nomeAllegato']/dynamic-content").getText() />
110<#assign primaConv = rootElement.selectSingleNode("//dynamic-element[@name='primaConv']/dynamic-content").getText() />
111<#assign secondaConv = rootElement.selectSingleNode("//dynamic-element[@name='secondaConv']/dynamic-content").getText() />
112<#assign ballottaggio = rootElement.selectSingleNode("//dynamic-element[@name='ballottaggio']/dynamic-content").getText() />
113
114<#assign allegatoNode = rootElement.selectSingleNode("//dynamic-element[@name='allegato']/dynamic-content")>
115<#assign allegatoJson = jsonFactoryUtil.createJSONObject(allegatoNode.getText())>
116<#assign allegatoEntryId = allegatoJson.getString("uuid")>
117<#assign allegatoGroupId = allegatoJson.getLong("groupId")>
118<!-- ALLEGATO: ${allegatoNode} -->
119<!-- ALLEGATO JSON: ${allegatoJson} -->
120<!-- ALLEGATO ENTRY ID: ${allegatoEntryId} -->
121<!-- ALLEGATO ENTRY ID: ${allegatoGroupId} -->
122<#assign fileLink = "">
123<#if allegatoEntryId??>
124 <#assign allegatoEntry = dlAppLocalService.getFileEntryByUuidAndGroupId(allegatoEntryId, allegatoGroupId)>
125 <#assign fileLink = themeDisplay.getPortalURL() + themeDisplay.getPathContext() + "/documents/" + allegatoEntry.getGroupId() + "/" + allegatoEntry.getFolderId() + "/" + allegatoEntry.getFileName() + "/" + allegatoEntry.getUuid() >
126<#else>
127 <#assign fileLink = "">
128</#if>
129<#-- FINE -->
130
131
132
133<#-- ========== COSTRUZIONE HTML SINGOLO VIDEO ==================== -->
134
135<#assign formattedDate = "" />
136 <#if primaConv?? && primaConv?has_content>
137 <#assign someDate = primaConv?date.xs>
138 <#assign formattedDate = someDate?string["dd/MM/yyyy"] />
139</#if>
140<#assign formattedDate2 = "" />
141 <#if secondaConv?? && secondaConv?has_content>
142 <#assign someDate2 = secondaConv?date.xs>
143 <#assign formattedDate2 = someDate2?string["dd/MM/yyyy"] />
144</#if>
145<#assign formattedDate3 = "" />
146 <#if ballottaggio?? && ballottaggio?has_content>
147 <#assign someDate3 = ballottaggio?date.xs>
148 <#assign formattedDate3 = someDate3?string["dd/MM/yyyy"] />
149</#if>
150
151
152
153
154 <tr role="row" >
155
156 <td>
157<a style="text-decoration: none;" target="_blank" href="${fileLink}" class="titolinews mt-4" >
158
159 <h6 class="font-weight-400">${nomeAllegato}</h6> </a>
160 </td>
161
162
163
164 </a>
165 <td> <h6 class="font-weight-400">${formattedDate}</h6>
166 </td>
167 <td>
168
169 <h6 class="font-weight-400">${formattedDate2}</h6> </td>
170 <td>
171
172 <h6 class="font-weight-400">${formattedDate3}</h6> </td>
173
174 </tr>
175
176
177
178
179
180
181
182<#-- =================== FINE COSTRUZIONE SINGOLA News ======================= -->
183
184
185<#-- FINE -->
186
187
188
189
190
191
192
193 </#list> <#-- FINE LOOP -->
194
195
196
197
198
199 </tbody>
200
201 </table>
202
203 </div>
204
205 <!-- *** FINE TABELLA *** -->
206
207 </div>
208
209
210 </div> <!-- chiusura row mb-5-->
211
212
213
214
215
216
217
218</#if>
219<#-- FINE NEWS LOOP -->
220
221 </div> <#-- chiusura div.container -->
222
223</div>
224</section>
225</main>
226
227
228 <!-- SCRIPTS -->
229
230 <!-- datatables rimossi -->
231
232
233<script type="text/javascript">
234
235
236jQuery(document).ready(function () {
237
238
239jQuery.extend( jQuery.fn.dataTableExt.oSort, {
240"date-uk-pre": function ( a ) {
241 var ukDatea = a.split('/');
242 return (ukDatea[2] + ukDatea[1] + ukDatea[0]) ;
243},
244
245"date-uk-asc": function ( a, b ) {
246 return ((a < b) ? -1 : ((a > b) ? 1 : 0));
247},
248
249"date-uk-desc": function ( a, b ) {
250 return ((a < b) ? 1 : ((a > b) ? -1 : 0));
251}
252} );
253
254jQuery('#rassegna-table').DataTable({
255 "infoCallback": function(settings, start, end, max, total, pre) {
256 /*console.log("DataTable::settings", settings); */
257
258 if (total < max) {
259 // Se c'è un filtro attivo
260 return "Mostrati <span>"+end+"</span> di <span>"+total+"</span> risultati (filtrati da " + max + " totali)";
261 } else {
262 return "Mostrati <span>"+end+"</span> di <span>"+total+"</span> risultati";
263 }
264 },
265 "aoColumns": [
266 { "sType": "date-uk" },
267 null,
268 null,
269 null
270 ],
271
272 "aaSorting": [ [0,'desc'] ],
273 "language":
274
275{
276 "sEmptyTable": "Nessun dato presente nella tabella",
277 "sInfo": "",
278 "sInfoEmpty": "",
279 "sInfoFiltered": "(filtrati da _MAX_ elementi totali)",
280 "sInfoPostFix": "",
281 "sInfoThousands": ".",
282 "sLengthMenu": "Visualizza _MENU_",
283 "sLoadingRecords": "Caricamento...",
284 "sProcessing": "Elaborazione...",
285 "sSearch": "Cerca:",
286 "sZeroRecords": "La ricerca non ha portato alcun risultato.",
287
288 "oPaginate": {
289 "sFirst": "Inizio",
290 "sPrevious": "<",
291 "sNext": ">",
292 "sLast": "Fine"
293 },
294
295 "oAria": {
296 "sSortAscending": ": attiva per ordinare la colonna in ordine crescente",
297 "sSortDescending": ": attiva per ordinare la colonna in ordine decrescente"
298 }
299}
300
301
302});
303jQuery('.dataTables_length').addClass('text-red');
304
305
306
307});
308
309
310
311</script>
312
313<style>
314
315.cng .dataTables_paginate{
316text-align: right;
317}
318
319.cng a.titolinews{
320color: var(--black);
321}
322
323.cng a.titolinews:hover{
324 color: var(--orange);
325}
326
327.cng table{
328 border-collapse: collapse;
329 border: none;
330}
331
332.cng h6, .cng .h6{
333 font-size: 1rem;
334}
335
336.cng .mainHeader{
337 padding: 230px 0 160px !important;
338}
339
340
341/* per nascondere pulsante di ritorno all'elenco delle news/video */
342.cng .h2{
343 display: none;
344}
345
346
347.cng #comunicati-table_paginate{
348 font-size: 14px;
349}
350
351.cng .page-item.active .page-link {
352 z-index: 3;
353 color: #fff;
354 background-color: var(--orange);
355 border-color: var(--black);
356}
357
358.cng .pagination > li > a, .cng .pagination > li > span {
359 color: var(--black);
360}
361
362.cng .pagination > li:focus{
363 background-color: var(--orange);
364}
365
366.cng .pagination > li > a:focus,
367.cng .pagination > li > a:hover {
368 background-color: var(--orange);
369 border-color: var(--black);
370 color: #fff;
371}
372
373.cng .pagination > li.active{
374 background-color: var(--orange);
375 color: #fff;
376}
377
378.cng .pagination > .active > a,
379.cng .pagination > .active > a:hover,
380.cng .pagination > .active > a:focus,
381.cng .pagination > .active > span,
382.cng .pagination > .active > span:hover,
383.cng .pagination > .active > span:focus {
384 background-color: var(--orange);
385}
386
387/* float-right del cerca */
388.cng .dataTables_filter{
389 float: right !important;
390}
391
392
393 /** Fix. 2025 **/
394
395.cng #rassegna-table th{
396 background: #007BA5;
397}
398.cng #rassegna-table td{
399 background: #fff;
400}
401.cng .dataTables_paginate {
402 text-align: right;
403}
404.cng #rassegna-table_info {
405 padding: 1.0rem;
406}
407.cng #rassegna-table_info span {
408 font-weight: 600;
409 padding: 0 0 0 3px;
410}
411.cng label { /** Clay override */
412 font-size: inherit;
413}
414.cng .custom-select-sm { /** Clay override */
415 font-size: auto;
416 background-color: #fff;
417}
418.cng .form-control {
419 font-size: auto;
420 background-color: #fff;
421}
422.cng table{
423 border-collapse: collapse;
424 border: none;
425}
426.cng h6, .h6{
427 font-size: 1rem;
428}
429.cng #delegates-table_paginate{
430 font-size: 14px;
431}
432.cng .pagination {
433 margin: 20px;
434 font-size: inherit;
435}
436.cng .pagination .paginate_button {
437 width: 30px;
438 height: 35px;
439 background-color: #fff;
440 border: 1px solid #EEF4FF;
441 align-content: space-evenly;
442 margin: 0px;
443}
444.cng .page-item, .cng .page-link { /** Clay override */
445 border-radius: 0px;
446}
447.cng .page-item.active .page-link { /** Clay override */
448 z-index: 3;
449 color: #fff;
450 background-color: var(--orange);
451 border-color: var(--black);
452 width: inherit;
453 height: inherit;
454}
455.cng .page-item .page-link::before { /** Clay override */
456 background-color: transparent !important;
457 height: 0.25rem;
458}
459.cng .page-item.active .page-link::before { /** Clay override */
460 background-color: transparent !important;
461 height: 0.25rem;
462}
463.cng .pagination > li > a, .cng .pagination > li > span {
464 color: var(--black);
465}
466.cng .pagination > li:focus{
467 background-color: var(--orange);
468
469}
470.cng .pagination > li > a:focus,
471.cng .pagination > li > a:hover { /** Clay override */
472 background-color: var(--orange);
473 border-color: var(--black);
474 color: #fff;
475 width: inherit;
476 height: inherit;
477}
478.cng .pagination > li.active{
479 background-color: var(--orange);
480 color: #fff;
481}
482.cng .pagination > .active > a, .cng .pagination > .active > a:hover,
483.cng .pagination > .active > a:focus, .cng .pagination > .active > span,
484.cng .pagination > .active > span:hover, .cng .pagination > .active > span:focus {
485 background-color: var(--orange);
486 width: inherit;
487 height: inherit;
488}
489/** Fine 2025 **/
490
491</style>
ASSEMBLEA DEI PRESIDENTI
In questa area sono pubblicate le news che riassumono gli interventi del presidente e dei consiglieri nel corso delle assemblee. Le presentazioni, le relazioni, i report, i sondaggi e i focus sono riportati, per un facile download, alla fine del testo. L’ordine è cronologico, dall’ultima notizia alla meno recente.