CNGeGL
I Collegi
ELEZIONE DEI CONSIGLI DIRETTIVI
Hiba jelentkezett a sablon feldolgozása során.
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@2b81f30"; 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 -->
231 <script type="text/javascript" src="https://cdn.datatables.net/1.10.21/js/jquery.dataTables.min.js"></script>
232 <script type="text/javascript" src="https://cdn.datatables.net/1.10.21/js/dataTables.bootstrap4.min.js"></script>
233
234<script type="text/javascript">
235
236
237jQuery(document).ready(function () {
238
239
240jQuery.extend( jQuery.fn.dataTableExt.oSort, {
241"date-uk-pre": function ( a ) {
242 var ukDatea = a.split('/');
243 return (ukDatea[2] + ukDatea[1] + ukDatea[0]) ;
244},
245
246"date-uk-asc": function ( a, b ) {
247 return ((a < b) ? -1 : ((a > b) ? 1 : 0));
248},
249
250"date-uk-desc": function ( a, b ) {
251 return ((a < b) ? 1 : ((a > b) ? -1 : 0));
252}
253} );
254
255jQuery('#rassegna-table').DataTable({
256 "infoCallback": function(settings, start, end, max, total, pre) {
257 /*console.log("DataTable::settings", settings); */
258
259 if (total < max) {
260 // Se c'è un filtro attivo
261 return "Mostrati <span>"+end+"</span> di <span>"+total+"</span> risultati (filtrati da " + max + " totali)";
262 } else {
263 return "Mostrati <span>"+end+"</span> di <span>"+total+"</span> risultati";
264 }
265 },
266 "aoColumns": [
267 { "sType": "date-uk" },
268 null,
269 null,
270 null
271 ],
272
273 "aaSorting": [ [0,'desc'] ],
274 "language":
275
276{
277 "sEmptyTable": "Nessun dato presente nella tabella",
278 "sInfo": "",
279 "sInfoEmpty": "",
280 "sInfoFiltered": "(filtrati da _MAX_ elementi totali)",
281 "sInfoPostFix": "",
282 "sInfoThousands": ".",
283 "sLengthMenu": "Visualizza _MENU_",
284 "sLoadingRecords": "Caricamento...",
285 "sProcessing": "Elaborazione...",
286 "sSearch": "Cerca:",
287 "sZeroRecords": "La ricerca non ha portato alcun risultato.",
288
289 "oPaginate": {
290 "sFirst": "Inizio",
291 "sPrevious": "<",
292 "sNext": ">",
293 "sLast": "Fine"
294 },
295
296 "oAria": {
297 "sSortAscending": ": attiva per ordinare la colonna in ordine crescente",
298 "sSortDescending": ": attiva per ordinare la colonna in ordine decrescente"
299 }
300}
301
302
303});
304jQuery('.dataTables_length').addClass('text-red');
305
306
307
308});
309
310
311
312</script>
313
314<style>
315
316.cng .dataTables_paginate{
317text-align: right;
318}
319
320.cng a.titolinews{
321color: var(--black);
322}
323
324.cng a.titolinews:hover{
325 color: var(--orange);
326}
327
328.cng table{
329 border-collapse: collapse;
330 border: none;
331}
332
333.cng h6, .cng .h6{
334 font-size: 1rem;
335}
336
337.cng .mainHeader{
338 padding: 230px 0 160px !important;
339}
340
341
342/* per nascondere pulsante di ritorno all'elenco delle news/video */
343.cng .h2{
344 display: none;
345}
346
347
348.cng #comunicati-table_paginate{
349 font-size: 14px;
350}
351
352.cng .page-item.active .page-link {
353 z-index: 3;
354 color: #fff;
355 background-color: var(--orange);
356 border-color: var(--black);
357}
358
359.cng .pagination > li > a, .cng .pagination > li > span {
360 color: var(--black);
361}
362
363.cng .pagination > li:focus{
364 background-color: var(--orange);
365}
366
367.cng .pagination > li > a:focus,
368.cng .pagination > li > a:hover {
369 background-color: var(--orange);
370 border-color: var(--black);
371 color: #fff;
372}
373
374.cng .pagination > li.active{
375 background-color: var(--orange);
376 color: #fff;
377}
378
379.cng .pagination > .active > a,
380.cng .pagination > .active > a:hover,
381.cng .pagination > .active > a:focus,
382.cng .pagination > .active > span,
383.cng .pagination > .active > span:hover,
384.cng .pagination > .active > span:focus {
385 background-color: var(--orange);
386}
387
388/* float-right del cerca */
389.cng .dataTables_filter{
390 float: right !important;
391}
392
393
394 /** Fix. 2025 **/
395
396.cng #rassegna-table th{
397 background: #007BA5;
398}
399.cng #rassegna-table td{
400 background: #fff;
401}
402.cng .dataTables_paginate {
403 text-align: right;
404}
405.cng #rassegna-table_info {
406 padding: 1.0rem;
407}
408.cng #rassegna-table_info span {
409 font-weight: 600;
410 padding: 0 0 0 3px;
411}
412.cng label { /** Clay override */
413 font-size: inherit;
414}
415.cng .custom-select-sm { /** Clay override */
416 font-size: auto;
417 background-color: #fff;
418}
419.cng .form-control {
420 font-size: auto;
421 background-color: #fff;
422}
423.cng table{
424 border-collapse: collapse;
425 border: none;
426}
427.cng h6, .h6{
428 font-size: 1rem;
429}
430.cng #delegates-table_paginate{
431 font-size: 14px;
432}
433.cng .pagination {
434 margin: 20px;
435 font-size: inherit;
436}
437.cng .pagination .paginate_button {
438 width: 30px;
439 height: 35px;
440 background-color: #fff;
441 border: 1px solid #EEF4FF;
442 align-content: space-evenly;
443 margin: 0px;
444}
445.cng .page-item, .cng .page-link { /** Clay override */
446 border-radius: 0px;
447}
448.cng .page-item.active .page-link { /** Clay override */
449 z-index: 3;
450 color: #fff;
451 background-color: var(--orange);
452 border-color: var(--black);
453 width: inherit;
454 height: inherit;
455}
456.cng .page-item .page-link::before { /** Clay override */
457 background-color: transparent !important;
458 height: 0.25rem;
459}
460.cng .page-item.active .page-link::before { /** Clay override */
461 background-color: transparent !important;
462 height: 0.25rem;
463}
464.cng .pagination > li > a, .cng .pagination > li > span {
465 color: var(--black);
466}
467.cng .pagination > li:focus{
468 background-color: var(--orange);
469
470}
471.cng .pagination > li > a:focus,
472.cng .pagination > li > a:hover { /** Clay override */
473 background-color: var(--orange);
474 border-color: var(--black);
475 color: #fff;
476 width: inherit;
477 height: inherit;
478}
479.cng .pagination > li.active{
480 background-color: var(--orange);
481 color: #fff;
482}
483.cng .pagination > .active > a, .cng .pagination > .active > a:hover,
484.cng .pagination > .active > a:focus, .cng .pagination > .active > span,
485.cng .pagination > .active > span:hover, .cng .pagination > .active > span:focus {
486 background-color: var(--orange);
487 width: inherit;
488 height: inherit;
489}
490/** Fine 2025 **/
491
492</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.