Indietro Road to Hackathon Opentusk 2026: il 4 giugno la tappa di Bari “Open Data e territorio a confronto”

Si è verificato un errore nell'elaborarazione del modello.
The following has evaluated to null or missing:
==> Sottotitolo  [in template "20097#20123#48860" at line 27, column 55]

----
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: ${Sottotitolo.getData()}  [in template "20097#20123#48860" at line 27, column 53]
----
1<#-- Richiamo il modello solo nelle pagine che nn sono private --> 
2<#if themeDisplay.getLayout().isPrivateLayout()==false> 
3	 
4	<#-- instanceId --> 
5	<#assign instanceId = themeDisplay.getPortletDisplay().getId()?keep_after("INSTANCE_") /> 
6 
7	<#-- Inclusione template con macros e relativi servizi --> 
8	<#include "${templatesPath}/COMMON-MACROS" /> 
9	 
10	<#-- richiamo i dati che servono in seguito --> 
11	<#assign title = .vars['reserved-article-title'].data /> 
12	<#assign urlTitle = .vars['reserved-article-url-title'].data /> 
13	<#assign date = .vars['reserved-article-display-date'].data> 
14	<#assign dateTimeFormat = "dd MMMM yyyy"> 
15	<#assign articleURL = themeDisplay.getURLPortal() + themeDisplay.getScopeGroup().getPathFriendlyURL(false, themeDisplay) + themeDisplay.getScopeGroup().getFriendlyURL() + "/-/" + urlTitle /> 
16	 
17	<#-- HTML --> 
18	<div class="container"> 
19		<div class="row notizia"> 
20			<div class="col-md-8"> 
21				<div class="row"> 
22					<div class="col-12"> 
23						<#-- title --> 
24						<h2 class="h1">${title}</h2> 
25	        			<#-- subtitle --> 
26	        			<#if validator.isNotNull(subtitle) && validator.isNotNull(subtitle.getData())> 
27	        				<h2>${Sottotitolo.getData()}</h2> 
28	        			</#if> 
29					</div> 
30				</div> 
31				 
32				<#-- description + image -->	 
33       			<#if validator.isNotNull(description) && validator.isNotNull(description.getData())> 
34       				<div class="row"> 
35    					<div class="col"> 
36			       			<#if  
37			       				(validator.isNotNull(principalImage) && validator.isNotNull(principalImage.getData())) && 
38			       				(validator.isNotNull(showImage) && validator.isNotNull(showImage.getData()) && showImage.getData() != "hide") 
39
40       							<#attempt> 
41		            				<#assign class = "full-width-img" /> 
42		            				<#if showImage.getData() == "float"> 
43		            				    <#assign class = "float-img" /> 
44		            				</#if> 
45		            				<img alt="${principalImage.getAttribute("alt")}" src="${principalImage.getData()}" class="${class}" /> 
46       							<#recover> 
47       								<#-- in caso di problemi non visualizzo nulla --> 
48       							</#attempt> 
49       						</#if> 
50       						 
51       						<div class="news-description"> 
52    							${description.getData()} 
53							</div> 
54       					</div> 
55       				</div> 
56       			</#if> 
57			</div> 
58 
59			<div class="col-md-4"> 
60				<div class="row"> 
61				    <div class="d-none d-md-block"> 
62	                    <@printSocialBlock title=title url=articleURL /> 
63	                </div> 
64				</div> 
65	            <#if groupItemHasContent(newsAttachment)> 
66	    			<div class="row"> 
67	    			    <div class="col-12 documents-news"> 
68	                        <div class="news-document-block"> 
69	                            <#assign languageDocumentLabel = 'Documenti'/> 
70	                            <#if themeDisplay.getLanguageId()=='en_GB' || themeDisplay.getLanguageId()=='en_US'> 
71	                                <#assign languageDocumentLabel = 'Documents'/> 
72	                            </#if> 
73	                            <h3 class="d-none d-md-block">${languageDocumentLabel}</h3> 
74	                            <@printDocumentList 
75	                                documentList=newsAttachment 
76	                                documentTitleChildrenName="newsAttachmentTitle" 
77	                                documentDescriptionChildrenName="newsAttachmentDescription" 
78	                                printIcons = true /> 
79	                        </div> 
80	        			</div> 
81	    			</div> 
82	            </#if> 
83			</div> 
84		</div> 
85		 
86		<#-- recupero l'elenco delle categorie da visualizzare --> 
87		<#assign categorie = getListCategoryByArticlePrimKey( journalArticleResourcePrimKey ) /> 
88		 
89		<div class="row"> 
90			<div class="col-8"> 
91				<#-- visualizzo l'elenco delle categorie --> 
92				<#if categorie?? && (categorie?size > 0)> 
93					<#list categorie as curCat> 
94						<#if validator.isNotNull(curCat) && curCat != ""> 
95							<span class="link-badge"> 
96								<span class="badge badge-grigio"> 
97			           			    ${curCat.getTitle(locale)} 
98			           			</span> 
99							</span> 
100						</#if> 
101					</#list> 
102				</#if> 
103				 
104				<#-- aggiungo in maniera statica la categoria "Open Data" con badge grigio --> 
105				<#-- aggiungo in maniera statica la categoria "Istituzione e partecipazione" con badge azzurro --> 
106				<span class="link-badge"> 
107					<span class="badge badge-grigio">Open Data</span> 
108				</span> 
109				<span class="link-badge"> 
110					<span class="badge badge-istituzionale-partecipazione">Istituzione e partecipazione</span> 
111				</span> 
112				 
113			</div> 
114		</div> 
115     
116	    <div class="row"> 
117	    	<div class="col-12 data-news"> 
118				<#assign languagePubblicato = 'Pubblicato il'/> 
119				<#if themeDisplay.getLanguageId()=='en_GB' || themeDisplay.getLanguageId()=='en_US'> 
120					<#assign languagePubblicato = 'Posted on'/> 
121				</#if> 
122	    		<p>${languagePubblicato} ${date?datetime("EEE, d MMM yyyy HH:mm:ss Z")?string(dateTimeFormat)}</p> 
123	    	</div> 
124	    </div>		 
125		 
126	</div> 
127	 
128</#if>