PROFESSIONNELS

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