An error occurred while processing the template.
The following has evaluated to null or missing:
==> operaMmg.getDescrizione()  [in template "20096#20121#59095" at line 141, column 30]

----
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: ${operaMmg.getDescrizione()}  [in template "20096#20121#59095" at line 141, column 28]
----
1<#assign structureService = serviceLocator.findService("it.inera.structure.service.StructureService")> 
2 
3<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")> 
4<#assign jac = serviceLocator.findService("it.inera.journalarticleconverter.service.JournalArticleConverter")> 
5<#assign layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")> 
6<#assign journalArticleId = .vars['reserved-article-id'].data> 
7<#assign ja = journalArticleLocalService.getArticle(groupId, journalArticleId)> 
8 
9<#assign operaMmg = jac.getOperaMmgMUSEO(ja, locale) /> 
10<#assign jaopereRelated = operaMmg.getDirectRelatedAssets() /> 
11<#assign jaopere = operaMmg.getDirectRelatedAssets() /> 
12 
13<#assign printsection = false> 
14<#assign printpercorsi = false> 
15<#assign printcollezioni = false> 
16 
17<#assign modifieddate = operaMmg.getModifiedDate()?string["dd/MM/yyyy, HH:mm"]> 
18 
19<#assign siteBasePath = "" > 
20<#attempt> 
21  <#assign utilityService = serviceLocator.findService("it.inera.utility.service.UtilityService")> 
22  <#recover> 
23</#attempt> 
24<#if utilityService?? && utilityService?has_content> 
25  <#assign serviceSiteBasePath = utilityService.getSiteBasePath(themeDisplay) > 
26  <#if (serviceSiteBasePath)?? && (serviceSiteBasePath)?has_content> 
27    <#assign siteBasePath = serviceSiteBasePath > 
28  </#if> 
29</#if> 
30 
31<div class="main-section"> 
32	<div class="container"> 
33		<nav class="breadcrumb-container" aria-label="breadcrumb"> 
34		<ol class="breadcrumb mb-4"> 
35			<li class="breadcrumb-item"><a class="back-link" href="${siteBasePath}/"><@liferay.language key="breadcrumbs.home" /></a><span class="separator">/</span></li> 
36			<li class="breadcrumb-item"><a class="back-link" href="${siteBasePath}/esplora-i-musei"><@liferay.language key="breadcrumbs.esploramusei" /></a><span class="separator">/</span></li> 
37			<li class="breadcrumb-item"><a class="back-link" href="${siteBasePath}/esplora-i-musei/opere"><@liferay.language key="breadcrumbs.opere" /></a><span class="separator">/</span></li> 
38			<li class="breadcrumb-item active" aria-current="page">${operaMmg.getTitolo()} 
39			</li> 
40		</ol> 
41		</nav> 
42	</div> 
43</div> 
44 
45<section class="section-background"> 
46	<div class="container p-5rem artwork"> 
47		<#list jaopereRelated as jaoperaRelated> 
48			<#if jaoperaRelated.getDDMStructureId() == structureService.getStructureCollezioneMmgMUSEOId()> 
49				<#assign collezioneMmg = jac.getCollezioneMmgMUSEO(jaoperaRelated, locale)> 
50				<#assign jacollezioneRelated = collezioneMmg.getDirectRelatedAssets() /> 
51				<#assign printsection = true> 
52				<#assign printcollezioni = true> 
53			</#if> 
54			<#if jaoperaRelated.getDDMStructureId() == structureService.getStructureSpazioEspositivoMmgMUSEOId()> 
55				<#assign spazioEspositivoMmg = jac.getSpazioEspositivoMmgMUSEO(jaoperaRelated, locale)> 
56				<#if spazioEspositivoMmg??> 
57					<#assign jaspaziespositiviReleted = spazioEspositivoMmg.getDirectRelatedAssets()> 
58					<#list jaspaziespositiviReleted as jaspazioespositivoReleted> 
59						<#if jaspazioespositivoReleted.getDDMStructureId() == structureService.getStructurePianoMmgMUSEOId()> 
60							<#assign pianoMmg = jac.getPianoMmgMUSEO(jaspazioespositivoReleted, locale)> 
61							<#assign jaluoghiReleted = pianoMmg.getDirectRelatedAssets()> 
62							<#list jaluoghiReleted as jaluogoReleted> 
63								<#if jaluogoReleted.getDDMStructureId() == structureService.getStructureLuogoMmgMUSEOId()> 
64									<#assign luogoMmg = jac.getLuogoMmgMUSEO(jaluogoReleted, locale)> 
65								</#if> 
66							</#list> 
67						</#if> 
68					</#list> 
69				</#if> 
70			</#if> 
71			<#if jaoperaRelated.getDDMStructureId() == structureService.getStructureAutoreMmgMUSEOId()> 
72				<#if autoriMmg??> 
73			        <#assign autoriMmg = autoriMmg + [jac.getAutoreMmgMUSEO(jaoperaRelated, locale)]> 
74			    <#else> 
75			        <#assign autoriMmg = [jac.getAutoreMmgMUSEO(jaoperaRelated, locale)]> 
76			    </#if> 
77			</#if> 
78			<#if jaoperaRelated.getDDMStructureId() == structureService.getStructurePercorsoMmgMUSEOId()> 
79				<#assign printsection = true> 
80				<#assign printpercorsi = true> 
81			</#if> 
82			<#if jaoperaRelated.getDDMStructureId() == structureService.getStructureLuogoMUSEOId()> 
83				<#assign luogoMuseo = jac.getLuogoMUSEO(jaoperaRelated, locale)> 
84			</#if> 
85		 
86		</#list> 
87		<h1 class="mb-4">${operaMmg.titolo}</h1> 
88		<div class="row data-infos mb-4"> 
89			<#if autoriMmg??> 
90				<#list autoriMmg as autoreMmg > 
91					<a href="${siteBasePath}/w/${autoreMmg.urlTitle}">${autoreMmg.nome}</a> 
92				</#list> 
93			</#if> 
94			<#if (operaMmg.getDatazione())??> 
95				<p>${operaMmg.getDatazione()}</p> 
96			</#if> 
97		</div> 
98		<div class="container col-md-5"><img src="${operaMmg.immagineprincipale.immagine.url}" alt="${operaMmg.titolo}"> 
99			<div class="action-opera mt-4"> 
100				<div class="dropdown d-inline"> 
101					<button class="btn btn-dropdown dropdown-toggle text-decoration-underline d-inline-flex align-items-center fs-0" id="shareActions" aria-label="condividi sui social" type="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> 
102						<div class="share-button"> 
103							<svg class="icon"> 
104								<use href="${themeDisplay.getPathThemeImages()}/sprites.svg#it-share"></use> 
105							</svg><@liferay.language key="museo.social.condividi" /> 
106						</div> 
107					</button> 
108					<div class="dropdown-menu shadow-lg" aria-labelledby="shareActions"> 
109						<div class="link-list-wrapper"> 
110							<ul class="link-list share-btn" role="menu"> 
111								<li role="none"><a class="list-item" data-id="fb" href="#" role="menuitem"> 
112									<svg class="me-2 icon icon-sm" aria-hidden="true"> 
113										<use xlink:href="${themeDisplay.getPathThemeImages()}/sprites.svg#it-facebook"></use> 
114									</svg><span><@liferay.language key="museo.social.facebook" /></span></a></li> 
115								<li role="none"><a class="list-item" data-id="tw" href="#" role="menuitem"> 
116									<svg class="me-2 icon icon-sm" aria-hidden="true"> 
117										<use xlink:href="${themeDisplay.getPathThemeImages()}/sprites.svg#it-twitter"></use> 
118									</svg><span><@liferay.language key="museo.social.twitter" /></span></a></li> 
119								<li role="none"><a class="list-item" data-id="wa" href="#" role="menuitem"> 
120									<svg class="me-2 icon icon-sm" aria-hidden="true"> 
121										<use xlink:href="${themeDisplay.getPathThemeImages()}/sprites.svg#it-whatsapp"></use> 
122									</svg><span><@liferay.language key="museo.social.whatsapp" /></span></a></li> 
123							</ul> 
124						</div> 
125					</div> 
126			 
127				</div> 
128				<a class="btn p-0" href="${operaMmg.immagineprincipale.immagine.url}" data-lightbox="gallery" data-title="${operaMmg.titolo}"> 
129					<svg class="icon"> 
130						<use href="${themeDisplay.getPathThemeImages()}/sprites.svg#it-zoom-in"></use> 
131					</svg> 
132				</a> 
133			</div> 
134		</div> 
135	</div> 
136</section> 
137 
138<section class="artwork-info"> 
139	<div class="container col-md-9 p-6 p-sm-1rem"> 
140		<div class="description mb-5rem p-3"> 
141			<p>${operaMmg.getDescrizione()}</p> 
142		</div> 
143		<h2 class="h4 p-3"><@liferay.language key="museo.opera.informazionitecniche" /></h2> 
144		<div class="table-responsive mt-2 p-3"> 
145			<table class="table"> 
146				<tbody> 
147					<tr> 
148						<th scope="row"><@liferay.language key="museo.opera.titolooriginale" /></th> 
149						<td>${operaMmg.getTitolo()}</td> 
150					</tr> 
151					<#if operaMmg.getTipologia()?? && operaMmg.getTipologia()?has_content> 
152						<tr> 
153							<th scope="row"><@liferay.language key="museo.opera.tipologia" /></th> 
154							<td>${operaMmg.getTipologia()}</td> 
155						</tr> 
156					</#if> 
157					<#if collezioneMmg?has_content> 
158						<tr> 
159							<th scope="row"><@liferay.language key="museo.opera.collezione" /></th> 
160							<td>${collezioneMmg.nome}</td> 
161						</tr> 
162					</#if> 
163					<#if operaMmg.getAmbito()?has_content> 
164						<tr> 
165							<th scope="row"><@liferay.language key="museo.opera.ambito" /></th> 
166							<td>${operaMmg.ambito}</td> 
167						</tr> 
168					</#if> 
169					<#if operaMmg.getMateriale()?has_content> 
170						<tr> 
171							<th scope="row"><@liferay.language key="museo.opera.tecnica" /></th> 
172							<td>${operaMmg.materiale}</td> 
173						</tr> 
174					</#if> 
175					<#if operaMmg.getMisure()?has_content> 
176						<tr> 
177							<th scope="row"><@liferay.language key="museo.opera.dimensioni" /></th> 
178							<td>${operaMmg.misure}</td> 
179						</tr> 
180					</#if> 
181					<#if restauri.getData()?has_content> 
182						<tr> 
183							<th scope="row"><@liferay.language key="museo.opera.restauri" /></th> 
184							<td>${restauri.getData()}</td> 
185						</tr> 
186            		</#if> 
187					<tr> 
188						<th scope="row"><@liferay.language key="museo.opera.collocazione" /></th> 
189						<td> 
190						<#if luogoMuseo?has_content> 
191							<#assign pagelink = "" /> 
192							<#if luogoMuseo.getPlidDisplay()?? && luogoMuseo.getPlidDisplay()?has_content> 
193								<#assign layoutDisplay = layoutLocalService.getLayout(luogoMuseo.getPlidDisplay()) > 
194								<#if layoutDisplay?? && layoutDisplay?has_content> 
195									<#assign pagelink = layoutDisplay.getFriendlyURL(themeDisplay.getLocale()) /> 
196								</#if> 
197							</#if> 
198							<#if pagelink?has_content> 
199								<a href="${siteBasePath}${pagelink}" title="${pianoMmg.nome}" >${luogoMuseo.nome}</a> 
200							<#else> 
201								${luogoMuseo.nome} 
202							</#if> 
203						<#else> 
204							${luogoMmg.nome}<br/> 
205							<@liferay.language key="museo.ricerca.piano" />: <a href="${siteBasePath}/w/${pianoMmg.getUrlTitle()}" title="${pianoMmg.nome}" >${pianoMmg.nome}</a><br/> 
206							<@liferay.language key="museo.ricerca.spazioespositivo" />: <a href="${siteBasePath}/w/${spazioEspositivoMmg.getUrlTitle()}" title="${spazioEspositivoMmg.nome}" >${spazioEspositivoMmg.nome}</a></td> 
207						</#if> 
208					</tr> 
209				</tbody> 
210			</table> 
211		</div> 
212	</div> 
213	 
214</section> 
215 
216<#if printsection> 
217	<section class="section mb-3"> 
218		<h2><@liferay.language key="museo.opera.operanelmuseo" /></h2> 
219		<#if printpercorsi> 
220			<div class="mt-4"> 
221				<h3><@liferay.language key="museo.opera.percorsi" /></h3> 
222				<div class="row mt-3 row-cols-1 row-cols-md-3"> 
223					<#list jaopereRelated as jaoperaRelated> 
224						<#if jaoperaRelated.getDDMStructureId() == structureService.getStructurePercorsoMmgMUSEOId()> 
225							<#assign percorsoMmg = jac.getPercorsoMmgMUSEO(jaoperaRelated, locale)> 
226							<#assign jacpercorsoRelated = percorsoMmg.getDirectRelatedAssets() /> 
227 
228							<div class="col mb-5"><a class="card card-5 border border-light rounded shadow h-100" href="${siteBasePath}/w/${percorsoMmg.getUrlTitle()}"> 
229									<div class="ratio ratio-16x9"><img class="card-img-top" src="${percorsoMmg.immagineprincipale.immagine.url}" alt="${percorsoMmg.immagineprincipale.titolo}"></div> 
230									<div class="card-body"> 
231										<h3 class="mb-3 card-title">${percorsoMmg.getTitolo()}</h3> 
232										<p class="card-text font-serif">${percorsoMmg.getDescrizione()}</p> 
233										<p class="footer-card font-serif"><strong><@liferay.language key="museo.opera.durata" />: &nbsp;&nbsp;&nbsp;</strong>${percorsoMmg.getDurata()}</p> 
234									</div> 
235								</a> 
236							</div> 
237						</#if> 
238					</#list> 
239				</div> 
240			</div> 
241		</#if> 
242		<#if printcollezioni> 
243			<div class="mt-6"> 
244				<h3><@liferay.language key="museo.opera.collezioni" /></h3> 
245				<div class="row mt-3 row-cols-1 row-cols-md-2"> 
246					<#list jaopereRelated as jaoperaRelated> 
247						<#if jaoperaRelated.getDDMStructureId() == structureService.getStructureCollezioneMmgMUSEOId()> 
248							<#assign collezioneMmg = jac.getCollezioneMmgMUSEO(jaoperaRelated, locale)> 
249							<#assign jacollezioneRelated = collezioneMmg.getDirectRelatedAssets() /> 
250 
251							<div class="col"> 
252								<a class="card card-4 h-100" href="${siteBasePath}/w/${collezioneMmg.getUrlTitle()}"> 
253									<div class="ratio ratio-21x9"><img class="card-img-top" src="${collezioneMmg.immagineprincipale.immagine.url}" alt="${collezioneMmg.immagineprincipale.titolo}"></div> 
254									<div class="card-body"> 
255										<h3 class="h4 card-title">${collezioneMmg.getNome()}</h3> 
256										<p class="font-sans-serif">${collezioneMmg.getDescrizione()}</p> 
257									</div> 
258								</a> 
259							</div> 
260						</#if> 
261					</#list> 
262				</div> 
263			</div> 
264		</#if> 
265	</section> 
266</#if> 
267 
268 
269<#assign printsectionopere = false> 
270<#list jaopereRelated as jaoperaRelated> 
271	<#if jaoperaRelated.getDDMStructureId() == structureService.getStructureCollezioneMmgMUSEOId()> 
272		<#assign collezioneMmg = jac.getCollezioneMmgMUSEO(jaoperaRelated, locale)> 
273		<#assign jacollezioneRelated = collezioneMmg.getDirectRelatedAssets() /> 
274 
275		<#list jacollezioneRelated as jacollezioneRelated> 
276			<#if jacollezioneRelated.getDDMStructureId() == structureService.getStructureOperaMmgMUSEOId()> 
277				<#assign operacorrelataMmg = jac.getOperaMmgMUSEO(jacollezioneRelated, locale)> 
278				<#assign jarelopereRelated = operacorrelataMmg.getDirectRelatedAssets() /> 
279 
280				<#assign printsectionopere = true> 
281			</#if> 
282		</#list> 
283	</#if> 
284</#list> 
285 
286<#if printsectionopere> 
287	<section class="section section-background pb-7"> 
288		<h2 class="mb-4"><@liferay.language key="museo.opera.operecorrelate" /></h2> 
289			<div class="row row-cols-1 row-cols-md-3"> 
290 
291				<#list jaopereRelated as jaoperaRelated> 
292					<#if jaoperaRelated.getDDMStructureId() == structureService.getStructureCollezioneMmgMUSEOId()> 
293						<#assign collezioneMmg = jac.getCollezioneMmgMUSEO(jaoperaRelated, locale)> 
294						<#assign jacollezioneRelated = collezioneMmg.getDirectRelatedAssets() /> 
295 
296						<#list jacollezioneRelated as jacollezioneRelated> 
297							<#if jacollezioneRelated.getDDMStructureId() == structureService.getStructureOperaMmgMUSEOId()> 
298								<#assign operacorrelataMmg = jac.getOperaMmgMUSEO(jacollezioneRelated, locale)> 
299								<#assign jarelopereRelated = operacorrelataMmg.getDirectRelatedAssets() /> 
300 
301								<#assign autoristr = "" /> 
302								<#assign isFirst = true> 
303 
304								<#list jarelopereRelated as jareloperaRelated> 
305									<#if jareloperaRelated.getDDMStructureId() == structureService.getStructureAutoreMmgMUSEOId()> 
306										<#assign autoreMmg = jac.getAutoreMmgMUSEO(jareloperaRelated, locale)> 
307										<#if isFirst> 
308											<#assign autoristr = autoreMmg.getNome() /> 
309											<#assign isFirst = false> 
310										<#else> 
311											<#assign autoristr = autoristr + ", "+ autoreMmg.getNome() /> 
312										</#if> 
313									</#if> 
314								</#list> 
315								<div class="col"><a class="card card-4 h-100" href="${siteBasePath}/w/${operacorrelataMmg.getUrlTitle()}"> 
316										<div class="ratio ratio-1x1"><img class="card-img-top" src="${operacorrelataMmg.immagineprincipale.immagine.url}" alt="${operacorrelataMmg.immagineprincipale.immagine.alt}"></div> 
317										<div class="card-body"> 
318											<h3 class="h4 card-title">${operacorrelataMmg.getTitolo()}</h3> 
319											<#if autoristr??> 
320												<h4 class="h6 author">${autoristr}</h4> 
321											</#if> 
322											<#if operacorrelataMmg.getDatazione()?? && operacorrelataMmg.getDatazione()?has_content> 
323												<p class="font-monospace card-text">${operacorrelataMmg.getDatazione()}</p> 
324											</#if> 
325										</div> 
326									</a> 
327								</div> 
328							</#if> 
329						</#list> 
330					</#if> 
331				</#list> 
332			</div> 
333 
334		<div class="row"> 
335			<div class="col-12 d-flex justify-content-end"> 
336				<a class="read-more" href="#" data-focus-mouse="false" aria-label="tutte le opere"><span class="text"><@liferay.language key="museo.opera.tutteleopere" /></span> 
337					<svg class="icon"> 
338						<use href="${themeDisplay.getPathThemeImages()}/sprites.svg#it-arrow-right"></use> 
339					</svg> 
340				</a> 
341			</div> 
342		</div> 
343	</section> 
344	 
345	<#if operaMmg.getImmaginisecondarie()?has_content && operaMmg.getImmaginisecondarie()[0]?? && operaMmg.getImmaginisecondarie()[0]?has_content && operaMmg.getImmaginisecondarie()[0].getImmagine().getUrl()?? &&  operaMmg.getImmaginisecondarie()[0].getImmagine().getUrl()?has_content> 
346		<section class="section section-background-dark pb-7"> 
347			<div class="container"> 
348				<div class="row"> 
349					<div class="col-12"> 
350						<h2><@liferay.language key="museo.opera.immaginicorrelate" /></h2> 
351					</div> 
352				</div> 
353				<div class="row"> 
354					<div class="carousel-2 it-carousel-wrapper it-carousel-landscape-abstract-three-cols it-full-carousel it-standard-image splide" data-bs-carousel-splide=""> 
355						<div class="splide__track"> 
356							<ul class="splide__list"> 
357								<#list operaMmg.getImmaginisecondarie() as image> 
358									<#if image?has_content && image.getImmagine().getUrl()?? && image.getImmagine().getUrl()?has_content> 
359										<li class="splide__slide"> 
360											<div class="it-single-slide-wrapper"> 
361												<div class="card-wrapper"> 
362													<div class="card card-img no-after"> 
363														<div class="img-responsive-wrapper"> 
364															<div class="img-responsive"> 
365																<div class="img-wrapper"> 
366																	<img class="modalImage" href="${image.getImmagine().getUrl()}" alt="${image.getImmagine().getAlt()}" data-fileentryid="${image.getImmagine().getFileEntryId()}" src="${image.getImmagine().getUrl()}" data-bs-toggle="modal" data-bs-target="#modalCarouselImage"> 
367																</div> 
368															</div> 
369														</div> 
370													</div> 
371												</div> 
372											</div> 
373										</li> 
374									</#if> 
375								</#list> 
376							</ul> 
377						</div> 
378					</div> 
379				</div> 
380			</div> 
381		</section> 
382	</#if> 
383	<section class="section pt-0"> 
384		<div class="row"> 
385        	<div class="description mb-5"> 
386          		<div class="d-flex justify-content-between footer-text mt-5"> 
387					<div class="text-update"><strong><@liferay.language key="museo.opera.ultimoaggiornamento" />:&nbsp;&nbsp;</strong>${modifieddate}</div> 
388          		</div> 
389    		</div> 
390      	</div> 
391    </section> 
392</#if>