An error occurred while processing the template.
The string doesn't match the expected date/time/date-time format. The string to parse was: "10/12/01, 12:00 AM". The expected format was: "dd/MM/yyyy HH:mm".
The nested reason given follows:
Unparseable date: "10/12/01, 12:00 AM"
----
FTL stack trace ("~" means nesting-related):
- Failed at: ${ObjectField_revpresseOlddatecoupure... [in template "22823141604726#20121#null" at line 880, column 35]
----
1<#assign
2dlAppLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppLocalService")
3dlURLHelper = serviceLocator.findService("com.liferay.document.library.util.DLURLHelper")
4
5objectEntryLocalService = serviceLocator.findService("com.liferay.object.service.ObjectEntryLocalService")
6objectRelationshipLocalService = serviceLocator.findService("com.liferay.object.service.ObjectRelationshipLocalService")
7objectDefinitionLocalService = serviceLocator.findService("com.liferay.object.service.ObjectDefinitionLocalService")
8
9listTypeDefinitionService = serviceLocator.findService("com.liferay.list.type.service.ListTypeDefinitionLocalService")
10listTypeEntryService = serviceLocator.findService("com.liferay.list.type.service.ListTypeEntryLocalService")
11/>
12
13<#assign summary = garance.getSummaryContent("Imprime")>
14
15<#assign imprimeID = ObjectEntry_objectEntryId.getData()?number
16imprimeEntry = objectEntryLocalService.fetchObjectEntry(imprimeID?number)
17imprimeGroupID = imprimeEntry.getGroupId()
18>
19
20<#if imprimeEntry.values.descriptionLevel == "MANIFESTATION" && imprimeEntry.values.r_imprimePartOf_c_relatedObjectERC?hasContent && imprimeEntry.values.r_imprimePartOf_c_relatedObjectERC?startsWith("transi_")>
21 <#assign parentERC = imprimeEntry.values.r_imprimePartOf_c_relatedObjectERC?substring("transi_"?length)>
22 <#attempt>
23 <#assign parentFound = objectEntryLocalService.fetchObjectEntry(parentERC, imprimeEntry.objectDefinitionId)>
24 <#recover>
25 <#assign parentFound = "">
26 </#attempt>
27</#if>
28
29<#--------------------------------- Header -------------------------->
30<#assign imprimeTitleRel = objectRelationshipLocalService.getObjectRelationship(imprimeEntry.objectDefinitionId, "imprimeTitles")>
31<#assign imprimeTitles = objectEntryLocalService.getOneToManyObjectEntries(imprimeGroupID, imprimeTitleRel.objectRelationshipId, imprimeID, true, null, -1, -1 ) />
32<#assign imprimeTitlesPro = imprimeTitles?filter(t-> t.values.titleCatalogageManifestationType == "TITPRO")>
33<#assign imprimeTitles = imprimeTitles?filter(t-> t.values.titleCatalogageManifestationType != "TITPRO")>
34
35<#assign imprimeAuthorRel = objectRelationshipLocalService.getObjectRelationship(imprimeEntry.objectDefinitionId, "imprimeAuthors")>
36<#assign imprimeAuthors = objectEntryLocalService.getOneToManyObjectEntries(imprimeGroupID, imprimeAuthorRel.objectRelationshipId, imprimeID, true, null, -1, -1 ) />
37<#assign imprimeAuthorFull = []>
38<#list imprimeAuthors as imprimeAuthor>
39 <#if imprimeAuthor.values.r_imprimeAuthorPersonnes_c_transitionPersonneId != 0>
40 <#assign imprimeAuthorFonction = "">
41 <#if imprimeAuthor.values.r_imprimeAuthorRole_c_thesaurusId != 0>
42 <#assign imprimeAuthorFonction = garance.getThesaurusByID(imprimeAuthor.values.r_imprimeAuthorRole_c_thesaurusId)>
43 </#if>
44 <#assign imprimeAuthorFull = imprimeAuthorFull + [{
45 "personne": garance.getPersonneDisplayData(imprimeAuthor.values.r_imprimeAuthorPersonnes_c_transitionPersonneId),
46 "fonction": imprimeAuthorFonction
47 }]>
48 </#if>
49</#list>
50
51<#--------------------------------- Media -------------------------->
52<#assign reproductionsRel = objectRelationshipLocalService.getObjectRelationship(imprimeEntry.objectDefinitionId, "reproductionsImprimes")>
53<#assign reproductions = objectEntryLocalService.getManyToManyObjectEntries(imprimeGroupID, reproductionsRel.objectRelationshipId, imprimeID, true, reproductionsRel.isReverse(), null, -1, -1 ) />
54
55<#assign reproductionsImages = []>
56<#assign reproductionsVideos = []>
57<#if reproductions?hasContent>
58 <#list reproductions as reproduction>
59 <#if reproduction.values.reproductionNature?hasContent>
60 <#if reproduction.values.reproductionNature == "PICTURE" && reproduction.values.media?string != "0">
61 <#assign reproductionsImages = reproductionsImages + [reproduction]>
62 <#elseIf reproduction.values.reproductionNature == "VIDEO">
63 <#assign reproductionsVideos = reproductionsVideos + [reproduction]>
64 </#if>
65 </#if>
66 </#list>
67</#if>
68
69<#assign bureautiquesRel = objectRelationshipLocalService.getObjectRelationship(imprimeEntry.objectDefinitionId, "imprimeBureautique")>
70<#assign bureautiques = objectEntryLocalService.getManyToManyObjectEntries(imprimeGroupID, bureautiquesRel.objectRelationshipId, imprimeID, true, bureautiquesRel.isReverse(), null, -1, -1 ) />
71
72<#assign showMedia = (reproductionsImages?hasContent
73|| reproductionsVideos?hasContent
74<#--|| bureautiques?hasContent-->
75)>
76
77<#assign thumbnail = {}>
78<#if parentFound?hasContent>
79 <#assign reproductions = objectEntryLocalService.getManyToManyObjectEntries(imprimeGroupID, reproductionsRel.objectRelationshipId, imprimeID, true, reproductionsRel.isReverse(), null, -1, -1) />
80 <#assign reprod = reproductions?filter(r -> r.values.reproductionNature == "PICTURE")>
81 <#if reprod?hasContent && (reprod?first).values.media?string != "0">
82 <#assign thumbnail = reprod?first />
83 </#if>
84</#if>
85
86<#if !thumbnail?hasContent && reproductionsImages?hasContent>
87 <#assign thumbnail = reproductionsImages?first />
88</#if>
89
90<#--------------------------------- Identité -------------------------->
91
92<#assign responsabilitysRel = objectRelationshipLocalService.getObjectRelationship(imprimeEntry.objectDefinitionId, "statementsOfResponsibility")>
93<#assign responsabilitys = objectEntryLocalService.getOneToManyObjectEntries(imprimeGroupID, responsabilitysRel.objectRelationshipId, imprimeID, true, null, -1, -1 ) />
94
95<#assign editionsRel = objectRelationshipLocalService.getObjectRelationship(imprimeEntry.objectDefinitionId, "editions")>
96<#assign editions = objectEntryLocalService.getOneToManyObjectEntries(imprimeGroupID, editionsRel.objectRelationshipId, imprimeID, true, null, -1, -1 ) />
97
98<#assign languagesRel = objectRelationshipLocalService.getObjectRelationship(imprimeEntry.objectDefinitionId, "imprimeLanguages")>
99<#assign languages = objectEntryLocalService.getManyToManyObjectEntries(imprimeGroupID, languagesRel.objectRelationshipId, imprimeID, true, languagesRel.isReverse(), null, -1, -1 ) />
100
101<#assign productionsRel = objectRelationshipLocalService.getObjectRelationship(imprimeEntry.objectDefinitionId, "productions")>
102<#assign productions = objectEntryLocalService.getOneToManyObjectEntries(imprimeGroupID, productionsRel.objectRelationshipId, imprimeID, true, null, -1, -1 ) />
103
104<#assign notesRel = objectRelationshipLocalService.getObjectRelationship(imprimeEntry.objectDefinitionId, "notes")>
105<#assign notes = objectEntryLocalService.getOneToManyObjectEntries(imprimeGroupID, notesRel.objectRelationshipId, imprimeID, true, null, -1, -1 ) />
106
107
108<#assign perioKey = "SERIALS">
109<#assign numPerioKey = "NUMERO">
110<#assign dosPerioKey = "DOSPER">
111<#assign articleKey = "ARTICLE">
112<#assign bookKey = "BOOK">
113
114
115<#assign noteFull = []>
116
117<#if imprimeEntry.values.bibliographicLevel?hasContent>
118 <#assign imprimeType = (imprimeEntry.values.bibliographicLevel == "SERIALS" && imprimeEntry.values.descriptionLevel == "MANIFESTATION")?then(numPerioKey, imprimeEntry.values.bibliographicLevel) />
119
120 <#assign notesList = {
121 "DOC18":[numPerioKey, bookKey],
122 "DOC19":[perioKey, numPerioKey, articleKey, bookKey],
123 "DOC20":[bookKey],
124 "DOC21":[perioKey, numPerioKey, dosPerioKey, bookKey],
125 "DOC30":[perioKey, numPerioKey, dosPerioKey, articleKey, bookKey],
126 "DOC32":[numPerioKey, bookKey],
127 "DOC33":[bookKey],
128 "DOC34":[bookKey],
129 "DOC36":[perioKey, numPerioKey, dosPerioKey, bookKey],
130 "DOC37":[numPerioKey, bookKey],
131 "DOC38":[perioKey, numPerioKey, dosPerioKey, bookKey],
132 "DOC39":[numPerioKey, articleKey, bookKey],
133 "DOC69":[perioKey, numPerioKey, dosPerioKey, bookKey],
134 "DOC70":[perioKey, numPerioKey, dosPerioKey, bookKey],
135 "DOC72":[perioKey, numPerioKey, dosPerioKey, articleKey],
136 "DOC73":[perioKey, numPerioKey],
137 "DOC77":[articleKey, bookKey],
138 "HISTBIB":[articleKey, bookKey],
139 "LIVRAISON":[perioKey, numPerioKey]
140 }>
141
142 <#list notes as note>
143 <#if note.values.nonFilmNoteType?hasContent && notesList[note.values.nonFilmNoteType]?? && notesList[note.values.nonFilmNoteType]?seqContains(imprimeType)>
144 <#assign noteFull = noteFull + [note]>
145 </#if>
146 </#list>
147</#if>
148
149<#assign numerosRel = objectRelationshipLocalService.getObjectRelationship(imprimeEntry.objectDefinitionId, "sourceImprime1")>
150<#assign numeros = objectEntryLocalService.getOneToManyObjectEntries(imprimeGroupID, numerosRel.objectRelationshipId, imprimeID, true, null, -1, -1 ) />
151
152<#assign numerosRelated = [] />
153<#if numeros?hasContent>
154 <#if imprimeEntry.values.bibliographicLevel == dosPerioKey || imprimeEntry.values.bibliographicLevel == articleKey>
155 <#list numeros as numero>
156 <#if numero.values.r_imprimeSource2_c_relatedObjectERC?hasContent>
157 <#attempt>
158 <#assign perioFound = objectEntryLocalService.fetchObjectEntry(numero.values.r_imprimeSource2_c_relatedObjectERC?substring("transi_"?length), imprimeEntry.objectDefinitionId)>
159 <#recover>
160 <#assign perioFound = "">
161 </#attempt>
162 <#if perioFound?hasContent>
163 <#assign numerosRelated = numerosRelated + [perioFound]>
164 </#if>
165 </#if>
166 </#list>
167 </#if>
168</#if>
169
170<#assign showIdentity = (ObjectField_typeDOeuvreAffiche.getData()?hasContent
171|| responsabilitys?hasContent
172|| editions?hasContent
173|| ObjectField_isbdBibliographicAddress.getData()?hasContent
174|| languages?hasContent
175|| ObjectField_searchYear.getData()?hasContent
176|| numeros?hasContent
177|| productions?hasContent
178|| ObjectField_physicalDescription.getData()?hasContent
179|| ObjectField_frequency.getData()?hasContent
180|| ObjectField_issn.getData()?hasContent
181|| ObjectField_isbn.getData()?hasContent
182|| noteFull?hasContent
183|| parentFound?hasContent
184)>
185
186<#--------------------------------- Description du contenu -------------------------->
187<#assign relatedFilmsRel = objectRelationshipLocalService.getObjectRelationship(imprimeEntry.objectDefinitionId, "imprimeRelatedFilms")>
188<#assign relatedFilms = objectEntryLocalService.getManyToManyObjectEntries(imprimeGroupID, relatedFilmsRel.objectRelationshipId, imprimeID, true, relatedFilmsRel.isReverse(), null, -1, -1 ) />
189<#assign relatedFilmsFull = []>
190<#list relatedFilms as relatedFilm>
191 <#assign filmData = garance.getFilmDisplayData(relatedFilm)>
192 <#if filmData?hasContent>
193 <#assign relatedFilmsFull = relatedFilmsFull + [filmData]>
194 </#if>
195</#list>
196
197<#assign representedPersonneRel = objectRelationshipLocalService.getObjectRelationship(imprimeEntry.objectDefinitionId, "contentRepresentedPersonne")>
198<#assign representedPersonnes = objectEntryLocalService.getManyToManyObjectEntries(imprimeGroupID, representedPersonneRel.objectRelationshipId, imprimeID, true, representedPersonneRel.isReverse(), null, -1, -1 ) />
199
200<#assign subjectPersonneRel = objectRelationshipLocalService.getObjectRelationship(imprimeEntry.objectDefinitionId, "contentSubjectPersonne")>
201<#assign subjectPersonnes = objectEntryLocalService.getManyToManyObjectEntries(imprimeGroupID, subjectPersonneRel.objectRelationshipId, imprimeID, true, subjectPersonneRel.isReverse(), null, -1, -1 ) />
202
203<#assign themesRel = objectRelationshipLocalService.getObjectRelationship(imprimeEntry.objectDefinitionId, "imprimeThemes")>
204<#assign themes = objectEntryLocalService.getManyToManyObjectEntries(imprimeGroupID, themesRel.objectRelationshipId, imprimeID, true, themesRel.isReverse(), null, -1, -1 ) />
205
206<#assign representationsRel = objectRelationshipLocalService.getObjectRelationship(imprimeEntry.objectDefinitionId, "imprimeRepresentations")>
207<#assign representations = objectEntryLocalService.getManyToManyObjectEntries(imprimeGroupID, representationsRel.objectRelationshipId, imprimeID, true, representationsRel.isReverse(), null, -1, -1 ) />
208
209<#assign representationsSourceRel = objectRelationshipLocalService.getObjectRelationship(imprimeEntry.objectDefinitionId, "imprimeRepresentationSources")>
210<#assign representationsSource = objectEntryLocalService.getManyToManyObjectEntries(imprimeGroupID, representationsSourceRel.objectRelationshipId, imprimeID, true, representationsSourceRel.isReverse(), null, -1, -1 ) />
211
212<#assign stylesRel = objectRelationshipLocalService.getObjectRelationship(imprimeEntry.objectDefinitionId, "imprimeStyles")>
213<#assign styles = objectEntryLocalService.getManyToManyObjectEntries(imprimeGroupID, stylesRel.objectRelationshipId, imprimeID, true, stylesRel.isReverse(), null, -1, -1 ) />
214
215<#assign contentsRel = objectRelationshipLocalService.getObjectRelationship(imprimeEntry.objectDefinitionId, "imprimePosterContents")>
216<#assign contents = objectEntryLocalService.getOneToManyObjectEntries(imprimeGroupID, contentsRel.objectRelationshipId, imprimeID, true, null, -1, -1 ) />
217
218<#assign showDescription = (relatedFilmsFull?hasContent
219|| representedPersonnes?hasContent
220|| subjectPersonnes?hasContent
221|| themes?hasContent
222|| representations?hasContent
223|| representationsSource?hasContent
224|| styles?hasContent
225|| contents?hasContent)>
226
227
228<#--------------------------------- Synthèse coupures -------------------------->
229
230<#assign showSynthese = (ObjectField_revpresseOlddatecoupure.getData()?hasContent
231|| ObjectField_revpresseRecentdatecoupure.getData()?hasContent
232|| ObjectField_revpresseNbcoupures.getData()?hasContent
233)>
234
235<#--------------------------------- Coupures -------------------------->
236
237<#assign coupuresFull = []>
238<#if imprimeEntry.values.dataset == "revpresse">
239 <#assign coupuresRel = objectRelationshipLocalService.getObjectRelationship(imprimeEntry.objectDefinitionId, "imprimeChildrenRevPressParts")>
240 <#assign coupures = objectEntryLocalService.getOneToManyObjectEntries(imprimeGroupID, coupuresRel.objectRelationshipId, imprimeID, true, null, -1, -1 ) />
241 <#list coupures as coupure>
242 <#assign coupuresAuthorsFull = []>
243 <#assign coupuresDataRel = objectRelationshipLocalService.getObjectRelationship(coupure.objectDefinitionId, "revPresseData")>
244 <#assign coupuresData = objectEntryLocalService.getOneToManyObjectEntries(imprimeGroupID, coupuresDataRel.objectRelationshipId, coupure.objectEntryId, true, null, -1, -1 ) />
245 <#if coupuresData?hasContent>
246 <#assign coupuresAuthorsRel = objectRelationshipLocalService.getObjectRelationship(coupure.objectDefinitionId, "revPresseAuthors")>
247 <#assign coupuresAuthors = objectEntryLocalService.getManyToManyObjectEntries(imprimeGroupID, coupuresAuthorsRel.objectRelationshipId, coupure.objectEntryId, true, coupuresAuthorsRel.isReverse(), null, -1, -1 ) />
248 <#if coupuresAuthors?hasContent>
249 <#assign coupuresAuthorsFull = coupuresAuthors>
250 </#if>
251 <#assign coupuresFull = coupuresFull + [{"authors": coupuresAuthors, "data": coupuresData?first}]>
252 </#if>
253 </#list>
254</#if>
255<#assign showCoupure = coupuresFull?hasContent>
256
257<#--------------------------------- Collections consultatbles -------------------------->
258
259<#assign consultations = []>
260<#if imprimeEntry.values.bibliographicLevel == "BOOK" || (imprimeEntry.values.bibliographicLevel == "SERIALS" && imprimeEntry.values.descriptionLevel == "WORK") >
261 <#assign consultationsRel = objectRelationshipLocalService.getObjectRelationship(imprimeEntry.objectDefinitionId, "consultation")>
262 <#assign consultations = objectEntryLocalService.getOneToManyObjectEntries(imprimeGroupID, consultationsRel.objectRelationshipId, imprimeID, true, null, -1, -1 ) />
263 <#if consultations?hasContent>
264 <#assign consultations = consultations?filter(c->c.values.accesConditions != "ACNONCOMM") />
265 </#if>
266</#if>
267<#assign showCollCons = consultations?hasContent>
268
269<#--------------------------------- Numéro de périodique -------------------------->
270<#assign numeroPeriosFull = []>
271<#assign imprimePartOf = []>
272<#assign relatedObjectDef = objectDefinitionLocalService.fetchObjectDefinition(imprimeEntry.getCompanyId(), "C_RelatedObject")>
273<#attempt>
274 <#assign relatedObjectFound = objectEntryLocalService.fetchObjectEntry("transi_" + imprimeEntry.externalReferenceCode, relatedObjectDef.objectDefinitionId)>
275 <#recover>
276 <#assign relatedObjectFound = "">
277</#attempt>
278<#if relatedObjectFound?hasContent>
279 <#assign imprimePartOfRel = objectRelationshipLocalService.getObjectRelationship(relatedObjectFound.objectDefinitionId, "imprimePartOf")>
280 <#assign imprimePartOf = objectEntryLocalService.getOneToManyObjectEntries(imprimeGroupID, imprimePartOfRel.objectRelationshipId, relatedObjectFound.objectEntryId, true, null, -1, -1 ) />
281 <#list imprimePartOf as numeroPerio>
282 <#assign numeroPerioTitleRel = objectRelationshipLocalService.getObjectRelationship(numeroPerio.objectDefinitionId, "imprimeTitles")>
283 <#assign numeroPerioTitles = objectEntryLocalService.getOneToManyObjectEntries(imprimeGroupID, numeroPerioTitleRel.objectRelationshipId, numeroPerio.objectEntryId, true, null, -1, -1 ) />
284 <#assign numeroPerioTitles = numeroPerioTitles?filter(t-> t.values.titleCatalogageManifestationType == "TITPRO")>
285
286 <#assign numeroPerioNumRel = objectRelationshipLocalService.getObjectRelationship(numeroPerio.objectDefinitionId, "sourceImprime1")>
287 <#assign numeroPerioNums = objectEntryLocalService.getOneToManyObjectEntries(imprimeGroupID, numeroPerioNumRel.objectRelationshipId, numeroPerio.objectEntryId, true, null, -1, -1 ) />
288 <#assign numeroPerioNum = 9999999/>
289
290 <#if numeroPerioNums?hasContent>
291 <#if ((numeroPerioNums?first).values.sourceNumber)?hasContent>
292 <#assign rawSource = (numeroPerioNums?first).values.sourceNumber!"">
293
294 <#if rawSource?hasContent>
295 <#-- Pour le numéro de style "256 bis", on découpe pour ne récupérer que le numéro -->
296 <#assign cleanedSource = rawSource?keepBefore(" ")?trim>
297 <#-- On vérifie via une regex si le format est numérique -->
298 <#if rawSource?matches("^\\d+$")>
299 <#assign numeroPerioNum = rawSource?number />
300 <#elseIf cleanedSource?matches("^\\d+$")>
301 <#assign numeroPerioNum = cleanedSource?number />
302 </#if>
303 </#if>
304
305 </#if>
306 </#if>
307
308 <#if numeroPerioTitles?hasContent>
309 <#assign numeroPerioTitle = [(numeroPerioTitles?first).values.titleArticle, (numeroPerioTitles?first).values.title]?filter(v->v?hasContent)?join(" ")>
310 <#else>
311 <#assign numeroPerioTitle = numeroPerio.values.titleComplete>
312 </#if>
313 <#assign numeroPeriosFull = numeroPeriosFull + [{
314 "id": numeroPerio.objectEntryId,
315 "title": numeroPerioTitle,
316 "number": numeroPerioNum
317 }]>
318 </#list>
319 <#if numeroPeriosFull?hasContent>
320 <#assign numeroPeriosFull = numeroPeriosFull?sortBy("number") />
321 </#if>
322</#if>
323<#assign showNumeroPerios = numeroPeriosFull?hasContent>
324
325<#--------------------------------- Exemplaires consultables -------------------------->
326<#assign exemplariesFull = []>
327<#assign finalItems = []>
328<#if imprimeEntry.values.bibliographicLevel == "SERIALS" || imprimeEntry.values.bibliographicLevel == "BOOK">
329 <#assign maybeItemParents = imprimePartOf + [imprimeEntry]>
330 <#list maybeItemParents as maybeItemParent>
331 <#assign finalItemRel = objectRelationshipLocalService.getObjectRelationship(maybeItemParent.objectDefinitionId, "imprimeChildrenItem")>
332 <#assign finalItems = objectEntryLocalService.getOneToManyObjectEntries(imprimeGroupID, finalItemRel.objectRelationshipId, maybeItemParent.objectEntryId, true, null, -1, -1 ) />
333 </#list>
334 <#list finalItems as finalItem>
335 <#assign exemplariesRel = objectRelationshipLocalService.getObjectRelationship(finalItem.objectDefinitionId, "consultations")>
336 <#assign exemplaries = objectEntryLocalService.getOneToManyObjectEntries(imprimeGroupID, exemplariesRel.objectRelationshipId, finalItem.objectEntryId, true, null, -1, -1 ) />
337 <#if exemplaries?hasContent>
338 <#assign exemplaries = exemplaries?filter(e->e.values.accesConditions != "ACNONCOMM") />
339 </#if>
340 <#if exemplaries?hasContent>
341 <#assign exemplariesFull = exemplariesFull + [{
342 "cote": finalItem.values.cote,
343 "consultations": exemplaries
344 }]>
345 </#if>
346 </#list>
347<#elseIf imprimeEntry.values.dataset = "revpresse">
348 <#assign exemplariesRel = objectRelationshipLocalService.getObjectRelationship(imprimeEntry.objectDefinitionId, "consultation")>
349 <#assign exemplaries = objectEntryLocalService.getOneToManyObjectEntries(imprimeGroupID, exemplariesRel.objectRelationshipId, imprimeEntry.objectEntryId, true, null, -1, -1 ) />
350 <#if exemplaries?hasContent>
351 <#assign exemplaries = exemplaries?filter(e->e.values.accesConditions != "ACNONCOMM") />
352 </#if>
353 <#if exemplaries?hasContent>
354 <#assign exemplariesFull = exemplariesFull + [{
355 "cote": imprimeEntry.values.cote,
356 "consultations": exemplaries
357 }]>
358 </#if>
359</#if>
360
361<#assign showExemplaries = exemplariesFull?hasContent>
362
363<#--------------------------------- Article de périodique -------------------------->
364<#assign articlePerioFull = []>
365<#assign articlePerioRel = objectRelationshipLocalService.getObjectRelationship(imprimeEntry.objectDefinitionId, "bibDossier")>
366<#assign articlePerios = objectEntryLocalService.getOneToManyObjectEntries(imprimeGroupID, articlePerioRel.objectRelationshipId, imprimeEntry.objectEntryId, true, null, -1, -1 ) />
367<#list articlePerios as articlePerio>
368 <#if articlePerio.values.r_relatedObject2_c_relatedObjectERC?hasContent>
369 <#attempt>
370 <#assign relatedArticleFound = objectEntryLocalService.fetchObjectEntry(articlePerio.values.r_relatedObject2_c_relatedObjectERC?substring("transi_"?length), imprimeEntry.objectDefinitionId)>
371 <#recover>
372 <#assign relatedArticleFound = "">
373 </#attempt>
374 <#if relatedArticleFound?hasContent>
375 <#assign articlePerioFull = articlePerioFull + [{
376 "id": relatedArticleFound.objectEntryId,
377 "title": relatedArticleFound.values.titleComplete,
378 "year": relatedArticleFound.values.searchYear,
379 "order": articlePerio.values.order
380 }]>
381 </#if>
382 </#if>
383</#list>
384<#assign showArticlePerios = articlePerioFull?hasContent>
385
386<#--------------------------------- Collections -------------------------->
387
388<#assign relatedObjectTypesRel = objectRelationshipLocalService.getObjectRelationship(imprimeEntry.objectDefinitionId, "relatedObject1")>
389<#assign relatedObjectTypes = objectEntryLocalService.getOneToManyObjectEntries(imprimeGroupID, relatedObjectTypesRel.objectRelationshipId, imprimeID, true, null, -1, -1 ) />
390<#assign relatedObjectsFull = garance.getRelatedObjects(relatedObjectTypes, imprimeEntry, true)>
391
392<#assign showCollection = relatedObjectsFull?hasContent>
393<#assign showExemplaries = (showExemplaries || archiveParts?hasContent)>
394
395<div class="notice notice--imprime js-notice">
396 <div class="notice-header tw:text-white tw:pt-[3.375rem] tw:pb-[2.5rem] tw:relative tw:overflow-hidden
397 tw:before:content-[''] tw:before:absolute tw:before:inset-0 tw:before:size-full tw:before:block tw:before:bg-text tw:before:opacity-90
398 tw:xl:pt-[9.5rem]">
399 <div class="page-wrapper tw:z-0 tw:relative">
400 <#if request.getParameter("searchContext")?hasContent>
401 <@garance.noticePagination request.getParameter("searchContext") imprimeID />
402 </#if>
403 <div class="tw:flex tw:gap-5 tw:items-start tw:flex-wrap tw:flex-col tw:z-0
404 tw:md:flex-row tw:lg:flex-nowrap
405 tw:xl:gap-[2.125rem]">
406 <div class="tw:order-2 tw:lg:order-1 tw:flex tw:flex-col tw:w-full tw:text-center
407 tw:md:w-fit tw:md:text-left">
408 <h1 class="tw:order-1 tw:text-prim tw:mb-[0.625rem]">
409 <#if imprimeTitlesPro?hasContent>
410 ${[(imprimeTitlesPro?first).values.titleArticle, (imprimeTitlesPro?first).values.title]?filter(v->v?hasContent)?join(" ")}
411 <#elseIf ObjectField_titleComplete.getData()?hasContent>
412 ${ObjectField_titleComplete.getData()}
413 </#if>
414 </h1>
415 <#if !thumbnail?hasContent && imprimeEntry.values.dataset?hasContent>
416 <p class="tw:order-0 tw:mb-5 tw:text-[0.75rem]/[1rem] tw:block tw:mx-auto tw:rounded-xs tw:w-fit tw:bg-[rgba(255,255,255,0.9)] tw:text-prim tw:uppercase tw:px-[0.625rem] tw:py-1
417 tw:md:mx-0">
418 <#if imprimeEntry.values.dataset == "document">Imprimés<#elseIf imprimeEntry.values.dataset == "revpresse">Revues de presse</#if>
419 </p>
420 </#if>
421 <#if imprimeTitles?hasContent>
422 <p class="tw:order-1 tw:font-title tw:text-[1.25rem]/[1.875rem] tw:font-medium">
423 <#list imprimeTitles as imprimeTitle><#if imprimeTitle.values.titleArticle?hasContent>${imprimeTitle.values.titleArticle} </#if>${imprimeTitle.values.title}. </#list>
424 </p>
425 </#if>
426 <div class="tw:order-1 tw:relative tw:pt-5 tw:mt-5 tw:text-left
427 tw:before:block tw:before:content-[''] tw:before:absolute tw:before:top-0 tw:before:h-[0.0625rem] tw:before:w-full tw:before:bg-white tw:before:opacity-20
428 tw:md:before:w-[12.8125rem] ">
429 <#if ObjectField_bibliographicLevel.getData()?hasContent>
430 <p class="tw:mb-[0.625rem]">
431 ${ObjectField_bibliographicLevel.getData()}
432 </p>
433 </#if>
434 <#if imprimeAuthorFull?hasContent>
435 <p class="tw:mb-[0.625rem]">
436 <#list imprimeAuthorFull as imprimeAuthor>
437 <#if imprimeAuthor.personne.id?hasContent>
438 <a href="/l/${imprimeAuthor.personne.id}"
439 class="tw:font-bold tw:transition-all tw:bg-linear-[currentcolor,currentcolor] tw:bg-no-repeat tw:bg-bottom-left tw:bg-size-[100%_0.0625rem] tw:hover:bg-size-[0_0.0625rem]">
440 ${imprimeAuthor.personne.name}
441 </a>
442 <#else>${imprimeAuthor.personne.name}</#if><#if imprimeAuthor.fonction?hasContent> (${imprimeAuthor.fonction})</#if><#if !imprimeAuthor?isLast> ; </#if>
443 </#list>
444 </p>
445 </#if>
446 </div>
447 </div>
448 <#if thumbnail?hasContent>
449 <div class="tw:order-1 tw:lg:order-0 tw:w-full
450 tw:md:w-fit">
451 <div class="tw:m-auto tw:mx-auto tw:max-w-full tw:w-[15.625rem] tw:relative
452 tw:md:mx-0">
453 <#if imprimeEntry.values.dataset?hasContent>
454 <p class="tw:absolute tw:top-[0.625rem] tw:left-[0.625rem] tw:text-[0.75rem]/[1rem] tw:block tw:rounded-xs tw:w-fit tw:bg-[rgba(255,255,255,0.9)] tw:text-prim tw:uppercase tw:px-[0.625rem] tw:py-1">
455 <#if imprimeEntry.values.dataset == "document">Imprimés<#elseIf imprimeEntry.values.dataset == "revpresse">Revues de presse</#if>
456 </p>
457 </#if>
458 <#assign fileEntryDesktop = dlAppLocalService.getFileEntry(thumbnail.values.media.id?number) />
459 <#assign thumbnailURL = dlURLHelper.getPreviewURL(fileEntryDesktop, fileEntryDesktop.getFileVersion(),
460 null, "",
461 !fileEntryDesktop.getFileVersion().equals(fileEntryDesktop.getLatestFileVersion()), true) />
462
463 <figure class="tw:w-full">
464 <source media="(min-width: 480px)"
465 srcset="${thumbnailURL}"/>
466 <img class="tw:rounded-xs tw:object-cover tw:size-full" alt=""
467 src="${thumbnailURL}"/>
468 <#if thumbnail.values.reproductionNotes?hasContent || thumbnail.values.reproductionCopyright?hasContent>
469 <figcaption class="tw:ml-[0.625rem] tw:opacity-70 tw:text-[0.75rem]/[1rem] tw:font-medium tw:mt-[0.3125rem]
470 tw:md:ml-0">
471 ${[thumbnail.values.reproductionNotes, thumbnail.values.reproductionCopyright]?filter(v->v?hasContent)?join(" - ")}
472 </figcaption>
473 </#if>
474 </figure>
475 </div>
476 </div>
477 </#if>
478 <@garance.noticeTools />
479 </div>
480 </div>
481 </div>
482 <div class="notice-content">
483
484 <div class="tw:overflow-y-clip tw:py-10">
485 <div class="page-wrapper summary-ancres js-summary-ancres tw:group tw:fixed tw:w-full tw:overflow-hidden tw:h-fit tw:z-50 tw:top-[4.375rem] tw:bg-beige tw:max-lg:max-w-full!
486 tw:lg:top-[6.875rem] tw:lg:h-0 tw:lg:overflow-visible tw:lg:sticky
487 tw:xl:top-[8.85rem]">
488 <nav class="tw:bg-beige tw:lg:w-[14.25rem]" role="navigation" aria-labelledby="summary-title">
489 <button id="summary-title" class="js-summary-btn tw:text-h3 tw:font-title tw:flex tw:justify-between tw:items-center tw:py-[0.625rem] tw:w-full tw:max-sm:px-[calc(2.5rem/2)] tw:focus:outline-offset-[-0.125rem]
490 tw:max-lg:px-[calc(5rem/2)]
491 tw:lg:hidden" aria-label="Ouvrir/Fermer le sommaire" aria-expanded="false"
492 aria-controls="summary-list">
493 <span>Sommaire</span>
494 <span class="icon-chevron-down tw:text-prim tw:text-base tw:transition-all tw:outline-offset-[-0.125rem]
495 tw:group-[&.open]:rotate-180" aria-hidden="true"></span>
496 </button>
497 <div id="summary-list" class="tw:overflow-y-auto tw:bg-white tw:transition-all tw:max-sm:px-[calc(2.5rem/2)]
498 tw:max-lg:max-h-0 tw:max-lg:px-[calc(5rem/2)] tw:max-lg:max-w-full
499 tw:group-[&.open]:max-h-[calc(100vh-(4.375rem+3.125rem))]
500 tw:lg:max-h-[calc(100vh-12.5rem)] tw:lg:bg-transparent" tabindex="-1">
501 <ul class="tw:border-sommaire-border tw:border-l-[0.125rem] tw:my-2">
502 <#if showIdentity>
503 <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]">
504 <a href="#identite" class="js-summary-ancres-link tw:border-l-[0.125rem] tw:border-transparent tw:block tw:py-1 tw:text-base/[1.75rem] tw:font-title tw:pl-[0.625rem] tw:relative tw:left-[-0.125rem]
505 tw:[&.is-active]:border-prim" tabindex="-1">
506 <span>${summary["IdentiteImprime"]?hasContent?then(summary["IdentiteImprime"], "Identité")}</span>
507 </a>
508 </li>
509 </#if>
510 <#if showDescription>
511 <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]">
512 <a href="#description" class="js-summary-ancres-link tw:border-l-[0.125rem] tw:border-transparent tw:block tw:py-1 tw:text-base/[1.75rem] tw:font-title tw:pl-[0.625rem] tw:relative tw:left-[-0.125rem]
513 tw:[&.is-active]:border-prim" tabindex="-1">
514 <span>${summary["DescriptionDuContenuImprime"]?hasContent?then(summary["DescriptionDuContenuImprime"], "Description du contenu")}</span>
515 </a>
516 </li>
517 </#if>
518 <#if showSynthese>
519 <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]">
520 <a href="#synth-coupures" class="js-summary-ancres-link tw:border-l-[0.125rem] tw:border-transparent tw:block tw:py-1 tw:text-base/[1.75rem] tw:font-title tw:pl-[0.625rem] tw:relative tw:left-[-0.125rem]
521 tw:[&.is-active]:border-prim" tabindex="-1">
522 <span>${summary["SyntheseCoupuresImprime"]?hasContent?then(summary["SyntheseCoupuresImprime"], "Synthèse coupures")}</span>
523 </a>
524 </li>
525 </#if>
526 <#if showCoupure>
527 <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]">
528 <a href="#coupures" class="js-summary-ancres-link tw:border-l-[0.125rem] tw:border-transparent tw:block tw:py-1 tw:text-base/[1.75rem] tw:font-title tw:pl-[0.625rem] tw:relative tw:left-[-0.125rem]
529 tw:[&.is-active]:border-prim" tabindex="-1">
530 <span>${summary["CoupuresImprime"]?hasContent?then(summary["CoupuresImprime"], "Coupures")}</span>
531 </a>
532 </li>
533 </#if>
534 <#if showCollCons>
535 <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]">
536 <a href="#collect-cons" class="js-summary-ancres-link tw:border-l-[0.125rem] tw:border-transparent tw:block tw:py-1 tw:text-base/[1.75rem] tw:font-title tw:pl-[0.625rem] tw:relative tw:left-[-0.125rem]
537 tw:[&.is-active]:border-prim" tabindex="-1">
538 <span>${summary["CollectionsConsultablesImprime"]?hasContent?then(summary["CollectionsConsultablesImprime"], "Collections consultables")}</span>
539 </a>
540 </li>
541 </#if>
542 <#if showExemplaries>
543 <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]">
544 <a href="#exemples-cons" class="js-summary-ancres-link tw:border-l-[0.125rem] tw:border-transparent tw:block tw:py-1 tw:text-base/[1.75rem] tw:font-title tw:pl-[0.625rem] tw:relative tw:left-[-0.125rem]
545 tw:[&.is-active]:border-prim" tabindex="-1">
546 <span>${summary["ExemplairesConsultablesImprime"]?hasContent?then(summary["ExemplairesConsultablesImprime"], "Exemplaires consultables")}</span>
547 </a>
548 </li>
549 </#if>
550 <#if showNumeroPerios>
551 <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]">
552 <a href="#num-perio" class="js-summary-ancres-link tw:border-l-[0.125rem] tw:border-transparent tw:block tw:py-1 tw:text-base/[1.75rem] tw:font-title tw:pl-[0.625rem] tw:relative tw:left-[-0.125rem]
553 tw:[&.is-active]:border-prim" tabindex="-1">
554 <span>${summary["NumerosDePeriodiqueImprime"]?hasContent?then(summary["NumerosDePeriodiqueImprime"], "Numéros de périodique")}</span>
555 </a>
556 </li>
557 </#if>
558 <#if showArticlePerios>
559 <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]">
560 <a href="#arti-perio" class="js-summary-ancres-link tw:border-l-[0.125rem] tw:border-transparent tw:block tw:py-1 tw:text-base/[1.75rem] tw:font-title tw:pl-[0.625rem] tw:relative tw:left-[-0.125rem]
561 tw:[&.is-active]:border-prim" tabindex="-1">
562 <span>${summary["ArticlesDePeriodiqueImprime"]?hasContent?then(summary["ArticlesDePeriodiqueImprime"], "Articles de périodique")}</span>
563 </a>
564 </li>
565 </#if>
566 <#if showMedia>
567 <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]">
568 <a href="#ressources" class="js-summary-ancres-link tw:border-l-[0.125rem] tw:border-transparent tw:block tw:py-1 tw:text-base/[1.75rem] tw:font-title tw:pl-[0.625rem] tw:relative tw:left-[-0.125rem]
569 tw:[&.is-active]:border-prim" tabindex="-1">
570 <span>${summary["RessourcesMediaImprime"]?hasContent?then(summary["RessourcesMediaImprime"], "Ressources média")}</span>
571 </a>
572 </li>
573 </#if>
574 <#if showCollection>
575 <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]">
576 <a href="#collections" class="js-summary-ancres-link tw:border-l-[0.125rem] tw:border-transparent tw:block tw:py-1 tw:text-base/[1.75rem] tw:font-title tw:pl-[0.625rem] tw:relative tw:left-[-0.125rem]
577 tw:[&.is-active]:border-prim" tabindex="-1">
578 <span>${summary["CollectionsLieesImprime"]?hasContent?then(summary["CollectionsLieesImprime"], "Collections liées")}</span>
579 </a>
580 </li>
581 </#if>
582 </ul>
583 </div>
584 </nav>
585 </div>
586
587 <#if showIdentity>
588 <div id="identite" class="js-summary-content" tabindex="-1"></div>
589 <div class="summary-content-wrapper page-wrapper tw:lg:pl-[16.75rem] tw:pb-10">
590 <h2 class="tw:text-prim tw:mb-5">${summary["IdentiteImprime"]?hasContent?then(summary["IdentiteImprime"], "Identité")}</h2>
591
592 <#if parentFound?hasContent>
593 <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]">
594 <span class="tw:font-bold tw:shrink-0">Périodique :</span>
595 <a href="/l/${parentFound.objectEntryId}"
596 class="tw:font-bold tw:transition-all tw:bg-linear-[currentcolor,currentcolor] tw:bg-no-repeat tw:bg-bottom-left tw:bg-size-[100%_0.125rem] tw:hover:bg-size-[0_0.125rem]">
597 ${parentFound.values.titleComplete}</a>
598 </p>
599 </#if>
600
601 <#if numerosRelated?hasContent>
602 <#list numerosRelated as numeroRelated>
603 <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]">
604 <span class="tw:font-bold tw:shrink-0">Périodique :</span>
605 <a href="/l/${numeroRelated.objectEntryId}"
606 class="tw:font-bold tw:transition-all tw:bg-linear-[currentcolor,currentcolor] tw:bg-no-repeat tw:bg-bottom-left tw:bg-size-[100%_0.125rem] tw:hover:bg-size-[0_0.125rem]">
607 ${numeroRelated.values.titleComplete}</a>
608 </p>
609 </#list>
610 </#if>
611
612 <#if ObjectField_typeDOeuvreAffiche.getData()?hasContent>
613 <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]">
614 <span class="tw:font-bold tw:shrink-0">Type de document :</span>
615 <span>${ObjectField_typeDOeuvreAffiche.getData()}</span>
616 </p>
617 </#if>
618
619 <#if responsabilitys?hasContent>
620 <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]">
621 <span class="tw:font-bold tw:shrink-0">Mention de responsabilité :</span>
622 <span>${responsabilitys?filter(r-> r.values.statementResponsibility?hasContent)?map(r->r.values.statementResponsibility)?join(", ")}</span>
623 </p>
624 </#if>
625
626 <#if editions?hasContent>
627 <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]">
628 <span class="tw:font-bold tw:shrink-0">Édition :</span>
629 <span>${editions?filter(e-> e.values.editionDocument?hasContent)?map(e->e.values.editionDocument)?join(", ")}</span>
630 </p>
631 </#if>
632
633 <#if ObjectField_isbdBibliographicAddress.getData()?hasContent>
634 <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]">
635 <span class="tw:font-bold tw:shrink-0">Publication :</span>
636 <span>${ObjectField_isbdBibliographicAddress.getData()}</span>
637 </p>
638 </#if>
639
640 <#if languages?hasContent>
641 <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]">
642 <span class="tw:font-bold tw:shrink-0">Langue :</span>
643 <span>${languages?filter(l-> l.values.label?hasContent)?map(l->l.values.label)?join(", ")}</span>
644 </p>
645 </#if>
646
647 <#if ObjectField_searchYear.getData()?hasContent>
648 <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]">
649 <span class="tw:font-bold tw:shrink-0">Année :</span>
650 <span>${ObjectField_searchYear.getData()?datetime("dd/MM/yyyy HH:mm")?string("yyyy")}</span>
651 </p>
652 </#if>
653
654 <#if numeros?hasContent>
655 <#list numeros as numero>
656 <#if numero.values.sourcePhysicalDescription?hasContent>
657 <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]">
658 <span class="tw:font-bold tw:shrink-0">Description physique :</span>
659 <span>${numero.values.sourcePhysicalDescription}</span>
660 </p>
661 </#if>
662 <#if numero.values.sourceNumber?hasContent>
663 <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]">
664 <span class="tw:font-bold tw:shrink-0">Numéro :</span>
665 <span>${numero.values.sourceNumber}</span>
666 </p>
667 </#if>
668 <#if numero.values.sourceNumberCpl?hasContent>
669 <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]">
670 <span class="tw:font-bold tw:shrink-0">Numéro complémentaire :</span>
671 <span>${numero.values.sourceNumberCpl}</span>
672 </p>
673 </#if>
674 <#if numero.values.sourceParution?hasContent>
675 <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]">
676 <span class="tw:font-bold tw:shrink-0">Forme de parution :</span>
677 <span>${garance.getPicklistItemName(numero.values.sourceParution, "picklistSourceParution")}</span>
678 </p>
679 </#if>
680 <#if numero.values.sourcePublicationDate?hasContent>
681 <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]">
682 <span class="tw:font-bold tw:shrink-0">Date de publication :</span>
683 <span>${numero.values.sourcePublicationDate}</span>
684 </p>
685 </#if>
686 <#if numero.values.sourcePagination?hasContent>
687 <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]">
688 <span class="tw:font-bold tw:shrink-0">Pagination :</span>
689 <span>${numero.values.sourcePagination}</span>
690 </p>
691 </#if>
692 </#list>
693 </#if>
694
695 <#if productions?hasContent>
696 <#assign productionCountries = productions?filter(p -> p.values.r_imprimeProductionCountry_c_thesaurusId?string !="0")?map(p -> garance.getThesaurusByID(p.values.r_imprimeProductionCountry_c_thesaurusId))>
697 <#assign productionDates = productions?filter(p -> p.values.productionDateStart?hasContent)?map(p -> [p.values.productionDateStart, p.values.productionDateEnd!""]?filter(v->v?hasContent))>
698 <#if productionCountries?hasContent>
699 <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]">
700 <span class="tw:font-bold tw:shrink-0">Pays :</span>
701 <span>${productionCountries?join(", ")}</span>
702 </p>
703 </#if>
704 <#if productionDates?hasContent>
705 <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]">
706 <span class="tw:font-bold tw:shrink-0">Année :</span>
707 <span>${productionDates?map(p->p?map(pv->pv?string("yyyy"))?join(" - "))?join(", ")}</span>
708 </p>
709 </#if>
710 </#if>
711
712 <#if ObjectField_physicalDescription.getData()?hasContent>
713 <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]">
714 <span class="tw:font-bold tw:shrink-0">Description physique :</span>
715 <span>${ObjectField_physicalDescription.getData()}</span>
716 </p>
717 </#if>
718
719 <#if ObjectField_frequency.getData()?hasContent>
720 <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]">
721 <span class="tw:font-bold tw:shrink-0">Fréquence :</span>
722 <span>${ObjectField_frequency.getData()}</span>
723 </p>
724 </#if>
725
726 <#if ObjectField_issn.getData()?hasContent>
727 <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]">
728 <span class="tw:font-bold tw:shrink-0">ISSN :</span>
729 <span>${ObjectField_issn.getData()}</span>
730 </p>
731 </#if>
732
733 <#if ObjectField_isbn.getData()?hasContent>
734 <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]">
735 <span class="tw:font-bold tw:shrink-0">ISBN :</span>
736 <span>${ObjectField_isbn.getData()}</span>
737 </p>
738 </#if>
739
740 <#if noteFull?hasContent>
741 <#list noteFull as note>
742 <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]">
743 <span class="tw:font-bold tw:shrink-0">${garance.getPicklistItemName(note.values.nonFilmNoteType, "picklistNonFilmNoteType")} :</span>
744 <span>${note.values.nonFilmNote}</span>
745 </p>
746 </#list>
747 </#if>
748
749 </div>
750 </#if>
751
752 <#if showDescription>
753 <div id="description" class="js-summary-content" tabindex="-1"></div>
754 <div class="summary-content-wrapper page-wrapper tw:lg:pl-[16.75rem] tw:py-10
755 tw:before:content-[''] tw:before:block tw:before:relative tw:before:top-[-2.5rem] tw:before:h-[0.0625rem] tw:before:w-full tw:before:ml-auto tw:before:bg-text tw:before:opacity-40">
756 <h2 class="tw:text-prim tw:mb-5">${summary["DescriptionDuContenuImprime"]?hasContent?then(summary["DescriptionDuContenuImprime"], "Description du contenu")}</h2>
757
758 <#if relatedFilmsFull?hasContent>
759 <div class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]">
760 <p id="films-tlt" class="tw:leading-[1.375rem] tw:font-bold tw:shrink-0">Film(s) :</p>
761 <div class="js-list-expand">
762 <ul aria-labelledby="films-tlt">
763 <#list relatedFilmsFull as relatedFilm>
764 <li <#if (relatedFilm?index > 4)>class="tw:hidden"</#if>>
765 <#if relatedFilm.id?hasContent>
766 <a href="/l/${relatedFilm.id}"
767 class="tw:font-bold tw:transition-all tw:bg-linear-[currentcolor,currentcolor] tw:bg-no-repeat tw:bg-bottom-left tw:bg-size-[100%_0.0625rem] tw:hover:bg-size-[0_0.0625rem]">
768 ${relatedFilm.title}
769 </a>
770 <#else>
771 ${relatedFilm.title}
772 </#if>
773 <#if relatedFilm.reals?hasContent> -
774 <#list relatedFilm.reals as real>
775 <#if real.id?hasContent>
776 <a class="tw:font-bold tw:transition-all tw:bg-linear-[currentcolor,currentcolor] tw:bg-no-repeat tw:bg-bottom-left tw:bg-size-[100%_0.0625rem] tw:hover:bg-size-[0_0.0625rem]"
777 href="/l/${real.id}">
778 ${real.name}
779 </a>
780 <#else>
781 ${real.name}
782 </#if>
783 <#if !real?isLast>, </#if>
784 </#list>
785 </#if>
786 <#if relatedFilm.year?hasContent> - ${relatedFilm.year}</#if>
787 </li>
788 </#list>
789 </ul>
790 <#if (relatedFilmsFull?size > 5)>
791 <button type="button"
792 class="js-expand tw:items-center tw:leading-[1.75rem] tw:group tw:flex tw:gap-[0.3125rem] tw:font-semibold tw:transition-all tw:bg-linear-[currentcolor,currentcolor] tw:bg-no-repeat tw:bg-bottom-left tw:bg-size-[100%_0.125rem] tw:hover:bg-size-[0_0.125rem]">
793 <span>Voir plus</span>
794 <span class="icon-chevron-down tw:inline-block tw:text-prim tw:text-base tw:transition-all tw:text-[0.875rem] tw:rotate-0
795 tw:group-hover:rotate-180 tw:group-data-[expanded=true]:rotate-180" aria-hidden="true"></span>
796 </button>
797 </#if>
798 </div>
799 </div>
800 </#if>
801
802 <#if representedPersonnes?hasContent>
803 <#assign representedPersonnes = representedPersonnes?map(rp -> garance.getPersonneDisplayData(rp.objectEntryId))>
804 <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]">
805 <span class="tw:font-bold tw:shrink-0">Personne(s) représentée(s) :</span>
806 <span><#list representedPersonnes as rp><#if rp.id?hasContent>
807 <a href="/l/${rp.id}"
808 class="tw:font-bold tw:transition-all tw:bg-linear-[currentcolor,currentcolor] tw:bg-no-repeat tw:bg-bottom-left tw:bg-size-[100%_0.0625rem] tw:hover:bg-size-[0_0.0625rem]">
809 ${rp.name}
810 </a>
811 <#else>${rp.name}</#if><#if !rp?isLast>, </#if>
812 </#list></span>
813 </p>
814 </#if>
815
816 <#if subjectPersonnes?hasContent>
817 <#assign subjectPersonnes = subjectPersonnes?map(sp -> garance.getPersonneDisplayData(sp.objectEntryId))>
818 <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]">
819 <span class="tw:font-bold tw:shrink-0">Personne(s) sujet :</span>
820 <span><#list subjectPersonnes as sp><#if sp.id?hasContent>
821 <a href="/l/${sp.id}"
822 class="tw:font-bold tw:transition-all tw:bg-linear-[currentcolor,currentcolor] tw:bg-no-repeat tw:bg-bottom-left tw:bg-size-[100%_0.0625rem] tw:hover:bg-size-[0_0.0625rem]">
823 ${sp.name}
824 </a>
825 <#else>${sp.name}</#if><#if !sp?isLast>, </#if>
826 </#list></span>
827 </p>
828 </#if>
829
830 <#if themes?hasContent>
831 <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]">
832 <span class="tw:font-bold tw:shrink-0">Thème :</span>
833 <span>${themes?map(t->t.values.label)?join(", ")}</span>
834 </p>
835 </#if>
836
837 <#if representations?hasContent>
838 <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]">
839 <span class="tw:font-bold tw:shrink-0">Représentation :</span>
840 <span>${representations?map(r->r.values.label)?join(", ")}</span>
841 </p>
842 </#if>
843
844 <#if representationsSource?hasContent>
845 <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]">
846 <span class="tw:font-bold tw:shrink-0">Source de la représentation :</span>
847 <span>${representationsSource?map(rs->rs.values.label)?join(", ")}</span>
848 </p>
849 </#if>
850
851 <#if styles?hasContent>
852 <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]">
853 <span class="tw:font-bold tw:shrink-0">Époque/Style/Mouvement :</span>
854 <span>${styles?map(s->s.values.label)?join(", ")}</span>
855 </p>
856 </#if>
857
858 <#if contents?hasContent>
859 <#list contents as content>
860 <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]">
861 <#if content.values.imprimePosterContentType?hasContent><span
862 class="tw:font-bold tw:shrink-0">${garance.getPicklistItemName(content.values.imprimePosterContentType, "picklistImprimePosterContentType")}
863 :</span></#if>
864 <span>${content.values.posterContentText?replace("\n", "<br />")}<#if content.values.posterContentSourceTexte?hasContent> (${content.values.posterContentSourceTexte})</#if></span>
865 </p>
866 </#list>
867 </#if>
868
869 </div>
870 </#if>
871
872 <#if showSynthese>
873 <div id="synth-coupures" class="js-summary-content" tabindex="-1"></div>
874 <div class="summary-content-wrapper page-wrapper tw:lg:pl-[16.75rem] tw:py-10
875 tw:before:content-[''] tw:before:block tw:before:relative tw:before:top-[-2.5rem] tw:before:h-[0.0625rem] tw:before:w-full tw:before:ml-auto tw:before:bg-text tw:before:opacity-40">
876 <h2 class="tw:text-prim tw:mb-5">${summary["SyntheseCoupuresImprime"]?hasContent?then(summary["SyntheseCoupuresImprime"], "Synthèse coupures")}</h2>
877 <#if ObjectField_revpresseOlddatecoupure.getData()?hasContent>
878 <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]">
879 <span class="tw:font-bold tw:shrink-0">La plus ancienne :</span>
880 <span>${ObjectField_revpresseOlddatecoupure.getData()?datetime("dd/MM/yyyy HH:mm")?string("dd/MM/yyyy")}</span>
881 </p>
882 </#if>
883 <#if ObjectField_revpresseRecentdatecoupure.getData()?hasContent>
884 <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]">
885 <span class="tw:font-bold tw:shrink-0">La plus récente :</span>
886 <span>${ObjectField_revpresseRecentdatecoupure.getData()?datetime("dd/MM/yyyy HH:mm")?string("dd/MM/yyyy")}</span>
887 </p>
888 </#if>
889 <#if ObjectField_revpresseNbcoupures.getData()?hasContent>
890 <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]">
891 <span class="tw:font-bold tw:shrink-0">Nombre de coupures :</span>
892 <span>${ObjectField_revpresseNbcoupures.getData()}</span>
893 </p>
894 </#if>
895 </div>
896 </#if>
897
898 <#if showCoupure>
899 <div id="coupures" class="js-summary-content" tabindex="-1"></div>
900 <div class="summary-content-wrapper page-wrapper tw:lg:pl-[16.75rem] tw:py-10
901 tw:before:content-[''] tw:before:block tw:before:relative tw:before:top-[-2.5rem] tw:before:h-[0.0625rem] tw:before:w-full tw:before:ml-auto tw:before:bg-text tw:before:opacity-40">
902 <h2 id="coupure-tlt"
903 class="tw:text-prim tw:mb-5">${summary["CoupuresImprime"]?hasContent?then(summary["CoupuresImprime"], "Coupures")}</h2>
904 <div class="wysiwyg js-list-expand">
905 <ul aria-labelledby="coupure-tlt">
906 <#-- ToDo - Ajouter lien vers les images -->
907 <#assign coupuresClean = []>
908 <#list coupuresFull as c>
909 <#assign clean = {
910 "title": (c.data.values.title)!"",
911 "date": (c.data.values.date?hasContent)?then(c.data.values.date, "1900-01-01"?date),
912 "raw": c
913 }>
914 <#assign coupuresClean += [clean]>
915 </#list>
916
917 <#assign coupuresSorted = coupuresClean?sortBy("date")?sortBy("title")>
918
919 <#list coupuresSorted as coupure>
920 <li <#if (coupure?index > 4)>class="tw:hidden"</#if>>${coupure.title}<#if coupure.raw.data.values.date?hasContent> du ${coupure.raw.data.values.date?string("dd/MM/yyyy")}</#if><#if coupure.authors?hasContent> ${coupure.authors?map(a->garance.getPersonneDisplayData(a.objectEntryId).name)?join(", ")}</#if><#if coupure.raw.data.values.numPage?hasContent> p. ${coupure.raw.data.values.numPage}</#if></li>
921 </#list>
922 </ul>
923 <#if (coupures?size > 5)>
924 <button type="button"
925 class="js-expand tw:items-center tw:leading-[1.75rem] tw:group tw:flex tw:gap-[0.3125rem] tw:font-semibold tw:transition-all tw:bg-linear-[currentcolor,currentcolor] tw:bg-no-repeat tw:bg-bottom-left tw:bg-size-[100%_0.125rem] tw:hover:bg-size-[0_0.125rem]">
926 <span>Voir plus</span>
927 <span class="icon-chevron-down tw:inline-block tw:text-prim tw:text-base tw:transition-all tw:text-[0.875rem] tw:rotate-0
928 tw:group-hover:rotate-180 tw:group-data-[expanded=true]:rotate-180" aria-hidden="true"></span>
929 </button>
930 </#if>
931 </div>
932 </div>
933 </#if>
934
935 <#if showCollCons>
936 <div id="collect-cons" class="js-summary-content" tabindex="-1"></div>
937 <div class="summary-content-wrapper page-wrapper tw:lg:pl-[16.75rem] tw:py-10
938 tw:before:content-[''] tw:before:block tw:before:relative tw:before:top-[-2.5rem] tw:before:h-[0.0625rem] tw:before:w-full tw:before:ml-auto tw:before:bg-text tw:before:opacity-40">
939 <h2 class="tw:text-prim tw:mb-5">${summary["CollectionsConsultablesImprime"]?hasContent?then(summary["CollectionsConsultablesImprime"], "Collections consultables")}</h2>
940 <#list consultations as consultation>
941 <#assign etatCollCollection = "">
942 <#if consultation.values.etatCollCollection?hasContent>
943 <#assign etatCollCollection = garance.getPicklistItemName(consultation.values.etatCollCollection, "picklistEtatCollCollection")>
944 </#if>
945 <#assign lieuDeConsultation = "">
946 <#if consultation.values.lieuDeConsultation?hasContent>
947 <#assign lieuDeConsultation = garance.getPicklistItemName(consultation.values.lieuDeConsultation, "picklistLieuDeConsultation")>
948 </#if>
949 <#assign accesConditions = "">
950 <#if consultation.values.accesConditions?hasContent>
951 <#assign accesConditions = garance.getPicklistItemName(consultation.values.accesConditions, "picklistAccesConditions")>
952 </#if>
953 <#assign cons = [
954 etatCollCollection,
955 lieuDeConsultation,
956 accesConditions,
957 consultation.values.cote
958 ]>
959 <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]">
960 <span class="tw:font-bold tw:shrink-0">Consultation :</span>
961 <span>${cons?filter(v -> v?hasContent)?join(" - ")}</span>
962 </p>
963 <#if consultation.values.perioEtatCollEtat?hasContent>
964 <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]">
965 <span class="tw:font-bold tw:shrink-0">État de la collection :</span>
966 <span>${consultation.values.perioEtatCollEtat}</span>
967 </p>
968 </#if>
969 </#list>
970 </div>
971 </#if>
972
973 <#if showExemplaries>
974 <div id="exemples-cons" class="js-summary-content" tabindex="-1"></div>
975 <div class="summary-content-wrapper page-wrapper tw:lg:pl-[16.75rem] tw:py-10
976 tw:before:content-[''] tw:before:block tw:before:relative tw:before:top-[-2.5rem] tw:before:h-[0.0625rem] tw:before:w-full tw:before:ml-auto tw:before:bg-text tw:before:opacity-40">
977 <h2 class="tw:text-prim tw:mb-5">${summary["ExemplairesConsultablesImprime"]?hasContent?then(summary["ExemplairesConsultablesImprime"], "Exemplaires consultables")}</h2>
978 <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]">
979 <span class="tw:font-bold tw:shrink-0">Consultation :</span>
980 <span class="tw:flex tw:flex-col">
981 <#list exemplariesFull as exemplary>
982 <#assign itemConsultations = "" />
983 <#list exemplary.consultations as consultation>
984 <#assign lieuDeConsultation = "">
985 <#if consultation.values.lieuDeConsultation?hasContent>
986 <#assign lieuDeConsultation = garance.getPicklistItemName(consultation.values.lieuDeConsultation, "picklistLieuDeConsultation")>
987 </#if>
988 <#assign accesConditions = "">
989 <#if consultation.values.accesConditions?hasContent>
990 <#assign accesConditions = garance.getPicklistItemName(consultation.values.accesConditions, "picklistAccesConditions")>
991 </#if>
992 <#assign itemConsultations = itemConsultations + [lieuDeConsultation, accesConditions]?filter(v -> v?hasContent)?join(" - ")>
993 </#list>
994 <span class="tw:block">${[exemplary.cote, itemConsultations]?filter(v -> v?hasContent)?join(" - ")}</span>
995 </#list>
996 </span>
997 </p>
998 <#if archiveParts?hasContent>
999 <div class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]">
1000 <p id="archive-tlt" class="tw:leading-[1.375rem] tw:font-bold tw:shrink-0">Appartenance à un
1001 fonds d'archives :</p>
1002 <ul aria-labelledby="archive-tlt">
1003 <#list archiveParts as archivePart>
1004 <#assign archiveDataset = "">
1005 <#if archivePart.archive.values.dataset?hasContent>
1006 <#assign archiveDataset = garance.getPicklistItemName(archivePart.archive.values.dataset, "picklistDataset")>
1007 </#if>
1008 <li>
1009 <a class="tw:font-bold tw:transition-all tw:bg-linear-[currentcolor,currentcolor] tw:bg-no-repeat tw:bg-bottom-left tw:bg-size-[100%_0.0625rem] tw:hover:bg-size-[0_0.0625rem]"
1010 href="/l/${archivePart.object.objectEntryId}">${archivePart.type}<#if archivePart.archive.values.cote?hasContent> ${archivePart.archive.values.cote}</#if><#if archivePart.archive.values.titleComplete?hasContent> [${archivePart.archive.values.titleComplete}]</#if><#if archiveDataset?hasContent> (${archiveDataset})</#if>
1011 </a>
1012 </li>
1013 </#list>
1014 </ul>
1015 </div>
1016 </#if>
1017 </div>
1018 </#if>
1019
1020 <#if showNumeroPerios>
1021 <div id="num-perio" class="js-summary-content" tabindex="-1"></div>
1022 <div class="summary-content-wrapper page-wrapper tw:lg:pl-[16.75rem] tw:py-10
1023 tw:before:content-[''] tw:before:block tw:before:relative tw:before:top-[-2.5rem] tw:before:h-[0.0625rem] tw:before:w-full tw:before:ml-auto tw:before:bg-text tw:before:opacity-40">
1024 <h2 id="numero-tlt"
1025 class="tw:text-prim tw:mb-5">${summary["NumerosDePeriodiqueImprime"]?hasContent?then(summary["NumerosDePeriodiqueImprime"], "Numéros de périodique")}</h2>
1026 <div class="wysiwyg js-list-expand">
1027 <ul aria-labelledby="numero-tlt">
1028 <#list numeroPeriosFull as numero>
1029 <li <#if (numero?index > 4)>class="tw:hidden"</#if>>
1030 <a href="/l/${numero.id}"
1031 class="tw:font-bold! tw:transition-all tw:bg-linear-[currentcolor,currentcolor] tw:bg-no-repeat tw:bg-bottom-left tw:bg-size-[100%_0.125rem] tw:hover:bg-size-[0_0.125rem]">${numero.title}</a>
1032 </li>
1033 </#list>
1034 </ul>
1035 <#if (numeroPeriosFull?size > 5)>
1036 <button type="button"
1037 class="js-expand tw:items-center tw:leading-[1.75rem] tw:group tw:flex tw:gap-[0.3125rem] tw:font-semibold tw:transition-all tw:bg-linear-[currentcolor,currentcolor] tw:bg-no-repeat tw:bg-bottom-left tw:bg-size-[100%_0.125rem] tw:hover:bg-size-[0_0.125rem]">
1038 <span>Voir plus</span>
1039 <span class="icon-chevron-down tw:inline-block tw:text-prim tw:text-base tw:transition-all tw:text-[0.875rem] tw:rotate-0
1040 tw:group-hover:rotate-180 tw:group-data-[expanded=true]:rotate-180" aria-hidden="true"></span>
1041 </button>
1042 </#if>
1043 </div>
1044 </div>
1045 </#if>
1046
1047 <#if showArticlePerios>
1048 <div id="art-perio" class="js-summary-content" tabindex="-1"></div>
1049 <div class="summary-content-wrapper page-wrapper tw:lg:pl-[16.75rem] tw:py-10
1050 tw:before:content-[''] tw:before:block tw:before:relative tw:before:top-[-2.5rem] tw:before:h-[0.0625rem] tw:before:w-full tw:before:ml-auto tw:before:bg-text tw:before:opacity-40">
1051 <h2 id="article-perio-tlt"
1052 class="tw:text-prim tw:mb-5">${summary["ArticlesDePeriodiqueImprime"]?hasContent?then(summary["ArticlesDePeriodiqueImprime"], "Articles de périodique")}</h2>
1053 <div class="wysiwyg js-list-expand">
1054 <ul aria-labelledby="article-perio-tlt">
1055 <#assign articlePerioFull = articlePerioFull?sortBy("order")>
1056 <#list articlePerioFull as article>
1057 <li <#if (article?index > 4)>class="tw:hidden"</#if>>
1058 <a href="/l/${article.id}"
1059 class="tw:font-bold! tw:transition-all tw:bg-linear-[currentcolor,currentcolor] tw:bg-no-repeat tw:bg-bottom-left tw:bg-size-[100%_0.125rem] tw:hover:bg-size-[0_0.125rem]">${article.title} <#if article.year?hasContent> - ${article.year?string("YYYY")}</#if></a>
1060 </li>
1061 </#list>
1062 </ul>
1063 <#if (articlePerioFull?size > 5)>
1064 <button type="button"
1065 class="js-expand tw:items-center tw:leading-[1.75rem] tw:group tw:flex tw:gap-[0.3125rem] tw:font-semibold tw:transition-all tw:bg-linear-[currentcolor,currentcolor] tw:bg-no-repeat tw:bg-bottom-left tw:bg-size-[100%_0.125rem] tw:hover:bg-size-[0_0.125rem]">
1066 <span>Voir plus</span>
1067 <span class="icon-chevron-down tw:inline-block tw:text-prim tw:text-base tw:transition-all tw:text-[0.875rem] tw:rotate-0
1068 tw:group-hover:rotate-180 tw:group-data-[expanded=true]:rotate-180" aria-hidden="true"></span>
1069 </button>
1070 </#if>
1071 </div>
1072 </div>
1073 </#if>
1074
1075 </div>
1076 <#if showMedia>
1077 <#assign medias = []>
1078 <#if reproductionsVideos?hasContent>
1079 <#assign medias = medias + [{
1080 "type": "video",
1081 "title": "Vidéos",
1082 "reproductions": reproductionsVideos
1083 }]>
1084 </#if>
1085 <#if reproductionsImages?hasContent>
1086 <#assign medias = medias + [{
1087 "type": "image",
1088 "title": "Images",
1089 "reproductions": reproductionsImages
1090 }]>
1091 </#if>
1092 <#-- <#if bureautiques?hasContent>
1093 <#assign medias = medias + [{
1094 "type": "fichier",
1095 "title": "Texte",
1096 "reproductions": bureautiques
1097 }]>
1098 </#if> -->
1099
1100 <div id="ressources" class="js-summary-content" tabindex="-1"></div>
1101 <div class="page-wrapper tw:py-10">
1102 <h2 id="ressources-tl"
1103 class="tw:text-prim tw:mb-5">${summary["RessourcesMediaImprime"]?hasContent?then(summary["RessourcesMediaImprime"], "Ressources média")}</h2>
1104 <@garance.displayMedia data=medias />
1105 </div>
1106 </#if>
1107 <#if showCollection>
1108 <div id="collections" class="js-summary-content" tabindex="-1"></div>
1109 <div class="page-wrapper tw:py-10">
1110 <h2 id="collections-tl"
1111 class="tw:text-prim tw:mb-5">${summary["CollectionsLieesImprime"]?hasContent?then(summary["CollectionsLieesImprime"], "Collections liées")}</h2>
1112 <@garance.displayCollection relatedObjectsFull />
1113 </div>
1114 <script type="module" async>
1115 import('photoswipe')
1116 import('photoswipe-lightbox')
1117 </script>
1118 </#if>
1119 </div>
1120</div>