Format
Si è verificato un errore nell'elaborarazione del modello.
The following has evaluated to null or missing:
==> themeDisplay.getThemeSetting("news-vocabulary-id")  [in template "51632#51678#43587" at line 22, column 20]

----
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: vocabularyId = themeDisplay.getThemeS...  [in template "51632#51678#43587" at line 22, column 5]
----
1<#--sella social macro --> 
2<#include "${templatesPath}/SOCIAL-SHARE-MACRO" /> 
3 
4<#assign originalLocale = locale> 
5<#setting locale = 'en_US'> 
6<#assign date = .vars['reserved-article-display-date'].data/> 
7<#assign date = date?datetime("EEE, d MMM yyyy HH:mm:ss Z") /> 
8<#setting locale = originalLocale> 
9<#assign dateTimeFormat = languageUtil.get(locale, "HH:mm, dd MMM yyyy")> 
10 
11 
12<#assign 
13    articleId = .vars['reserved-article-id'].data 
14    journalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") 
15    assetEntryService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") 
16    ja = journalService.fetchLatestArticle(themeDisplay.getScopeGroupId(), articleId, 0) 
17    ae = assetEntryService.fetchEntry("com.liferay.journal.model.JournalArticle", ja.getResourcePrimKey()) 
18    title = .vars['reserved-article-title'].data 
19    jaAbstract = .vars['reserved-article-description'].data 
20    absoluteURL = themeDisplay.getPortalURL() + themeDisplay.getURLCurrent() 
21    altBigDetailImage = "" 
22    vocabularyId = themeDisplay.getThemeSetting("news-vocabulary-id")?number 
23    category = sella_tool.getCategoryFromVocabularyId(ae.getCategories(), vocabularyId, locale) 
24/> 
25 
26<#if !vocabularyIdLive?? && !themeDisplay.getThemeSetting("news-vocabulary-id-live")?? > 
27    <#assign vocabularyIdLive = 52307 /> 
28<#else> 
29    <#assign vocabularyIdLive = themeDisplay.getThemeSetting("news-vocabulary-id-live")?number /> 
30</#if> 
31 
32<#if category==""> 
33    <#assign category = sella_tool.getCategoryFromVocabularyId(ae.getCategories(), vocabularyIdLive , locale)  /> 
34</#if> 
35 
36<#-- ja title --> 
37<#if titleShown?? && titleShown.getData()?has_content> 
38    <#assign title = titleShown.getData() /> 
39</#if> 
40 
41<#if HeroImage.getAttribute("fileEntryId")?? > 
42    <#assign socialImg = themeDisplay.getPortalURL() + sella_tool.getAdaptiveMediaSrc("800-x-533-px",HeroImage.getAttribute("fileEntryId")?number,HeroImage.name) /> 
43<#else> 
44    <#assign socialImg = ""> 
45</#if> 
46 
47<@shareContent title="${title}" summary="${jaAbstract}" detailURL="${absoluteURL}" imageURL="${socialImg}"/> 
48 
49 
50 
51<article class="article-detail article-detail--has-img"> 
52  <#-- Info + Social --> 
53  <div class="container"> 
54    <div class="row"> 
55      <div class="col-md-10 offset-md-1"> 
56        <div class="article-detail__intro"> 
57          <div class="row"> 
58            <div class="col-lg-8"> 
59              <#-- Categoria e data --> 
60              <div class="d-flex"> 
61                <#if category?? && category?has_content> 
62                  <div class="article-detail__category">${category}</div> 
63                </#if> 
64                <div class="article-detail__date">${date?string(dateTimeFormat)}</div> 
65              </div> 
66              <#-- Titolo --> 
67              <h1 class="article-detail__title">${title}</h1> 
68              <#-- Sottotitolo --> 
69              <#if jaAbstract?has_content> 
70                <h2 class="article-detail__subject">${jaAbstract}</h2> 
71              </#if> 
72 
73            </div> 
74          </div> 
75          <div class="row"> 
76            <div class="col-12"> 
77              <div class="article-detail__button d-flex"> 
78                <#-- Share button --> 
79                <div class="sella-share clearfix"> 
80                  <div class="sella-share__icon sella-share__icon--share"> 
81                    <svg class="ico-svg"> 
82                      <use xlink:href="${themeDisplay.getPathThemeImages()}/assets/images/icons.svg#share-alt"></use> 
83                    </svg> 
84                  </div> 
85                  <div class="sella-share__text">Condividi</div> 
86                  <ul> 
87                    <li> 
88                      <a href="http://www.facebook.com/sharer.php?u=${absoluteURL}" title="Facebook" class="sella-share__icon sella-share__icon--fb"> 
89                        <svg class="ico-svg"> 
90                          <use xlink:href="${themeDisplay.getPathThemeImages()}/assets/images/icons.svg#facebook-f"></use> 
91                        </svg> 
92                      </a> 
93                    </li> 
94                    <li> 
95                      <a href="https://twitter.com/home?status=${absoluteURL}" title="Twitter" class="sella-share__icon sella-share__icon--twitter"> 
96                        <svg class="ico-svg"> 
97                          <use xlink:href="${themeDisplay.getPathThemeImages()}/assets/images/icons.svg#twitter"></use> 
98                        </svg> 
99                      </a> 
100                    </li> 
101                    <li> 
102						<#assign escapedTitle = htmlUtil.escape(htmlParserUtil.extractText(title)) /> 
103						<#assign escapedAbstract = htmlUtil.escape(htmlParserUtil.extractText(jaAbstract)) /> 
104 
105                      	<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=${absoluteURL}&amp;title=${escapedTitle}&amp;summary=${escapedAbstract}&amp;source=" title="LinkedIn" class="sella-share__icon sella-share__icon--linkedin"> 
106                        	<svg class="ico-svg"> 
107                          		<use xlink:href="${themeDisplay.getPathThemeImages()}/assets/images/icons.svg#linkedin-in"></use> 
108                        	</svg> 
109                      	</a> 
110                    </li> 
111                     <li> 
112                      <a href="https://api.whatsapp.com/send?text=${urlCodec.encodeURL(absoluteURL)}" title="WahtsApp" class="sella-share__icon sella-share__icon--whatsapp"> 
113                        <svg class="ico-svg"> 
114                          <use xlink:href="${themeDisplay.getPathThemeImages()}/assets/images/icons.svg#whatsapp"></use> 
115                        </svg> 
116                      </a> 
117                    </li> 
118                  </ul> 
119                </div> 
120              </div> 
121            </div> 
122          </div> 
123        </div> 
124      </div> 
125    </div> 
126  </div> 
127 
128 
129<#if HeroImage?? && HeroImage.getData() != ""> 
130    <#assign altBigDetailImage = HeroImage.getAttribute("alt") /> 
131    <#assign urlBigDetailImage = HeroImage.getData() /> 
132</#if> 
133<#if urlBigDetailImage?? && urlBigDetailImage?has_content> 
134    <div class="sella-container sella-container--only-img"> 
135        <div class="container-fluid"> 
136 
137        <#-- VIDEO --> 
138            <div class="row"> 
139                <div class="col-lg-10 offset-lg-1"> 
140                    <#if Video?? && Video?has_content > 
141                        <#if Video.getData()?? && Video.getData() != ""> 
142                            <#if Video.getData()?contains("vimeo")> 
143                                <#if HeroImage.getAttribute("fileEntryId")?? > 
144                                    <#assign HeroImage800x533 = sella_tool.getAdaptiveMediaSrc("800-x-533-px",HeroImage.getAttribute("fileEntryId")?number,HeroImage.name) /> 
145                                <#else> 
146                                    <#assign HeroImage800x533 = ""> 
147                                </#if> 
148                                <video width="100%" controls="" poster="${HeroImage800x533}"> 
149                                    <source src ="${Video.getData()}" type="video/mp4"> 
150                                </video> 
151                            <#else> 
152                                <iframe width="100%" height="350px" src="${Video.getData()}?controls=0" ></iframe> 
153                            </#if> 
154                        <#else> 
155                            <#if HeroImage?? && HeroImage?has_content > 
156                                <#if HeroImage.getData()?? && HeroImage.getData() != ""> 
157                                    <#if HeroImage.getAttribute("fileEntryId")?? > 
158                                        <#assign HeroImage800x533 = sella_tool.getAdaptiveMediaSrc("800-x-533-px",HeroImage.getAttribute("fileEntryId")?number,HeroImage.name) /> 
159                                        <figure class="article-detail__fig"> 
160                                        <img class="article-detail__img w-100" src="${HeroImage800x533}" alt="${HeroImage.getAttribute("alt")}"> 
161                                            <#if ImageOwner.getData()?? && ImageOwner.getData()!="" && HeroImage.getAttribute("alt") != "" > 
162                                                <figcaption class="article-detail__figcaption">${HeroImage.getAttribute("alt")} - <strong>${ImageOwner.getData()}</strong></figcaption> 
163                                            <#else> 
164                                                <figcaption class="article-detail__figcaption">${HeroImage.getAttribute("alt")} - <strong>${ImageOwner.getData()}</strong></figcaption> 
165                                            </#if> 
166                                        </figure> 
167                                    </#if> 
168                                </#if> 
169                            </#if> 
170                        </#if> 
171                    </#if> 
172                </div> 
173            </div> 
174        </div> 
175    </div> 
176</#if> 
177 
178<#-- testo --> 
179<#if Body?? && Body.getData()?has_content> 
180    <div class="container"> 
181        <div class="row"> 
182            <div class="col-md-8 offset-md-2 col-xl-6 offset-xl-3"> 
183                <div class="article-detail__text"> 
184                    ${Body.getData()} 
185                </div> 
186            </div> 
187        </div> 
188    </div> 
189</#if> 
190 
191<div class="article-detail__slider"> 
192    <div class="container"> 
193        <div class="row"> 
194            <div class="col-12"> 
195                <div class="slider slider-detail"> 
196                    <#if GalleryImage?has_content && GalleryImage??> 
197                        <#if GalleryImage.getData()?? && GalleryImage.getData() != ""  > 
198                            <#list GalleryImage.getSiblings() as curImage> 
199                                <#if curImage.getAttribute("fileEntryId")?? > 
200                                    <#assign curGalleryImage800x533 = sella_tool.getAdaptiveMediaSrc("800-x-533-px",curImage.getAttribute("fileEntryId")?number,curImage.name) /> 
201                                    <div> 
202                                            <div class="article-detail__gallery"> 
203                                            <a href="${curGalleryImage800x533}" title="${curImage.getAttribute("alt")}"> 
204                                                <img src="${curGalleryImage800x533}" alt="${curImage.getAttribute("alt")}" class="w-100"> 
205                                            </a> 
206                                            <#if curImage.GalleryImageOwner.getData()?? && curImage.GalleryImageOwner.getData()!="" && curImage.getAttribute("alt") != ""  > 
207                                                <div class="article-detail__gallery-caption">${curImage.getAttribute("alt")} - <strong>${curImage.GalleryImageOwner.getData()}</strong></div> 
208                                            </#if> 
209                                        </div> 
210                                    </div> 
211                                </#if> 
212                            </#list> 
213                        </#if> 
214                    </#if> 
215                </div> 
216            </div> 
217        </div> 
218    </div> 
219</div> 
Si è verificato un errore nell'elaborarazione del modello.
No compatible overloaded variation was found; wrong number of arguments.
The FTL type of the argument values were: extended_hash+string (com.liferay.portal.model.impl.LayoutSetImpl wrapped into f.e.b.StringModel), extended_hash+string (com.liferay.portal.kernel.theme.ThemeDisplay wrapped into f.e.b.StringModel).
The matching overload was searched among these members:
    com.liferay.portal.util.PortalImpl.getGroupFriendlyURL(com.liferay.portal.kernel.model.LayoutSet, com.liferay.portal.kernel.theme.ThemeDisplay, boolean, boolean),
    com.liferay.portal.util.PortalImpl.getGroupFriendlyURL(com.liferay.portal.kernel.model.LayoutSet, com.liferay.portal.kernel.theme.ThemeDisplay, Locale)

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign groupPrependURL = portalUtil...  [in template "51632#51678#66308" at line 12, column 1]
----
1<#assign articleId = .vars['reserved-article-id'].data /> 
2<#assign articleGroupId = .vars['articleGroupId'] /> 
3 
4<#assign journalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
5<#assign groupService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService") /> 
6<#assign layoutSetService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutSetLocalService") /> 
7 
8<#assign journalArticle = journalService.getLatestArticle(articleGroupId?number,articleId?string,0) /> 
9<#assign urlTitle = journalArticle.getUrlTitle() /> 
10<#assign group = groupService.getGroup(groupId?number) /> 
11<#assign groupFriendlyURL = group.getFriendlyURL() /> 
12<#assign groupPrependURL =  portalUtil.getGroupFriendlyURL(layoutSetService.getLayoutSet(groupId?number, false), themeDisplay) /> 
13 
14<#assign maxSize = 4 /> 
15<#assign radiocorIndex = radiocor_news_tool.getNewsIndex(-1) /> 
16<#assign dateTimeFormat = languageUtil.get(locale, "dd/MM/yyyy HH:mm:ss")> 
17 
18<section class="radiocor-ultime-wrapper"> 
19    <#-- 
20    <h2 class="sella-underlined-title ml-0 mr-0"> 
21        <span>Ultim'ora</span> 
22    </h2> 
23     --> 
24    <div class="radiocor-ultime-content"> 
25		<#--As of avoiding index-out-of-bounds error, in FreeMarker 2.3.21 you can issue listVar[0..*4], 
26		which will slice out 4 items, or less if there's less available.    --> 
27 
28        <#list radiocorIndex[0..*maxSize] as r> 
29				<div class="lx-latest-news-item"> 
30					<div class="lx-latest-news-item-text"> 
31						<h3><a href="${groupPrependURL}/radiocor/notizia/?nid=${r.id}">${r.headLine}</a></h3> 
32						<span>${r.date?string(dateTimeFormat)!""}</span> 
33					</div> 
34					<div class="lx-clear-fix"></div> 
35				</div> 
36        </#list> 
37    </div> 
38 
39    <p> 
40        <a href="${groupPrependURL}/radiocor/" class="radiocor-read-more font-weight-bold">${languageUtil.get(locale,"radiocor-read-more")}</a> 
41    </p> 
42 
43</section> 
Si è verificato un errore nell'elaborarazione del modello.
The following has evaluated to null or missing:
==> httpUtil.getParameter  [in template "51632#51678#52245" at line 6, column 38]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
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 debug = validator.isNotNull(h...  [in template "51632#51678#52245" at line 6, column 1]
----
1<#--Inclusione delle MACRO  --> 
2<#include "${templatesPath}/SELLA-MACRO" /> 
3<#include "${templatesPath}/ADAPTIVE-IMAGE-MACRO" /> 
4 
5<#-- ##################################### DEBUG ################################### --> 
6<#assign debug = validator.isNotNull(httpUtil.getParameter(current_url,"sellaDebug",false)) /> 
7<#if debug > 
8    <div class="debug-content right"> 
9        TPL: REVIEW ADT 
10    </div> 
11</#if> 
12 
13<section class="review-adt-wrapper"> 
14    <div class="container"> 
15        <div class="review-adt-container"> 
16 
17            <#if entries?has_content> 
18 
19                <div class="review-adt-container-content"> 
20 
21                    <#list entries as curEntry> 
22 
23                        <#assign assetRenderer = curEntry.getAssetRenderer() /> 
24                        <#assign classPK = curEntry.getClassPK() /> 
25                        <#assign review = adt_tool.getFreemarkerMap(classPK, locale) /> 
26                        <#assign journalArticle = curEntry.getAssetRenderer().getAssetObject() /> 
27 
28                        <#assign customTitle = ""/> 
29                        <#if review.CustomTitle??> 
30                                <#assign customTitle = review.CustomTitle.value /> 
31                            </#if> 
32 
33                        <@getEditIcon /> 
34 
35                        <#if review.Cover??> 
36                            <#assign cover = review.Cover.value /> 
37                        </#if> 
38                        <#assign reviewTitle = curEntry.getTitle(locale) /> 
39                        <#assign abstract = curEntry.getSummary(locale) /> 
40 
41                        <div class="row"> 
42                          <div class="review-adt-img col-sm-5 pr-md-0"> 
43                            <a data-senna-off="true" href="${getDisplayPageURL(classPK, groupId)}"> 
44                                <div class="mb-2"> 
45                                    <img class="w-100" src="${cover.url}" > 
46                                </div> 
47                            </a> 
48                          </div> 
49                          <div class="review-adt-text col-sm-7"> 
50                            <h3> 
51                              <a data-senna-off="true" href="${getDisplayPageURL(classPK,groupId)}"> 
52                                <#if customTitle?? && customTitle?has_content> 
53                                        ${customTitle} 
54                                    <#else> 
55                                        ${reviewTitle} 
56                                    </#if> 
57                              </a> 
58                            </h3> 
59                            <div class="review-adt-abstract">${abstract}</div> 
60                          </div> 
61                        </div> 
62 
63                    </#list> 
64 
65                </div> 
66            </#if> 
67 
68        </div> 
69    </div> 
70</section> 
71 
72 
73<#macro getEditIcon> 
74    <#if assetRenderer.hasEditPermission(themeDisplay.getPermissionChecker())> 
75        <#assign redirectURL = renderResponse.createRenderURL() /> 
76 
77        ${redirectURL.setParameter("mvcPath", "/add_asset_redirect.jsp")} 
78        ${redirectURL.setWindowState("pop_up")} 
79 
80        <#assign editPortletURL = assetRenderer.getURLEdit(renderRequest, renderResponse, windowStateFactory.getWindowState("pop_up"), redirectURL)!"" /> 
81 
82        <#if validator.isNotNull(editPortletURL)> 
83            <#assign title = languageUtil.format(locale, "edit-x", entryTitle, false) /> 
84 
85            <@liferay_ui["icon"] 
86                cssClass="icon-monospaced visible-interaction" 
87                icon="pencil" 
88                markupView="lexicon" 
89                message=title 
90                url="javascript:Liferay.Util.openWindow({id:'" + renderResponse.getNamespace() + "editAsset', title: '" + title + "', uri:'" + htmlUtil.escapeURL(editPortletURL.toString()) + "'});" 
91            /> 
92        </#if> 
93    </#if> 
94</#macro> 

L’Arte tra collezionismo, territori e cura

Made in Sella
Impatto

L’Arte tra collezionismo, territori e cura

L’Arte tra collezionismo, territori e cura
Daniela Magnetti
28 Apr 26
#arte #territorio

Portare l’arte fuori dai circuiti tradizionali, renderla accessibile, farla dialogare con i territori e con le persone. Un impegno che si inserisce nella più ampia promozione culturale del Gruppo, che da sempre riconosce nella cultura un motore fondamentale di crescita, dialogo e sviluppo per le comunità. Un impegno concreto che si traduce nella valorizzazione del patrimonio artistico, nella collaborazione con prestigiose istituzioni nazionali e internazionali e nella volontà di rendere la cultura un bene condiviso e accessibile, capace di generare valore duraturo per i territori.

Ne parliamo con Daniela Magnetti, Direttrice Artistica di Banca Patrimoni Sella & C., per capire cosa significa oggi fare direzione artistica all’interno di un Gruppo bancario.

 

Partiamo dall’inizio: che cos’è la Direzione Artistica di Banca Patrimoni Sella & C. e di cosa si occupa?
«La Direzione Artistica di Banca Patrimoni Sella & C. nasce nel 2017 ed è, di fatto, un’eccezione nel panorama bancario italiano. Oggi la nostra attività si articola su tre grandi filoni. 
Il primo riguarda il collezionismo privato: operiamo come art advisor, accompagnando i collezionisti attraverso servizi fondati su tre principi chiave – tutela, valorizzazione e conservazione del patrimonio artistico – resi possibili da una rete solida di competenze e relazioni. 
Il secondo filone è quello istituzionale e pubblico. Collaboriamo con musei, centri di studio e di restauro, sviluppando progetti che vanno oltre la mostra. Abbiamo attivato, ad esempio, una convenzione con il Centro di Conservazione e Restauro della Venaria Reale, lavoriamo sulla diagnostica delle opere e collaboriamo con istituzioni internazionali come il Museo del Louvre. In questo ambito, Banca Patrimoni Sella & C. è anche editore, realizzando cataloghi e pubblicazioni: una scelta poco comune per una banca, che di norma si limita alla sponsorizzazione.
Il terzo filone riguarda il benessere a 360 gradi, un ambito complesso che mette in relazione arte, salute e dimensione sociale.»

Che cosa distingue l’approccio della Direzione Artistica di Banca Patrimoni Sella & C.?
«Come Direzione Artistica convertiamo le risorse economiche in professionalità, progettando eventi culturali in stretta collaborazione con partner pubblici e privati. A volte mi piace dire che siamo un po’ come un “ministero senza portafoglio”: diamo vita a progetti culturali con finalità molto precise.»

Perché una banca sceglie di investire in arte e cultura, soprattutto in relazione ai territori?
«Perché l’arte non si porta nei territori: sono i territori a esportare arte. Raramente si parte da un progetto predefinito: si arriva, si osserva, si ascolta e ci si mette a servizio delle necessità del territorio. Nascono così giornate di studio, progetti di restauro, eventi espositivi che hanno una stretta attinenza con l’identità culturale del territorio. È un lavoro di scoperta, prima ancora che di proposta.»

Avete sviluppato numerosi progetti che vanno oltre le mostre tradizionali. Che valore hanno queste esperienze?
«Da molti anni sviluppiamo progetti che mettono l’arte in relazione con altri ambiti, partendo sempre dall’ascolto dei contesti e dei bisogni delle singole comunità. Ad esempio, abbiamo allestito le sale d’attesa del Pronto Soccorso dell’Ospedale Martini di Torino, progetto nato durante la pandemia che ha saputo far dialogare la creatività di un artista torinese con le esigenze del personale sanitario. Il nostro ruolo è stato quello di mediatore tra i due mondi. Accanto a questi interventi, sviluppiamo percorsi di formazione riconosciuti dall’ASL Città di Torino per medici e operatori sanitari, in cui l’arte diventa strumento per rafforzare capacità di comunicazione, ascolto e relazione.
Parallelamente, sempre attraverso l’arte, lavoriamo su temi come Alzheimer, Parkinson, prevenzione e tematiche sociali. Un esempio è il progetto dedicato alla lotta contra la violenza sulle donne che quest’anno prende la forma inedita del podcast “Non chiamatela fortuna” che sarà presentato il 18 maggio a Palazzo Bricherasio, in concomitanza con il Salone del libro di Torino, per essere poi diffuso sull’intero territorio nazionale.»

Guardando al futuro, quale pensi sia la responsabilità di chi oggi si occupa di cultura?
«Una responsabilità è quella di tutelare, conservare e valorizzare il patrimonio storico artistico perché questo possa conservarsi nel tempo ed essere trasmesso alle generazioni future. Un’altra è quella di accompagnare nella consapevolezza che il bello trasmesso da qualunque espressione artistica è una ricchezza e una risorsa insostituibile per ciascuno di noi. L’assuefazione al bello, anche nei luoghi di lavoro, è pericolosa. Lavorare in spazi belli e curati significa lavorare in luoghi dove qualcuno si è preso cura di te, prima ancora che tu arrivassi. Questo vale per Palazzo Bricherasio e tutte le altre sedi del Gruppo come per gli ospedali o gli spazi pubblici: non devono essere brutti. Anzi, proprio nei momenti di difficoltà, il bello insito nelle arti può essere di aiuto e di crescita per individui e comunità.»

Condividi e partecipa alla discussione