Piattaforma Collaborativa Pi.Co.
Benvenuto nella Piattaforma Collaborativa Pi.Co.!
Pi.Co. è la Piattaforma realizzata dall'Unione Province d'Italia (UPI) per mettere in rete tra loro tutte le Province, un ambiente informatizzato diffuso nelle Province e negli Enti Locali che erogano la maggior parte dei servizi al cittadino; una community pensata per agevolare lo scambio di esperienze, la condivisione delle migliori pratiche, e garantire l'aggiornamento continuo sulle tematiche legate ai servizi erogati. In particolare, Pi.Co. offre strumenti innovativi per facilitare lo scambio strutturato di informazioni e documenti e l'erogazione dei principali servizi relativi agli ambiti di intervento: Stazione Unica Appaltante (SUA), Servizio Associato Politiche Europee (SAPE), e Servizi Innovativi Territoriali (SIT).
La Piattaforma Collaborativa Pi.Co. è stata realizzata nell’ambito del progetto dell’UPI “Le Province e il sistema dei servizi a supporto dei Comuni”, finanziato dal Programma Azione Coesione Complementare al PON Governance e Capacità Istituzionale 2014-2020 - Asse dedicato alle risorse in salvaguardia ex. Art. 242 del Decreto-Legge 19 maggio 2020 n. 34 - CUP G59F19000090007.
The following has evaluated to null or missing:
==> upiTemplateHelper [in template "20097#20123#47244" at line 51, column 58]
----
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: #assign categoryLabel = upiTemplateHe... [in template "20097#20123#47244" at line 51, column 33]
----
1<#assign CPcat = serviceLocator.findService('com.liferay.commerce.product.service.CPAttachmentFileEntryLocalService') />
2<#assign assetCategoryPropertyLocalService = serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService") />
3<#assign ddmFieldLocalService = serviceLocator.findService("com.liferay.dynamic.data.mapping.service.DDMFieldLocalService") />
4<#assign assetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService") />
5<#assign vocabulary = assetVocabularyLocalService.getGroupVocabulary(themeDisplay.companyGroupId, "news")/>
6<#assign layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService") />
7<#assign newsLayout = layoutLocalService.getLayoutByFriendlyURL(themeDisplay.scopeGroupId, false, "/news-ed-eventi") />
8<#assign newsURL = portalUtil.getLayoutFullURL(newsLayout, themeDisplay) />
9
10<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")>
11<#assign assetCategoryPropService = serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService")>
12
13<#if !entries?has_content>
14 <#if !themeDisplay.isSignedIn()>
15 ${renderRequest.setAttribute("PORTLET_CONFIGURATOR_VISIBILITY", true)}
16 </#if>
17
18 <div class="alert alert-info">
19 <@liferay_ui["message"] key="there-are-no-results" />
20 </div>
21</#if>
22
23
24<#if entries?has_content>
25 <#assign
26 entry = entries?first
27 entryCategories = assetEntryLocalService.getAssetEntry(entry.entryId).getCategories()
28 assetRenderer = entry.getAssetRenderer()
29 journalArticle = assetRenderer.getArticle()
30 ddmStructure = journalArticle.getDDMStructure()
31 ddmForm = ddmStructure.getDDMForm()
32 ddmFormValues = ddmFieldLocalService.getDDMFormValues(ddmForm, journalArticle.getId())
33 ddmFormFieldValues = ddmFormValues.getDDMFormFieldValues()
34 entryTitle = htmlUtil.escape(assetRenderer.getTitle(locale))
35 summary = entry.getDescription(locale)
36 viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, assetRenderer, entry, !stringUtil.equals(assetLinkBehavior, "showFullContent"))
37 testo = ""
38 categoryLabel = ""
39 categoryReference = ""
40 data = ""
41 />
42
43 <#list ddmFormFieldValues as fieldName>
44 <#if fieldName.getFieldReference() == 'RichText11564269'>
45 <#if fieldName.getValue().getString(locale)?? && fieldName.getValue().getString(locale) != "">
46 <#assign testo = fieldName.getValue().getString(locale) />
47 </#if>
48 </#if>
49 <#if fieldName.getFieldReference() == 'categoriaNews'>
50 <#if fieldName.getValue().getString(locale)?? && fieldName.getValue().getString(locale) != "">
51 <#assign categoryLabel = upiTemplateHelper.getSelectValue(ddmStructure, "categoriaNews", fieldName.getValue().getString(locale)) />
52 <#assign categoryReference = upiTemplateHelper.getSelectReference(ddmStructure, "categoriaNews", fieldName.getValue().getString(locale)) />
53 </#if>
54 </#if>
55 <#if fieldName.getFieldReference() == 'Date70317365'>
56 <#if fieldName.getValue().getString(locale)?? && fieldName.getValue().getString(locale) != "">
57 <#assign data = getterUtil.getString(fieldName.getValue().getString(locale)) />
58 <#if validator.isNotNull(data)>
59 <#assign data = dateUtil.parseDate("yyyy-MM-dd", data, locale) />
60 <#assign data = dateUtil.getDate(data, "dd MMMM yyyy", locale)?capitalize />
61 </#if>
62 </#if>
63 </#if>
64 </#list>
65
66 <#assign categoryFilterId = "" />
67 <#assign categoryFilterLabel = "" />
68 <#list entryCategories as category>
69 <#if categoryLabel != "" && category.name == categoryLabel>
70 <#assign categoryFilterId = category.categoryId />
71 <#assign categoryFilterProperty = assetCategoryPropService.getCategoryProperty(categoryFilterId,"label") />
72 <#if categoryFilterProperty?? && categoryFilterProperty.getValue() != "" >
73 <#assign categoryFilterLabel = categoryFilterProperty.getValue() />
74 </#if>
75 </#if>
76 </#list>
77
78 <#if summary == "">
79 <#assign summary = stringUtil.shorten(htmlUtil.stripHtml(testo), 200) />
80 </#if>
81
82 <div id="news-evidenza" class="module pt-3 pb-4 px-4 d-block h-100 mb-lg-0 mb-4">
83 <div class="category">
84 <div class="mb-3 d-flex align-items-center">
85 <img class="mr-2" src="${themeDisplay.getPathThemeImages()}/category-icon/${categoryReference}-icon.svg" onError="this.src='${themeDisplay.getPathThemeImages()}/pic/simple-building-icon.png'" alt="${categoryLabel}">
86 <span class="small font-weight-semi-bold pt-1 text-uppercase primary"> ${categoryLabel}</span>
87 </div>
88 </div>
89 <a href="${viewURL}">
90 <h6 class="mb-3">
91 ${entryTitle}
92 </h6>
93 </a>
94 <div class="small">
95 ${summary}
96 </div>
97 <div class="pt-3 d-flex justify-content-between align-items-center">
98 <a data-senna-off="true" href="${newsURL}/-/categories/${categoryFilterId}" class="btn btn-link text-uppercase d-flex align-items-center">
99 ${categoryFilterLabel}
100 <svg class="icon icon-sm icon-success ml-2">
101 <use href="${themeDisplay.getPathThemeImages()}/bootstrap-svg/sprites.svg#it-arrow-right"></use>
102 </svg>
103 </a>
104 <span class="small">${data}</span>
105 </div>
106 </div>
107</#if>
108
109 <style>
110 #news-evidenza {
111 min-height: 17rem;
112 }
113 </style>
The following has evaluated to null or missing:
==> upiTemplateHelper [in template "20097#20123#47244" at line 51, column 58]
----
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: #assign categoryLabel = upiTemplateHe... [in template "20097#20123#47244" at line 51, column 33]
----
1<#assign CPcat = serviceLocator.findService('com.liferay.commerce.product.service.CPAttachmentFileEntryLocalService') />
2<#assign assetCategoryPropertyLocalService = serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService") />
3<#assign ddmFieldLocalService = serviceLocator.findService("com.liferay.dynamic.data.mapping.service.DDMFieldLocalService") />
4<#assign assetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService") />
5<#assign vocabulary = assetVocabularyLocalService.getGroupVocabulary(themeDisplay.companyGroupId, "news")/>
6<#assign layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService") />
7<#assign newsLayout = layoutLocalService.getLayoutByFriendlyURL(themeDisplay.scopeGroupId, false, "/news-ed-eventi") />
8<#assign newsURL = portalUtil.getLayoutFullURL(newsLayout, themeDisplay) />
9
10<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")>
11<#assign assetCategoryPropService = serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService")>
12
13<#if !entries?has_content>
14 <#if !themeDisplay.isSignedIn()>
15 ${renderRequest.setAttribute("PORTLET_CONFIGURATOR_VISIBILITY", true)}
16 </#if>
17
18 <div class="alert alert-info">
19 <@liferay_ui["message"] key="there-are-no-results" />
20 </div>
21</#if>
22
23
24<#if entries?has_content>
25 <#assign
26 entry = entries?first
27 entryCategories = assetEntryLocalService.getAssetEntry(entry.entryId).getCategories()
28 assetRenderer = entry.getAssetRenderer()
29 journalArticle = assetRenderer.getArticle()
30 ddmStructure = journalArticle.getDDMStructure()
31 ddmForm = ddmStructure.getDDMForm()
32 ddmFormValues = ddmFieldLocalService.getDDMFormValues(ddmForm, journalArticle.getId())
33 ddmFormFieldValues = ddmFormValues.getDDMFormFieldValues()
34 entryTitle = htmlUtil.escape(assetRenderer.getTitle(locale))
35 summary = entry.getDescription(locale)
36 viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, assetRenderer, entry, !stringUtil.equals(assetLinkBehavior, "showFullContent"))
37 testo = ""
38 categoryLabel = ""
39 categoryReference = ""
40 data = ""
41 />
42
43 <#list ddmFormFieldValues as fieldName>
44 <#if fieldName.getFieldReference() == 'RichText11564269'>
45 <#if fieldName.getValue().getString(locale)?? && fieldName.getValue().getString(locale) != "">
46 <#assign testo = fieldName.getValue().getString(locale) />
47 </#if>
48 </#if>
49 <#if fieldName.getFieldReference() == 'categoriaNews'>
50 <#if fieldName.getValue().getString(locale)?? && fieldName.getValue().getString(locale) != "">
51 <#assign categoryLabel = upiTemplateHelper.getSelectValue(ddmStructure, "categoriaNews", fieldName.getValue().getString(locale)) />
52 <#assign categoryReference = upiTemplateHelper.getSelectReference(ddmStructure, "categoriaNews", fieldName.getValue().getString(locale)) />
53 </#if>
54 </#if>
55 <#if fieldName.getFieldReference() == 'Date70317365'>
56 <#if fieldName.getValue().getString(locale)?? && fieldName.getValue().getString(locale) != "">
57 <#assign data = getterUtil.getString(fieldName.getValue().getString(locale)) />
58 <#if validator.isNotNull(data)>
59 <#assign data = dateUtil.parseDate("yyyy-MM-dd", data, locale) />
60 <#assign data = dateUtil.getDate(data, "dd MMMM yyyy", locale)?capitalize />
61 </#if>
62 </#if>
63 </#if>
64 </#list>
65
66 <#assign categoryFilterId = "" />
67 <#assign categoryFilterLabel = "" />
68 <#list entryCategories as category>
69 <#if categoryLabel != "" && category.name == categoryLabel>
70 <#assign categoryFilterId = category.categoryId />
71 <#assign categoryFilterProperty = assetCategoryPropService.getCategoryProperty(categoryFilterId,"label") />
72 <#if categoryFilterProperty?? && categoryFilterProperty.getValue() != "" >
73 <#assign categoryFilterLabel = categoryFilterProperty.getValue() />
74 </#if>
75 </#if>
76 </#list>
77
78 <#if summary == "">
79 <#assign summary = stringUtil.shorten(htmlUtil.stripHtml(testo), 200) />
80 </#if>
81
82 <div id="news-evidenza" class="module pt-3 pb-4 px-4 d-block h-100 mb-lg-0 mb-4">
83 <div class="category">
84 <div class="mb-3 d-flex align-items-center">
85 <img class="mr-2" src="${themeDisplay.getPathThemeImages()}/category-icon/${categoryReference}-icon.svg" onError="this.src='${themeDisplay.getPathThemeImages()}/pic/simple-building-icon.png'" alt="${categoryLabel}">
86 <span class="small font-weight-semi-bold pt-1 text-uppercase primary"> ${categoryLabel}</span>
87 </div>
88 </div>
89 <a href="${viewURL}">
90 <h6 class="mb-3">
91 ${entryTitle}
92 </h6>
93 </a>
94 <div class="small">
95 ${summary}
96 </div>
97 <div class="pt-3 d-flex justify-content-between align-items-center">
98 <a data-senna-off="true" href="${newsURL}/-/categories/${categoryFilterId}" class="btn btn-link text-uppercase d-flex align-items-center">
99 ${categoryFilterLabel}
100 <svg class="icon icon-sm icon-success ml-2">
101 <use href="${themeDisplay.getPathThemeImages()}/bootstrap-svg/sprites.svg#it-arrow-right"></use>
102 </svg>
103 </a>
104 <span class="small">${data}</span>
105 </div>
106 </div>
107</#if>
108
109 <style>
110 #news-evidenza {
111 min-height: 17rem;
112 }
113 </style>
The following has evaluated to null or missing:
==> upiTemplateHelper [in template "20097#20123#47244" at line 51, column 58]
----
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: #assign categoryLabel = upiTemplateHe... [in template "20097#20123#47244" at line 51, column 33]
----
1<#assign CPcat = serviceLocator.findService('com.liferay.commerce.product.service.CPAttachmentFileEntryLocalService') />
2<#assign assetCategoryPropertyLocalService = serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService") />
3<#assign ddmFieldLocalService = serviceLocator.findService("com.liferay.dynamic.data.mapping.service.DDMFieldLocalService") />
4<#assign assetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService") />
5<#assign vocabulary = assetVocabularyLocalService.getGroupVocabulary(themeDisplay.companyGroupId, "news")/>
6<#assign layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService") />
7<#assign newsLayout = layoutLocalService.getLayoutByFriendlyURL(themeDisplay.scopeGroupId, false, "/news-ed-eventi") />
8<#assign newsURL = portalUtil.getLayoutFullURL(newsLayout, themeDisplay) />
9
10<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")>
11<#assign assetCategoryPropService = serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService")>
12
13<#if !entries?has_content>
14 <#if !themeDisplay.isSignedIn()>
15 ${renderRequest.setAttribute("PORTLET_CONFIGURATOR_VISIBILITY", true)}
16 </#if>
17
18 <div class="alert alert-info">
19 <@liferay_ui["message"] key="there-are-no-results" />
20 </div>
21</#if>
22
23
24<#if entries?has_content>
25 <#assign
26 entry = entries?first
27 entryCategories = assetEntryLocalService.getAssetEntry(entry.entryId).getCategories()
28 assetRenderer = entry.getAssetRenderer()
29 journalArticle = assetRenderer.getArticle()
30 ddmStructure = journalArticle.getDDMStructure()
31 ddmForm = ddmStructure.getDDMForm()
32 ddmFormValues = ddmFieldLocalService.getDDMFormValues(ddmForm, journalArticle.getId())
33 ddmFormFieldValues = ddmFormValues.getDDMFormFieldValues()
34 entryTitle = htmlUtil.escape(assetRenderer.getTitle(locale))
35 summary = entry.getDescription(locale)
36 viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, assetRenderer, entry, !stringUtil.equals(assetLinkBehavior, "showFullContent"))
37 testo = ""
38 categoryLabel = ""
39 categoryReference = ""
40 data = ""
41 />
42
43 <#list ddmFormFieldValues as fieldName>
44 <#if fieldName.getFieldReference() == 'RichText11564269'>
45 <#if fieldName.getValue().getString(locale)?? && fieldName.getValue().getString(locale) != "">
46 <#assign testo = fieldName.getValue().getString(locale) />
47 </#if>
48 </#if>
49 <#if fieldName.getFieldReference() == 'categoriaNews'>
50 <#if fieldName.getValue().getString(locale)?? && fieldName.getValue().getString(locale) != "">
51 <#assign categoryLabel = upiTemplateHelper.getSelectValue(ddmStructure, "categoriaNews", fieldName.getValue().getString(locale)) />
52 <#assign categoryReference = upiTemplateHelper.getSelectReference(ddmStructure, "categoriaNews", fieldName.getValue().getString(locale)) />
53 </#if>
54 </#if>
55 <#if fieldName.getFieldReference() == 'Date70317365'>
56 <#if fieldName.getValue().getString(locale)?? && fieldName.getValue().getString(locale) != "">
57 <#assign data = getterUtil.getString(fieldName.getValue().getString(locale)) />
58 <#if validator.isNotNull(data)>
59 <#assign data = dateUtil.parseDate("yyyy-MM-dd", data, locale) />
60 <#assign data = dateUtil.getDate(data, "dd MMMM yyyy", locale)?capitalize />
61 </#if>
62 </#if>
63 </#if>
64 </#list>
65
66 <#assign categoryFilterId = "" />
67 <#assign categoryFilterLabel = "" />
68 <#list entryCategories as category>
69 <#if categoryLabel != "" && category.name == categoryLabel>
70 <#assign categoryFilterId = category.categoryId />
71 <#assign categoryFilterProperty = assetCategoryPropService.getCategoryProperty(categoryFilterId,"label") />
72 <#if categoryFilterProperty?? && categoryFilterProperty.getValue() != "" >
73 <#assign categoryFilterLabel = categoryFilterProperty.getValue() />
74 </#if>
75 </#if>
76 </#list>
77
78 <#if summary == "">
79 <#assign summary = stringUtil.shorten(htmlUtil.stripHtml(testo), 200) />
80 </#if>
81
82 <div id="news-evidenza" class="module pt-3 pb-4 px-4 d-block h-100 mb-lg-0 mb-4">
83 <div class="category">
84 <div class="mb-3 d-flex align-items-center">
85 <img class="mr-2" src="${themeDisplay.getPathThemeImages()}/category-icon/${categoryReference}-icon.svg" onError="this.src='${themeDisplay.getPathThemeImages()}/pic/simple-building-icon.png'" alt="${categoryLabel}">
86 <span class="small font-weight-semi-bold pt-1 text-uppercase primary"> ${categoryLabel}</span>
87 </div>
88 </div>
89 <a href="${viewURL}">
90 <h6 class="mb-3">
91 ${entryTitle}
92 </h6>
93 </a>
94 <div class="small">
95 ${summary}
96 </div>
97 <div class="pt-3 d-flex justify-content-between align-items-center">
98 <a data-senna-off="true" href="${newsURL}/-/categories/${categoryFilterId}" class="btn btn-link text-uppercase d-flex align-items-center">
99 ${categoryFilterLabel}
100 <svg class="icon icon-sm icon-success ml-2">
101 <use href="${themeDisplay.getPathThemeImages()}/bootstrap-svg/sprites.svg#it-arrow-right"></use>
102 </svg>
103 </a>
104 <span class="small">${data}</span>
105 </div>
106 </div>
107</#if>
108
109 <style>
110 #news-evidenza {
111 min-height: 17rem;
112 }
113 </style>