Une erreur s'est produite lors du traitement du gabarit.
The following has evaluated to null or missing: ==> cncArticleRechercheService.recherchePublications(themeDisplay, "PUBLICATION", categoryDispo.getName(), "Décisions de nomination") [in template "20116#20152#DETAIL-DISPOSITIF" at line 19, column 49] ---- 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: #assign rechercheDecisionsNomination ... [in template "20116#20152#DETAIL-DISPOSITIF" at line 19, column 9] ----
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>
Agrégateur de contenus est temporairement indisponible.