Une erreur s'est produite lors du traitement du gabarit.
The following has evaluated to null or missing:
==> Contenu  [in template "20116#20152#DETAIL-DISPOSITIF" at line 208, column 31]

----
Tip: If the failing expression is known to be 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: ${Contenu.getData()}  [in template "20116#20152#DETAIL-DISPOSITIF" at line 208, column 29]
----
1<#assign cncCategoriesService = serviceLocator.findService("fr.cnc.categories.api.CncCategoriesService") /> 
2<#assign cncRenduArticles = serviceLocator.findService("fr.cnc.rendu.articles.api.CncRenduArticlesService") /> 
3<#assign cncArticleRechercheService = serviceLocator.findService("fr.cnc.recherche.api.CncArticleRechercheService") /> 
4<#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext()> 
5<#assign httpServletRequest = serviceContext.getRequest()/> 
6<#assign themeDisplay = serviceContext.getThemeDisplay() /> 
7<#assign cncUrlService = serviceLocator.findService("fr.cnc.url.api.CncUrlService") /> 
8<#assign ArticleJournalUtil = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
9<#assign ArticleJournalId = .vars['reserved-article-id'].data> 
10<#assign ArticleJournalTitle = .vars['reserved-article-title'].data> 
11<#assign categoriesListDispositif = cncCategoriesService.recupererCategoriesArticleParVocabulaire(groupId, ArticleJournalId , "Dispositif") /> 
12 
13<#-- recupere le premier element de la liste --> 
14<#if categoriesListDispositif?size !=0> 
15	<#assign categoryDispo = categoriesListDispositif[0]> 
16	<#assign rechercheResultats = cncArticleRechercheService.rechercheDernierResultatsCommission(themeDisplay, "RESULTATS-COMMISSION", categoryDispo.getName()) /> 
17	<#assign rechercheCommissions = cncArticleRechercheService.rechercheAgendaCommissionTriees(themeDisplay, "AGENDA-COMMISSION", categoryDispo.getName()) /> 
18	<#assign rechercheCompositionCommissions = cncArticleRechercheService.rechercheCompositionCommission(themeDisplay, "COMPOSITION-COMMISSION", categoryDispo.getName()) /> 
19	<#assign rechercheDecisionsNomination = cncArticleRechercheService.recherchePublications(themeDisplay, "PUBLICATION", categoryDispo.getName(), "Décisions de nomination") /> 
20</#if> 
21<#assign categoriesListDomaine = cncCategoriesService.getDomaines(groupId, ArticleJournalId) /> 
22<#assign categoriesListSecteur = cncCategoriesService.recupererCategoriesArticleParVocabulaire(groupId, ArticleJournalId , "Secteur") /> 
23<#assign categoriesListPhaseprojet = cncCategoriesService.recupererCategoriesArticleParVocabulaire(groupId, ArticleJournalId , "Phase du projet") /> 
24<#assign categoriesListTypeAide = cncCategoriesService.recupererCategoriesArticleParVocabulaire(groupId, ArticleJournalId , "Type de dispositif") /> 
25<#assign categoriesListTypeSoutien = cncCategoriesService.recupererCategoriesArticleParVocabulaire(groupId, ArticleJournalId , "Type de soutien") /> 
26<#assign categoriesListDemandeur = cncCategoriesService.recupererCategoriesArticleParVocabulaire(groupId, ArticleJournalId , "Demandeur") /> 
27 
28<#if categoriesListDomaine?size != 0> 
29 
30	<#-- recupere le premier element de la liste --> 
31	<#assign categoriesSousDomainesList = cncCategoriesService.recupererCategoriesArticleParVocabulaire(groupId, ArticleJournalId , "Sous-domaine") /> 
32 
33	<#assign cncArticleRechercheService = serviceLocator.findService("fr.cnc.recherche.api.CncArticleRechercheService") /> 
34	<#assign articlesLies = cncArticleRechercheService.recupererRenduDerniersArticlesMemeSujet(themeDisplay, ArticleJournalId, "ARTICLE-EDITORIAL", categoriesListDomaine, categoriesSousDomainesList, "ARTICLE-EDITORIAL-LIE", 3) /> 
35</#if> 
36 
37<#-- test si on vient d'une page de liste de contenu --> 
38<#assign siPagePrecedenteCorrespondPageListeContenu = cncUrlService.siPagePrecedenteCorrespondPageListeContenu(httpServletRequest) /> 
39 
40<#if siPagePrecedenteCorrespondPageListeContenu> 
41	<div class="back"> 
42	    <div class="container"> 
43	        <div class="row"> 
44	            <div class="col"> 
45	                <div class="link-icon"> 
46	                    <a href="javascript:boutonRetour.goBack();" > 
47	                        <i class="icon icon-back"></i> 
48	                        <@liferay.language key="pages.liste.bouton.retour.a.la.liste" /> 
49	                    </a> 
50	                </div> 
51	            </div> 
52	        </div> 
53	    </div> 
54	</div> 
55</#if> 
56 
57<section class="single dispositif"> 
58    <div class="container"> 
59        <article> 
60            <section class="article-content"> 
61                <div class="row position-relative"> 
62                    <nav id="sticky-article-nav" class="sticky-nav col-xl-3 d-none d-xl-block position-absolute top-0 start-0"> 
63                        <ul class="list-unstyled" role="tablist"> 
64							<#--stickyMenu chargé en javacript via la méthode sticky.initH2() --> 
65                        </ul> 
66                    </nav> 
67                    <div class="col-12 col-xl-8"> 
68                        <div class="article-content-scroll"> 
69                            <div class="article-head"> 
70                                <div class="article-title"> 
71                                    <h1> 
72                                    <#if ArticleJournalTitle?has_content> 
73							         	${ArticleJournalTitle} 
74							        </#if> 
75                                    </h1> 
76									<#if categoriesListDispositif?size != 0> 
77 
78								<#-- recupere le premier element de la liste --> 
79								<#assign categoryDispo = categoriesListDispositif[0]> 
80                                
81								<#-- calcul url --> 
82								<#assign UrlPagePublicationsTypeDecisionsNominationParIdCategorieDispositif = cncUrlService.calculUrlPagePublicationsTypeDecisionsNominationParIdCategorieDispositif(themeDisplay, categoryDispo.getCategoryId()) /> 
83 
84									</#if> 
85                                    <#assign Templates_Path = templatesPath /> 
86		                    		<#include "${Templates_Path}/BLOC-SHARETHIS"> 
87                                </div> 
88                            </div> 
89                            <#if Resume?has_content> 
90                            <div class="intro">${Resume.getData()}</div> 
91							</#if> 
92                            <ul class="list-unstyled simple"> 
93                            	<#assign originalLocale = locale> 
94	    						<#setting locale = localeUtil.getDefault()> 
95                                <li> 
96                                    <strong><@liferay.language key="article.dispositif.domaine" /></strong> : 
97                                    <#if categoriesListSecteur?has_content> 
98                                    	<#assign urlControlleurMoteurAide = cncUrlService.calculUrlPageParKeyUrlRelative(themeDisplay, "cnc.friendly.url.recherche.aides") /> 
99										<#assign urlForSecteur = urlControlleurMoteurAide + "?secteur="/> 
100										<#list categoriesListSecteur as categoryListSecteur> 
101										 	<a href="${urlForSecteur}${categoryListSecteur.getName()}" >${categoryListSecteur.getTitle(locale)}</a><#if !categoryListSecteur?is_last> - </#if> 
102										</#list> 
103									</#if> 
104                                </li> 
105                                <li> 
106                                    <strong><@liferay.language key="article.dispositif.phase.projet" /></strong> : 
107                                    <#list categoriesListPhaseprojet as categoryListPhaseprojet> 
108        								${categoryListPhaseprojet.getTitle(locale)}<#if !categoryListPhaseprojet?is_last>, </#if> 
109                                    </#list> 
110                                </li> 
111                                <li> 
112                                    <strong><@liferay.language key="article.dispositif.type.soutien" /></strong> : 
113                                    <#list categoriesListTypeSoutien as categoryListTypeSoutien> 
114        								${categoryListTypeSoutien.getTitle(locale)}<#if !categoryListTypeSoutien?is_last>, </#if> 
115                                    </#list> 
116                                </li> 
117                                <li> 
118                                    <strong><@liferay.language key="article.dispositif.type.aide" /></strong> : 
119                                    <#list categoriesListTypeAide as categoryListTypeAide> 
120        								${categoryListTypeAide.getTitle(locale)}<#if !categoryListTypeAide?is_last>, </#if> 
121                                    </#list> 
122                                </li> 
123                                <li> 
124                                    <strong><@liferay.language key="article.dispositif.demandeur" /></strong> : 
125                                    <#list categoriesListDemandeur as categoryListDemandeur> 
126        								${categoryListDemandeur.getTitle(locale)}<#if !categoryListDemandeur?is_last>, </#if> 
127                                    </#list> 
128                                </li> 
129                                <#if NonCumul?has_content> 
130                                <li> 
131                                	<#if NonCumul?has_content> 
132                                    ${NonCumul.getData()} 
133                                    </#if> 
134                                </li> 
135	                            </#if> 
136	                            <#setting locale = originalLocale> 
137                            </ul> 
138                            <#if DateMiseAJour?has_content> 
139                            <div class="focus"> 
140                                <#assign DateMiseAJour_Data = getterUtil.getString(DateMiseAJour.getData())> 
141                                <#if DateMiseAJour_Data?has_content> 
142                                	<#assign DateMiseAJour_DateObj = dateUtil.parseDate("yyyy-MM-dd", DateMiseAJour_Data, locale)> 
143 
144                                	<#assign dateMajDispositif = dateUtil.getDate(DateMiseAJour_DateObj, "dd MMMM yyyy", locale)> 
145                                <h3><@liferay.language key="article.dispositif.a.noter" /></h3> 
146                                <div class="text"><@liferay.language key="article.dispositif.maj" /> ${dateMajDispositif}</div> 
147                                </#if> 
148                            </div> 
149                            </#if> 
150							<!-- Si il y a des fichiers à télécharger on affiche --> 
151                                <#if FichiersAssocies?has_content && FichiersAssocies.getSiblings()?size gt 0 && FichiersAssocies.getSiblings()?first.getData()?has_content> 
152                            <div class="download-block"> 
153                                <div class="title"><@liferay.language key="article.dispositif.telechargement" /> 
154                                </div> 
155                                	<#list FichiersAssocies.getSiblings() as cur_FichiersAssocies> 
156                                	    <#assign counter = 0 > 
157                                	    <#assign uuId = "" > 
158                                        <#list cur_FichiersAssocies.getData()?split("/") as x> 
159                                            <#if counter == 5> 
160                                                <#if x?split("?t")?has_content > 
161                                                    <#assign uuId = x?split("?t")[0] > 
162                                                </#if> 
163                                            </#if> 
164                                            <#assign counter = counter+1 > 
165                                        </#list> 
166                                        <#assign fileEntry = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryService")> 
167                                        <#if uuId?has_content && fileEntry?has_content> 
168                                            <#assign file = fileEntry.getFileEntryByUuidAndGroupId(uuId,groupId) > 
169                                        </#if> 
170                                        <#if file?has_content && uuId?has_content> 
171                                <div class="link-icon light"> 
172                                	<a href="${cur_FichiersAssocies.getData()}"  class="round"  target="_blank"> 
173                                	    <i class="icon icon-download"></i> 
174                                    	    <#assign fileName = "" /> 
175                                    		<#if file.getFileName()?has_content> 
176                                    		    <#assign fileName = file.getFileName()?split(".")[0] /> 
177                                    		</#if> 
178                                    	    ${fileName} 
179                                    	<span class="details"> 
180                                    		<#assign fileExtension = file.getFileName()?split(".")[1] /> 
181                                    		<#assign fileSize = 0 /> 
182                                    		<#if file.getSize()?has_content> 
183                                    		    <#assign fileSize = file.getSize()/1000 /> 
184                                            (<span class="extension">${fileExtension?upper_case}</span> 
185                                            <span class="weight">${fileSize?int}ko</span>) 
186                                            </#if> 
187                                        </span> 
188                                	</a> 
189                                </div> 
190                                        </#if> 
191                                	</#list> 
192                            </div> 
193                                </#if> 
194                            <hr> 
195                        </div> 
196                    </div> 
197                </div> 
198            </section> 
199        </article> 
200    </div> 
201    <div class="container"> 
202        <article> 
203            <div class="article-content"> 
204                <div class="row"> 
205                	<div class="col-xl-3 d-none d-xl-block"></div> 
206                    <div class="col-12 col-xl-8"> 
207                        <div class="article-content-scroll"> 
208                            ${Contenu.getData()} 
209                        </div> 
210                        <#if InformationsProchainesCommissions?has_content && InformationsProchainesCommissions.getData()?has_content && !rechercheCommissions?has_content> 
211                        	<hr> 
212	                        <h2 id="prochaines-commissions"><@liferay.language key="article.dispositif.prochaines.commissions" /></h2> 
213                            ${InformationsProchainesCommissions.getData()} 
214                            <br> 
215		                    <br> 
216                        <#elseif rechercheCommissions?has_content> 
217	                        <hr> 
218	                        <h2 id="prochaines-commissions"><@liferay.language key="article.dispositif.prochaines.commissions" /></h2> 
219	                        <#if InformationsProchainesCommissions?has_content> 
220		                        ${InformationsProchainesCommissions.getData()} 
221	                        </#if> 
222	                        <br> 
223		                    <br> 
224	                        <table class="table table-striped table-responsive"> 
225	                            <thead> 
226	                                <tr> 
227	                                    <th scope="col"><@liferay.language key="article.dispositif.date.depot" /></th> 
228	                                    <th scope="col"><@liferay.language key="article.dispositif.date.commission" /></th> 
229	                                </tr> 
230	                            </thead> 
231	                            <tbody id="tableau-dispositif-agenda-commission"> 
232									<#assign compteurRenduAgenda = 1 /> 
233									<#list rechercheCommissions as rechercheCommission> 
234									<tr id="agenda-commission-${compteurRenduAgenda}"> 
235										<#assign compteurRenduAgenda ++ /> 
236										${rechercheCommission} 
237									</tr> 
238									</#list> 
239 
240									<script> 
241										jQuery(document).ready(function() { 
242											cncGenererRenduHtmlCalendrierAgendaCommissionDispositif('#tableau-dispositif-agenda-commission tr'); 
243										}); 
244									</script> 
245	                           	</tbody> 
246	                        </table> 
247							<#if InformationsComplementairesProchainesCommissions?has_content && InformationsComplementairesProchainesCommissions.getData()?has_content> 
248		                        <div class="focus"> 
249		                            <h3><@liferay.language key="article.dispositif.a.noter" /></h3> 
250		                            <div class="text"> 
251		                                ${InformationsComplementairesProchainesCommissions.getData()} 
252		                            </div> 
253		                        </div> 
254	                        </#if> 
255                        </#if> 
256                        <#if rechercheCompositionCommissions?has_content> 
257 
258							<#if categoriesListDispositif?size != 0> 
259 
260								<#-- recupere le premier element de la liste --> 
261								<#assign categoryDispo = categoriesListDispositif[0]> 
262 
263								<#-- calcul url --> 
264								<#assign UrlPagePublicationsTypeDecisionsNominationParIdCategorieDispositif = cncUrlService.calculUrlPagePublicationsTypeDecisionsNominationParIdCategorieDispositif(themeDisplay, categoryDispo.getCategoryId()) /> 
265 
266 
267							<hr> 
268							<div> 
269		                        <h2 id="composition-des-commissions" class="inline"><@liferay.language key="composition.commission.titre" /></h2> 
270								<#if rechercheDecisionsNomination?has_content> 
271									<a href="${UrlPagePublicationsTypeDecisionsNominationParIdCategorieDispositif}" title="" class="button button-outline float-right"><@liferay.language key="composition.commission.lien.decisions.nomination" /></a> 
272								</#if> 
273							</div> 
274							 
275							</#if> 
276							 
277							<#list rechercheCompositionCommissions as rechercheCompositionCommission> 
278								${rechercheCompositionCommission} 
279							</#list> 
280						</#if> 
281 
282                        <#if rechercheResultats?has_content> 
283							<#if categoriesListDispositif?size != 0> 
284 
285								<#-- recupere le premier element de la liste --> 
286								<#assign categoryDispo = categoriesListDispositif[0]> 
287 
288								<#-- calcul url --> 
289								<#assign urlListeResultats = cncUrlService.calculUrlResultatsCommisionDispositif(themeDisplay, categoryDispo.getName()) /> 
290 
291							<hr> 
292							<div class="clearfix"> 
293								<h2 id="resultats-des-commissions" class="inline"><@liferay.language key="article.dispositif.resultats.composition.titre" /></h2> 
294								<#assign originalLocale = locale> 
295								<#setting locale = localeUtil.getDefault()> 
296								<#if locale.toString()!="en_US"> 
297									<a href="${urlListeResultats}" title="" class="button button-outline float-right"><@liferay.language key="article.dispositif.resultats.commission.voir" /></a> 
298								</#if> 
299							</div> 
300							 
301							</#if> 
302							<br /> 
303							${rechercheResultats} 
304                        </#if> 
305 
306                        <#if Contacts?has_content && Contacts.getSiblings()?size gt 0 && Contacts.getSiblings()?first.getData()?has_content> 
307                        <hr> 
308                        <h2 id="contacts"><@liferay.language key="article.dispositif.contacts" /></h2> 
309                        <#if InformationsContacts?has_content> 
310                        	<p>${InformationsContacts.getData()}</p> 
311                        </#if> 
312                        <#if DirectionEtService?has_content> 
313                        <div class="focus"> 
314                            <div class="text"> 
315                                <p> 
316                                    ${DirectionEtService.getData()} 
317                                </p> 
318                            </div> 
319                        </div> 
320                        </#if> 
321                        <div class="row"> 
322							<#assign renduConcacts = cncRenduArticles.recupererRenduContactsContrib(themeDisplay, Contacts.getSiblings(), "CONTACT", 0) /> 
323							<#if renduConcacts?has_content> 
324								<#list renduConcacts as renduConcact> 
325									${renduConcact} 
326								</#list> 
327							</#if> 
328                        </div> 
329                        </#if> 
330                        <#if articlesLies?has_content> 
331                        <hr> 
332                        <h2 id="articles-lies"><@liferay.language key="article.dispositif.articles.lies" /></h2> 
333                        <div class="list-articles"> 
334                            <div class="row"> 
335                                	<#list articlesLies as cur_Articleslies> 
336                                <div class="col-12 col-lg-4"> 
337                                    <article> 
338                                        ${cur_Articleslies} 
339                                    </article> 
340                                </div> 
341                                	</#list> 
342                            </div> 
343                        </div> 
344						</#if> 
345                    </div> 
346                </div> 
347            </div> 
348        </article> 
349    </div> 
350    <div class="ankle"></div> 
351    <#if DispositifsSimilaires?has_content && DispositifsSimilaires.getSiblings()?size gt 0 && DispositifsSimilaires.getSiblings()?first.getData()?has_content> 
352		<#assign counter = 0> 
353    <div class="rebound"> 
354        <hr> 
355        <div class="cnc-likes"> 
356            <div class="container"> 
357                <div class="row position-relative"> 
358					<div class="article-content-scroll mx-auto"> 
359						<div class="col-12"> 
360							<div class="section-title"><@liferay.language key="article.dispositif.articles.aides.similaires" /></div> 
361						</div> 
362						<#assign renduAides = cncRenduArticles.recupererRenduArticlesContrib(themeDisplay, DispositifsSimilaires.getSiblings(), "DISPOSITIF-AIDE-SIMILAIRE", 3) /> 
363						<#if renduAides?has_content> 
364							<#list renduAides as renduAide> 
365							<div class="col-12 col-lg-4"> 
366								<div class="cnc-like-item"> 
367									${renduAide} 
368								</div> 
369							</div> 
370							</#list> 
371						</#if> 
372					</div> 
373				</div> 
374			</div> 
375		</div> 
376	</div> 
377    </#if> 
378</section> 
379<#if InformationComplementaires?has_content && InformationComplementaires.getSiblings()?size gt 0 && InformationComplementaires.getSiblings()?first.getData()?has_content> 
380<section class="footer-text"> 
381    <div class="container"> 
382        <div class="row"> 
383            <div class="col-12"> 
384				<div class="article-content-scroll"> 
385					${InformationComplementaires.getData()} 
386				</div> 
387           	</div> 
388        </div> 
389    </div> 
390</section> 
391</#if>