Une erreur s'est produite lors du traitement du modèle.
The following has evaluated to null or missing:
==> objectEntryLocalService.fetchObjectEntry(functionImageFixe.values.r_imageFixeAutheurs_c_imageFixeId?number)  [in template "22823141604726#20121#null" at line 437, column 38]

----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign authoredImageFixe = objectEnt...  [in template "22823141604726#20121#null" at line 437, column 9]
----
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") 
7/> 
8 
9<#assign searchUrl = (request.getParameter("searchUrl")?hasContent)?then("?searchUrl=" + request.getParameter("searchUrl")?url('UTF-8'), "")/> 
10<#assign summary = garance.getSummaryContent("Personne")> 
11 
12<#assign peopleID = ObjectEntry_objectEntryId.getData()?number 
13peopleEntry = objectEntryLocalService.fetchObjectEntry(peopleID?number) 
14peopleGroupID = peopleEntry.getGroupId() 
15
16 
17<#assign transiPeopleRel = objectRelationshipLocalService.getObjectRelationship(peopleEntry.objectDefinitionId, "transitionPersonne")> 
18<#assign transiPeoples = objectEntryLocalService.getOneToManyObjectEntries(peopleGroupID, transiPeopleRel.objectRelationshipId, peopleID, true, null, -1, -1 ) /> 
19<#assign pseudoFull = [] 
20translitFull = [] 
21equiFull = []> 
22<#list transiPeoples as transiPeople> 
23    <#switch transiPeople.values.transitionPersonneType> 
24        <#case "PSEUDO"> 
25            <#assign pseudoFull = pseudoFull + [transiPeople]> 
26            <#break> 
27        <#case "TRANSLIT"> 
28            <#assign translitFull = translitFull + [transiPeople]> 
29            <#break> 
30        <#case "EQUI"> 
31            <#assign equiFull = equiFull + [transiPeople]> 
32            <#break> 
33        <#default> 
34            <#if transiPeople.externalReferenceCode = "transi_" + peopleEntry.externalReferenceCode> 
35                <#assign mainTransiPeople = transiPeople> 
36            </#if> 
37            <#break> 
38    </#switch> 
39</#list> 
40 
41<#--------------------------------- Filmographie --------------------------> 
42 
43<#assign filmoShort = []> 
44<#assign filmoLong = []> 
45<#assign creditRealisateurRel = objectRelationshipLocalService.getObjectRelationship(mainTransiPeople.objectDefinitionId, "creditsRealisateur")> 
46<#assign creditRealisateurs = objectEntryLocalService.getManyToManyObjectEntries(peopleGroupID, creditRealisateurRel.objectRelationshipId, mainTransiPeople.objectEntryId, true, creditRealisateurRel.isReverse(), null, -1, -1 ) /> 
47<#list pseudoFull as pseudo> 
48    <#assign creditRealisateurs = creditRealisateurs + objectEntryLocalService.getManyToManyObjectEntries(peopleGroupID, creditRealisateurRel.objectRelationshipId, pseudo.objectEntryId, true, creditRealisateurRel.isReverse(), null, -1, -1 ) /> 
49</#list> 
50<#list creditRealisateurs as creditRealisateur> 
51    <#if creditRealisateur.values.descriptionLevel == "WORK"> 
52        <#if creditRealisateur.values.typeDeMetrage == "LONG"> 
53            <#assign filmoLong = filmoLong + [{"fonction": "Réalisation", "film": creditRealisateur, "year": garance.getFilmYear(creditRealisateur)}]> 
54        <#elseIf creditRealisateur.values.typeDeMetrage == "COURT"> 
55            <#assign filmoShort = filmoShort + [{"fonction": "Réalisation", "film": creditRealisateur, "year": garance.getFilmYear(creditRealisateur)}]> 
56        </#if> 
57    </#if> 
58</#list> 
59 
60<#assign creditRealisationRel = objectRelationshipLocalService.getObjectRelationship(mainTransiPeople.objectDefinitionId, "creditsRealisationName")> 
61<#assign creditRealisations = objectEntryLocalService.getOneToManyObjectEntries(peopleGroupID, creditRealisationRel.objectRelationshipId, mainTransiPeople.objectEntryId, true, null, -1, -1 ) /> 
62<#list pseudoFull as pseudo> 
63    <#assign creditRealisations = creditRealisations + objectEntryLocalService.getOneToManyObjectEntries(peopleGroupID, creditRealisationRel.objectRelationshipId, pseudo.objectEntryId, true, null, -1, -1 ) /> 
64</#list> 
65<#list creditRealisations as creditRealisation> 
66    <#if creditRealisation.values.r_creditsRealisationDomaine_c_thesaurusId != 0 && creditRealisation.values.r_creditsRealisation_c_filmId != 0> 
67        <#assign filmRealisation = objectEntryLocalService.fetchObjectEntry(creditRealisation.values.r_creditsRealisation_c_filmId)> 
68        <#if filmRealisation.values.descriptionLevel == "WORK"> 
69            <#if filmRealisation.values.typeDeMetrage == "LONG"> 
70                <#assign filmoLong = filmoLong + [{"fonction": garance.getThesaurusByID(creditRealisation.values.r_creditsRealisationDomaine_c_thesaurusId), "film": filmRealisation, "year": garance.getFilmYear(filmRealisation)}]> 
71            <#elseIf filmRealisation.values.typeDeMetrage == "COURT"> 
72                <#assign filmoShort = filmoShort + [{"fonction": garance.getThesaurusByID(creditRealisation.values.r_creditsRealisationDomaine_c_thesaurusId), "film": filmRealisation, "year": garance.getFilmYear(filmRealisation)}]> 
73            </#if> 
74        </#if> 
75    </#if> 
76</#list> 
77 
78<#assign creditInterpretationRel = objectRelationshipLocalService.getObjectRelationship(mainTransiPeople.objectDefinitionId, "creditsInterpretationName")> 
79<#assign creditInterpretations = objectEntryLocalService.getOneToManyObjectEntries(peopleGroupID, creditInterpretationRel.objectRelationshipId, mainTransiPeople.objectEntryId, true, null, -1, -1 ) /> 
80<#list pseudoFull as pseudo> 
81    <#assign creditInterpretations = creditInterpretations + objectEntryLocalService.getOneToManyObjectEntries(peopleGroupID, creditInterpretationRel.objectRelationshipId, pseudo.objectEntryId, true, null, -1, -1 ) /> 
82</#list> 
83<#list creditInterpretations as creditInterpretation> 
84    <#if creditInterpretation.values.r_creditsInterpretationDomaine_c_thesaurusId != 0 && creditInterpretation.values.r_creditsInterpretation_c_filmId != 0> 
85        <#assign filmInterpretation = objectEntryLocalService.fetchObjectEntry(creditInterpretation.values.r_creditsInterpretation_c_filmId)> 
86        <#if filmInterpretation.values.descriptionLevel == "WORK"> 
87            <#if filmInterpretation.values.typeDeMetrage == "LONG"> 
88                <#assign filmoLong = filmoLong + [{"fonction": garance.getThesaurusByID(creditInterpretation.values.r_creditsInterpretationDomaine_c_thesaurusId), "film": filmInterpretation, "year": garance.getFilmYear(filmInterpretation)}]> 
89            <#elseIf filmInterpretation.values.typeDeMetrage == "COURT"> 
90                <#assign filmoShort = filmoShort + [{"fonction": garance.getThesaurusByID(creditInterpretation.values.r_creditsInterpretationDomaine_c_thesaurusId), "film": filmInterpretation, "year": garance.getFilmYear(filmInterpretation)}]> 
91            </#if> 
92        </#if> 
93    </#if> 
94</#list> 
95 
96<#assign creditEcritureRel = objectRelationshipLocalService.getObjectRelationship(mainTransiPeople.objectDefinitionId, "creditsEcritureName")> 
97<#assign creditEcritures = objectEntryLocalService.getOneToManyObjectEntries(peopleGroupID, creditEcritureRel.objectRelationshipId, mainTransiPeople.objectEntryId, true, null, -1, -1 ) /> 
98<#list pseudoFull as pseudo> 
99    <#assign creditEcritures = creditEcritures + objectEntryLocalService.getOneToManyObjectEntries(peopleGroupID, creditEcritureRel.objectRelationshipId, pseudo.objectEntryId, true, null, -1, -1 ) /> 
100</#list> 
101<#list creditEcritures as creditEcriture> 
102    <#if creditEcriture.values.r_creditsEcritureDomaine_c_thesaurusId != 0 && creditEcriture.values.r_creditsEcriture_c_filmId != 0> 
103        <#assign filmEcriture = objectEntryLocalService.fetchObjectEntry(creditEcriture.values.r_creditsEcriture_c_filmId)> 
104        <#if filmEcriture.values.descriptionLevel == "WORK"> 
105            <#if filmEcriture.values.typeDeMetrage == "LONG"> 
106                <#assign filmoLong = filmoLong + [{"fonction": garance.getThesaurusByID(creditEcriture.values.r_creditsEcritureDomaine_c_thesaurusId), "film": filmEcriture, "year": garance.getFilmYear(filmEcriture)}]> 
107            <#elseIf filmEcriture.values.typeDeMetrage == "COURT"> 
108                <#assign filmoShort = filmoShort + [{"fonction": garance.getThesaurusByID(creditEcriture.values.r_creditsEcritureDomaine_c_thesaurusId), "film": filmEcriture, "year": garance.getFilmYear(filmEcriture)}]> 
109            </#if> 
110        </#if> 
111    </#if> 
112</#list> 
113 
114<#assign creditProductionRel = objectRelationshipLocalService.getObjectRelationship(mainTransiPeople.objectDefinitionId, "creditsProductionName")> 
115<#assign creditProductions = objectEntryLocalService.getOneToManyObjectEntries(peopleGroupID, creditProductionRel.objectRelationshipId, mainTransiPeople.objectEntryId, true, null, -1, -1 ) /> 
116<#list pseudoFull as pseudo> 
117    <#assign creditProductions = creditProductions + objectEntryLocalService.getOneToManyObjectEntries(peopleGroupID, creditProductionRel.objectRelationshipId, pseudo.objectEntryId, true, null, -1, -1 ) /> 
118</#list> 
119<#list creditProductions as creditProduction> 
120    <#if creditProduction.values.r_creditsProductionDomaine_c_thesaurusId != 0 && creditProduction.values.r_creditsProduction_c_filmId != 0> 
121        <#assign filmProduction = objectEntryLocalService.fetchObjectEntry(creditProduction.values.r_creditsProduction_c_filmId)> 
122        <#if filmProduction.values.descriptionLevel == "WORK"> 
123            <#if filmProduction.values.typeDeMetrage == "LONG"> 
124                <#assign filmoLong = filmoLong + [{"fonction": garance.getThesaurusByID(creditProduction.values.r_creditsProductionDomaine_c_thesaurusId), "film": filmProduction, "year": garance.getFilmYear(filmProduction)}]> 
125            <#elseIf filmProduction.values.typeDeMetrage == "COURT"> 
126                <#assign filmoShort = filmoShort + [{"fonction": garance.getThesaurusByID(creditProduction.values.r_creditsProductionDomaine_c_thesaurusId), "film": filmProduction, "year": garance.getFilmYear(filmProduction)}]> 
127            </#if> 
128        </#if> 
129    </#if> 
130</#list> 
131 
132<#assign creditMusicRel = objectRelationshipLocalService.getObjectRelationship(mainTransiPeople.objectDefinitionId, "creditsMusicName")> 
133<#assign creditMusics = objectEntryLocalService.getOneToManyObjectEntries(peopleGroupID, creditMusicRel.objectRelationshipId, mainTransiPeople.objectEntryId, true, null, -1, -1 ) /> 
134<#list pseudoFull as pseudo> 
135    <#assign creditMusics = creditMusics + objectEntryLocalService.getOneToManyObjectEntries(peopleGroupID, creditMusicRel.objectRelationshipId, pseudo.objectEntryId, true, null, -1, -1 ) /> 
136</#list> 
137<#list creditMusics as creditMusic> 
138    <#if creditMusic.values.r_creditsMusicDomaine_c_thesaurusId != 0 && creditMusic.values.r_creditsMusic_c_filmId != 0> 
139        <#assign filmMusic = objectEntryLocalService.fetchObjectEntry(creditMusic.values.r_creditsMusic_c_filmId)> 
140        <#if filmMusic.values.descriptionLevel == "WORK"> 
141            <#if filmMusic.values.typeDeMetrage == "LONG"> 
142                <#assign filmoLong = filmoLong + [{"fonction": garance.getThesaurusByID(creditMusic.values.r_creditsMusicDomaine_c_thesaurusId), "film": filmMusic, "year": garance.getFilmYear(filmMusic)}]> 
143            <#elseIf filmMusic.values.typeDeMetrage == "COURT"> 
144                <#assign filmoShort = filmoShort + [{"fonction": garance.getThesaurusByID(creditMusic.values.r_creditsMusicDomaine_c_thesaurusId), "film": filmMusic, "year": garance.getFilmYear(filmMusic)}]> 
145            </#if> 
146        </#if> 
147    </#if> 
148</#list> 
149 
150<#assign creditTechniqueRel = objectRelationshipLocalService.getObjectRelationship(mainTransiPeople.objectDefinitionId, "creditsTechniqueName")> 
151<#assign creditTechniques = objectEntryLocalService.getOneToManyObjectEntries(peopleGroupID, creditTechniqueRel.objectRelationshipId, mainTransiPeople.objectEntryId, true, null, -1, -1 ) /> 
152<#list pseudoFull as pseudo> 
153    <#assign creditTechniques = creditTechniques + objectEntryLocalService.getOneToManyObjectEntries(peopleGroupID, creditTechniqueRel.objectRelationshipId, pseudo.objectEntryId, true, null, -1, -1 ) /> 
154</#list> 
155<#list creditTechniques as creditTechnique> 
156    <#if creditTechnique.values.r_creditsTechniqueDomaine_c_thesaurusId != 0 && creditTechnique.values.r_creditsTechnique_c_filmId != 0> 
157        <#assign filmTechnique = objectEntryLocalService.fetchObjectEntry(creditTechnique.values.r_creditsTechnique_c_filmId)> 
158        <#if filmTechnique.values.descriptionLevel == "WORK"> 
159            <#if filmTechnique.values.typeDeMetrage == "LONG"> 
160                <#assign filmoLong = filmoLong + [{"fonction": garance.getThesaurusByID(creditTechnique.values.r_creditsTechniqueDomaine_c_thesaurusId), "film": filmTechnique, "year": garance.getFilmYear(filmTechnique)}]> 
161            <#elseIf filmTechnique.values.typeDeMetrage == "COURT"> 
162                <#assign filmoShort = filmoShort + [{"fonction": garance.getThesaurusByID(creditTechnique.values.r_creditsTechniqueDomaine_c_thesaurusId), "film": filmTechnique, "year": garance.getFilmYear(filmTechnique)}]> 
163            </#if> 
164        </#if> 
165    </#if> 
166</#list> 
167 
168<#assign showFilmo = (filmoLong?hasContent || filmoShort?hasContent)> 
169 
170<#--------------------------------- Identité --------------------------> 
171 
172<#assign functionsFull = {}> 
173<#if filmoLong?filter(f->f.fonction?hasContent)?hasContent || filmoShort?filter(f->f.fonction?hasContent)?hasContent> 
174    <#assign functionsFull = functionsFull + {"film": (filmoLong?filter(f->f.fonction?hasContent) + filmoShort?filter(f->f.fonction?hasContent))?map(f -> f.fonction)} > 
175</#if> 
176 
177<#assign imprimeAuthorRel = objectRelationshipLocalService.getObjectRelationship(mainTransiPeople.objectDefinitionId, "imprimeAuthorPersonnes")> 
178<#assign imprimeAuthor = objectEntryLocalService.getOneToManyObjectEntries(peopleGroupID, imprimeAuthorRel.objectRelationshipId, mainTransiPeople.objectEntryId, true, null, -1, -1 ) /> 
179<#if imprimeAuthor?hasContent> 
180    <#assign functionsFull = functionsFull + {"imprime": imprimeAuthor}> 
181</#if> 
182<#assign imageFixeAuteurRel = objectRelationshipLocalService.getObjectRelationship(mainTransiPeople.objectDefinitionId, "imageFixeAuteurPersonne")> 
183<#assign imgFixeAuthor = objectEntryLocalService.getOneToManyObjectEntries(peopleGroupID, imageFixeAuteurRel.objectRelationshipId, mainTransiPeople.objectEntryId, true, null, -1, -1 ) /> 
184<#if imgFixeAuthor?hasContent> 
185    <#assign functionsFull = functionsFull + {"imageFixe": imgFixeAuthor}> 
186</#if> 
187<#assign archiveAuthorRel = objectRelationshipLocalService.getObjectRelationship(mainTransiPeople.objectDefinitionId, "archiveAuthorPersonne")> 
188<#assign archiveAuthor = objectEntryLocalService.getOneToManyObjectEntries(peopleGroupID, archiveAuthorRel.objectRelationshipId, mainTransiPeople.objectEntryId, true, null, -1, -1 ) /> 
189<#if archiveAuthor?hasContent> 
190    <#assign functionsFull = functionsFull + {"archive": archiveAuthor}> 
191</#if> 
192 
193<#assign showIdentity = (ObjectField_gender.getData()?hasContent 
194|| ObjectField_typeDePersonneMorale.getData()?hasContent 
195|| ObjectField_denominationSociale.getData()?hasContent 
196|| .dataModel["ObjectRelationship#C_Thesaurus#nationalityNaturalisation_label"].getData()?hasContent 
197|| pseudoFull?hasContent 
198|| translitFull?hasContent 
199|| equiFull?hasContent 
200|| .dataModel["ObjectRelationship#C_Thesaurus#profession_label"].getData()?hasContent 
201|| functionsFull?hasContent 
202)> 
203 
204<#--------------------------------- Biographie --------------------------> 
205 
206<#assign showBiographie = (ObjectField_schoolStyle.getData()?hasContent 
207|| ObjectField_occupation.getData()?hasContent 
208|| ObjectField_otherActivities.getData()?hasContent 
209)> 
210 
211 
212<#--------------------------------- Bibliographies --------------------------> 
213 
214<#assign bibliographiesRel = objectRelationshipLocalService.getObjectRelationship(peopleEntry.objectDefinitionId, "bibliographiesPersonnes")> 
215<#assign bibliographies = objectEntryLocalService.getManyToManyObjectEntries(peopleGroupID, bibliographiesRel.objectRelationshipId, peopleID, true, bibliographiesRel.isReverse(), null, -1, -1 ) /> 
216<#assign digitalRefs = []> 
217<#if bibliographies?hasContent> 
218    <#list bibliographies as bibliographie> 
219        <#assign digitalRefsRel = objectRelationshipLocalService.getObjectRelationship(bibliographie.objectDefinitionId, "digitalReferences")> 
220        <#assign digitalRefs = objectEntryLocalService.getOneToManyObjectEntries(bibliographie.getGroupId(), digitalRefsRel.objectRelationshipId, bibliographie.objectEntryId, true, null, -1, -1 ) /> 
221    </#list> 
222</#if> 
223 
224<#assign showBibliographie = digitalRefs?hasContent> 
225 
226<#--------------------------------- Récompenses --------------------------> 
227 
228<#assign awardsRel = objectRelationshipLocalService.getObjectRelationship(peopleEntry.objectDefinitionId, "awardsPersonne")> 
229<#assign awards = objectEntryLocalService.getOneToManyObjectEntries(peopleGroupID, awardsRel.objectRelationshipId, peopleID, true, null, -1, -1 ) /> 
230 
231<#assign awardsFull = []> 
232<#list awards as award> 
233    <#assign eventResult = ""> 
234    <#assign eventYear = ""> 
235    <#if award.values.r_awardEvent_c_eventId?hasContent> 
236        <#assign event = objectEntryLocalService.fetchObjectEntry(award.values.r_awardEvent_c_eventId?number)> 
237        <#if award.values.eventResult?hasContent> 
238            <#assign eventResult = garance.getPicklistItemName(award.values.eventResult, "picklistRecompenseResultat") > 
239        </#if> 
240        <#if event.values.eventAwardYear?hasContent> 
241            <#assign eventYear = event.values.eventAwardYear?string("yyyy") > 
242        </#if> 
243        <#if event.objectEntryId?hasContent> 
244            <#assign awardsFull = awardsFull + [[eventYear, award.values.eventsNomination, event.values.eventParticipant, award.values.filmTitle, eventResult]]> 
245        </#if> 
246    </#if> 
247</#list> 
248<#assign showAwards = awardsFull?hasContent> 
249 
250<#--------------------------------- Liens familiaux --------------------------> 
251<#assign showFamille = false> 
252 
253<#if peopleEntry.values.personneType == "PP"> 
254    <#assign relatedPersonneChildren = []> 
255    <#assign relatedPersonneParents = []> 
256    <#assign relatedPersonnesRel = objectRelationshipLocalService.getObjectRelationship(peopleEntry.objectDefinitionId, "relatedPersonnesPersonne1")> 
257    <#assign relatedPersonnes = objectEntryLocalService.getOneToManyObjectEntries(peopleGroupID, relatedPersonnesRel.objectRelationshipId, peopleID, true, null, -1, -1 ) /> 
258    <#list relatedPersonnes as relatedPersonne> 
259        <#if relatedPersonne.values.relationshipType?hasContent && relatedPersonne.values.r_relatedPersonnePersonne2_c_transitionPersonneId != 0> 
260            <#assign relatedPersonneData = garance.getPersonneDisplayData(relatedPersonne.values.r_relatedPersonnePersonne2_c_transitionPersonneId)> 
261            <#if relatedPersonne.values.relationshipType == "CHILD"> 
262                <#assign relatedPersonneChildren = relatedPersonneChildren + [{ 
263                "personne": relatedPersonneData, 
264                "notes": relatedPersonne.values.relationshipNotes 
265                }]> 
266            <#elseIf relatedPersonne.values.relationshipType == "PARENT"> 
267                <#assign relatedPersonneParents = relatedPersonneParents + [{ 
268                "personne": relatedPersonneData, 
269                "notes": relatedPersonne.values.relationshipNotes 
270                }]> 
271            </#if> 
272        </#if> 
273    </#list> 
274 
275    <#assign relatedPPFull = [] /> 
276    <#assign relatedPPRel = objectRelationshipLocalService.getObjectRelationship(peopleEntry.objectDefinitionId, "relationPPPersonne1")> 
277    <#assign relatedPPs = objectEntryLocalService.getOneToManyObjectEntries(peopleGroupID, relatedPPRel.objectRelationshipId, peopleID, true, null, -1, -1 ) /> 
278    <#list relatedPPs as relatedPP> 
279        <#if relatedPP.values.r_relationPPPersonne2_c_transitionPersonneId != 0> 
280            <#assign relatedPPData = garance.getPersonneDisplayData(relatedPP.values.r_relationPPPersonne2_c_transitionPersonneId)> 
281            <#assign relatedPPFull = relatedPPFull + [{ 
282            "personne": relatedPPData, 
283            "notes": relatedPP.values.relationPPNotes 
284            }]> 
285        </#if> 
286    </#list> 
287 
288    <#assign relationFiliationFull = [] /> 
289    <#assign relationFiliationRel = objectRelationshipLocalService.getObjectRelationship(peopleEntry.objectDefinitionId, "relationFiliationPersonne1")> 
290    <#assign relationFiliations = objectEntryLocalService.getOneToManyObjectEntries(peopleGroupID, relationFiliationRel.objectRelationshipId, peopleID, true, null, -1, -1 ) /> 
291    <#list relationFiliations as relationFiliation> 
292        <#if relationFiliation.values.r_relationFiliationPersonne2_c_transitionPersonneId != 0> 
293            <#assign relationFiliationData = garance.getPersonneDisplayData(relationFiliation.values.r_relationFiliationPersonne2_c_transitionPersonneId)> 
294            <#assign relationFiliationFull = relationFiliationFull + [{ 
295            "personne": relationFiliationData, 
296            "notes": relationFiliation.values.relationFiliationNotes 
297            }]> 
298        </#if> 
299    </#list> 
300 
301    <#if peopleEntry.values.personneType == "PP"> 
302        <#assign showFamille = (relatedPersonneChildren?hasContent 
303        || relatedPersonneParents?hasContent 
304        || relatedPPFull?hasContent 
305        || relationFiliationFull?hasContent 
306        )> 
307    </#if> 
308</#if> 
309 
310<#--------------------------------- Relations professionnelles --------------------------> 
311<#assign filialeFull = [] /> 
312<#if peopleEntry.values.personneType == "PM"> 
313    <#assign filialeRel = objectRelationshipLocalService.getObjectRelationship(peopleEntry.objectDefinitionId, "filialePersonne1")> 
314    <#assign filiales = objectEntryLocalService.getOneToManyObjectEntries(peopleGroupID, filialeRel.objectRelationshipId, peopleID, true, null, -1, -1 ) /> 
315    <#list filiales as filiale> 
316        <#if filiale.values.r_filialePersonne2_c_transitionPersonneId != 0> 
317            <#assign filialeData = garance.getPersonneDisplayData(filiale.values.r_filialePersonne2_c_transitionPersonneId)> 
318            <#assign filialeFull = filialeFull + [{ 
319            "personne": filialeData, 
320            "notes": filiale.values.partsNotes, 
321            "dateStart": filiale.values.partsDateStart!"", 
322            "dateEnd": filiale.values.partsDateEnd!"" 
323            }]> 
324        </#if> 
325    </#list> 
326</#if> 
327 
328<#assign showProfessional = false /> 
329 
330<#if peopleEntry.values.personneType != "G"> 
331    <#assign relationGRel = objectRelationshipLocalService.getObjectRelationship(peopleEntry.objectDefinitionId, "relationGPersonne1")> 
332    <#assign relationGs = objectEntryLocalService.getOneToManyObjectEntries(peopleGroupID, relationGRel.objectRelationshipId, peopleID, true, null, -1, -1 ) /> 
333    <#assign relationGFull = [] /> 
334    <#list relationGs as relationG> 
335        <#if relationG.values.r_relationGPersonne2_c_transitionPersonneId != 0> 
336            <#assign relationGData = garance.getPersonneDisplayData(relationG.values.r_relationGPersonne2_c_transitionPersonneId)> 
337            <#assign relationGFull = relationGFull + [{ 
338            "personne": relationGData, 
339            "notes": relationG.values.relationGNotes, 
340            "dateStart": relationG.values.relationGDateStart!"" 
341            }]> 
342        </#if> 
343    </#list> 
344 
345 
346    <#assign relationPMRel = objectRelationshipLocalService.getObjectRelationship(peopleEntry.objectDefinitionId, "relationPMPersonne1")> 
347    <#assign relationPMs = objectEntryLocalService.getOneToManyObjectEntries(peopleGroupID, relationPMRel.objectRelationshipId, peopleID, true, null, -1, -1 ) /> 
348    <#assign relationPMFull = [] /> 
349    <#list relationPMs as relationPM> 
350        <#if relationPM.values.r_relationPMPersonne2_c_transitionPersonneId != 0> 
351            <#assign relationPMData = garance.getPersonneDisplayData(relationPM.values.r_relationPMPersonne2_c_transitionPersonneId)> 
352            <#assign relationPMFull = relationPMFull + [{ 
353            "personne": relationPMData, 
354            "notes": relationPM.values.relationPMNotes, 
355            "dateStart": relationPM.values.relationPMDateStart!"", 
356            "dateEnd": relationPM.values.relationPMDateEnd!"" 
357            }]> 
358        </#if> 
359    </#list> 
360 
361    <#assign partOfRel = objectRelationshipLocalService.getObjectRelationship(peopleEntry.objectDefinitionId, "partOfPersonne1")> 
362    <#assign partOfs = objectEntryLocalService.getOneToManyObjectEntries(peopleGroupID, partOfRel.objectRelationshipId, peopleID, true, null, -1, -1 ) /> 
363    <#assign partOfFull = [] /> 
364    <#list partOfs as partOf> 
365        <#if partOf.values.r_partOfPersonne2_c_transitionPersonneId != 0> 
366            <#assign partOfData = garance.getPersonneDisplayData(partOf.values.r_partOfPersonne2_c_transitionPersonneId)> 
367            <#assign partOfFull = partOfFull + [{ 
368            "personne": partOfData, 
369            "notes": partOf.values.partOfNotes, 
370            "dateStart": partOf.values.partOfDateStart!"" 
371            }]> 
372        </#if> 
373    </#list> 
374 
375 
376 
377    <#assign groupeGenFull = [] /> 
378    <#if peopleEntry.values.personneType == "PM"> 
379        <#assign groupeGenRel = objectRelationshipLocalService.getObjectRelationship(peopleEntry.objectDefinitionId, "groupeGeneriquePersonne1")> 
380        <#assign groupeGens = objectEntryLocalService.getOneToManyObjectEntries(peopleGroupID, groupeGenRel.objectRelationshipId, peopleID, true, null, -1, -1 ) /> 
381        <#list groupeGens as groupeGen> 
382            <#if groupeGen.values.r_groupeGeneriquePersonne2_c_transitionPersonneId != 0> 
383                <#assign groupeGenData = garance.getPersonneDisplayData(groupeGen.values.r_groupeGeneriquePersonne2_c_transitionPersonneId)> 
384                <#assign groupeGenFull = groupeGenFull + [{ 
385                "personne": groupeGenData, 
386                "notes": groupeGen.values.groupRelationNote, 
387                "type": groupeGen.values.groupRelationType, 
388                "date": groupeGen.values.groupRelationDate!"" 
389                }]> 
390            </#if> 
391        </#list> 
392    </#if> 
393 
394    <#assign showProfessional = (relationGFull?hasContent 
395    || relationPMFull?hasContent 
396    || partOfFull?hasContent 
397    || filialeFull?hasContent 
398    || groupeGenFull?hasContent 
399    )> 
400</#if> 
401 
402<#--------------------------------- Media --------------------------> 
403<#assign reproductionsRel = objectRelationshipLocalService.getObjectRelationship(peopleEntry.objectDefinitionId, "reproductionsPersonne")> 
404<#assign reproductions = objectEntryLocalService.getManyToManyObjectEntries(peopleGroupID, reproductionsRel.objectRelationshipId, peopleID, true, reproductionsRel.isReverse(), null, -1, -1 ) /> 
405<#assign reproductionsImages = []> 
406<#assign reproductionsVideos = []> 
407<#if reproductions?hasContent> 
408    <#list reproductions as reproduction> 
409        <#if reproduction.values.reproductionNature?hasContent> 
410            <#if reproduction.values.reproductionNature == "PICTURE" && reproduction.values.media?string != "0"> 
411                <#assign reproductionsImages = reproductionsImages + [reproduction]> 
412            <#elseIf reproduction.values.reproductionNature == "VIDEO"> 
413                <#assign reproductionsVideos = reproductionsVideos + [reproduction]> 
414            </#if> 
415        </#if> 
416    </#list> 
417</#if> 
418 
419<#assign bureautiquesRel = objectRelationshipLocalService.getObjectRelationship(peopleEntry.objectDefinitionId, "personneBureautique")> 
420<#assign bureautiques = objectEntryLocalService.getManyToManyObjectEntries(peopleGroupID, bureautiquesRel.objectRelationshipId, peopleID, true, bureautiquesRel.isReverse(), null, -1, -1 ) /> 
421<#assign bureautiqueFull = []> 
422<#if bureautiques?hasContent> 
423    <#list bureautiques as bureautique> 
424        <#if bureautique.values.media?string != "0" > 
425            <#assign bureautiqueFull = bureautiqueFull + [bureautique]> 
426        </#if> 
427    </#list> 
428</#if> 
429 
430 
431<#assign showMedia = (reproductionsImages?hasContent || reproductionsVideos?hasContent || bureautiqueFull?hasContent)> 
432 
433<#--------------------------------- Collections --------------------------> 
434<#assign authoredCollect = []> 
435<#if functionsFull.imageFixe??> 
436    <#list functionsFull.imageFixe as functionImageFixe> 
437        <#assign authoredImageFixe = objectEntryLocalService.fetchObjectEntry(functionImageFixe.values.r_imageFixeAutheurs_c_imageFixeId?number)> 
438        <#if authoredImageFixe.objectEntryId??> 
439            <#assign reproductionsImageFixeRel = objectRelationshipLocalService.getObjectRelationship(authoredImageFixe.objectDefinitionId, "imageFixeReproductions")> 
440            <#assign reproductionsImageFixe = objectEntryLocalService.getManyToManyObjectEntries(peopleGroupID, reproductionsImageFixeRel.objectRelationshipId, authoredImageFixe.objectEntryId, true, reproductionsImageFixeRel.isReverse(), "", -1, -1 ) /> 
441            <#assign authoredCollect = authoredCollect + [{ 
442            "id": authoredImageFixe.objectEntryId, 
443            "repros": reproductionsImageFixe, 
444            "title": authoredImageFixe.values.titreConcatenation 
445            }]> 
446        </#if> 
447    </#list> 
448</#if> 
449 
450<#if functionsFull.imprime??> 
451    <#list functionsFull.imprime as functionImprime> 
452        <#assign authoredImprime = objectEntryLocalService.fetchObjectEntry(functionImprime.values.r_imprimeAuthors_c_imprimeId?number)> 
453        <#if authoredImprime.objectEntryId??> 
454            <#assign reproductionsImprimeRel = objectRelationshipLocalService.getObjectRelationship(authoredImprime.objectDefinitionId, "reproductionsImprimes")> 
455            <#assign reproductionsImprime = objectEntryLocalService.getManyToManyObjectEntries(peopleGroupID, reproductionsImprimeRel.objectRelationshipId, authoredImprime.objectEntryId, true, reproductionsImprimeRel.isReverse(), "", -1, -1 ) /> 
456            <#assign authoredCollect = authoredCollect + [{ 
457            "id": authoredImprime.objectEntryId, 
458            "repros": reproductionsImprime, 
459            "title": authoredImprime.values.titleComplete 
460            }]> 
461        </#if> 
462    </#list> 
463</#if> 
464 
465<#assign reproductionsArchive = []> 
466<#if functionsFull.archive??> 
467    <#list functionsFull.archive as functionArchive> 
468        <#if functionArchive.values.r_archiveAuthor_c_archiveId != 0> 
469            <#assign authoredArchive = objectEntryLocalService.fetchObjectEntry(functionArchive.values.r_archiveAuthor_c_archiveId?number)> 
470            <#if authoredArchive.objectEntryId??> 
471                <#assign reproductionsArchiveRel = objectRelationshipLocalService.getObjectRelationship(authoredArchive.objectDefinitionId, "archiveReproduction")> 
472                <#assign reproductionsArchive = objectEntryLocalService.getManyToManyObjectEntries(peopleGroupID, reproductionsArchiveRel.objectRelationshipId, authoredArchive.objectEntryId, true, reproductionsArchiveRel.isReverse(), "", -1, -1 ) /> 
473                <#assign authoredCollect = authoredCollect + [{ 
474                "id": authoredArchive.objectEntryId, 
475                "repros": reproductionsArchive, 
476                "title": authoredArchive.values.titleComplete 
477                }]> 
478            </#if> 
479        </#if> 
480    </#list> 
481</#if> 
482 
483<#assign subjectCollect = []> 
484<#assign imageFixeSubjectRel = objectRelationshipLocalService.getObjectRelationship(mainTransiPeople.objectDefinitionId, "imageFixePersonneSujet")> 
485<#assign imageFixeSubjects = objectEntryLocalService.getManyToManyObjectEntries(peopleGroupID, imageFixeSubjectRel.objectRelationshipId, mainTransiPeople.objectEntryId, true, imageFixeSubjectRel.isReverse(), null, -1, -1 ) /> 
486<#list imageFixeSubjects as imageFixeSubject> 
487    <#assign reproductionsImageFixeRel = objectRelationshipLocalService.getObjectRelationship(imageFixeSubject.objectDefinitionId, "imageFixeReproductions")> 
488    <#assign reproductionsImageFixe = objectEntryLocalService.getManyToManyObjectEntries(peopleGroupID, reproductionsImageFixeRel.objectRelationshipId, imageFixeSubject.objectEntryId, true, reproductionsImageFixeRel.isReverse(), "", -1, -1 ) /> 
489    <#assign subjectCollect = subjectCollect + [{ 
490    "id": imageFixeSubject.objectEntryId, 
491    "repros": reproductionsArchive, 
492    "title": imageFixeSubject.values.titreConcatenation 
493    }]> 
494</#list> 
495 
496<#assign imprimeSubjectRel = objectRelationshipLocalService.getObjectRelationship(mainTransiPeople.objectDefinitionId, "contentSubjectPersonne")> 
497<#assign imprimeSubjects = objectEntryLocalService.getManyToManyObjectEntries(peopleGroupID, imprimeSubjectRel.objectRelationshipId, mainTransiPeople.objectEntryId, true, imprimeSubjectRel.isReverse(), null, -1, -1 ) /> 
498<#list imprimeSubjects as imprimeSubject> 
499    <#assign reproductionsImageFixeRel = objectRelationshipLocalService.getObjectRelationship(imprimeSubject.objectDefinitionId, "reproductionsImprimes")> 
500    <#assign reproductionsImageFixe = objectEntryLocalService.getManyToManyObjectEntries(peopleGroupID, reproductionsImageFixeRel.objectRelationshipId, imprimeSubject.objectEntryId, true, reproductionsImageFixeRel.isReverse(), "", -1, -1 ) /> 
501    <#assign subjectCollect = subjectCollect + [{ 
502    "id": imprimeSubject.objectEntryId, 
503    "repros": reproductionsArchive, 
504    "title": imprimeSubject.values.titleComplete 
505    }]> 
506</#list> 
507 
508<#assign archiveSubjectRel = objectRelationshipLocalService.getObjectRelationship(mainTransiPeople.objectDefinitionId, "archiveSubjectPersonne")> 
509<#assign archiveSubjects = objectEntryLocalService.getManyToManyObjectEntries(peopleGroupID, archiveSubjectRel.objectRelationshipId, mainTransiPeople.objectEntryId, true, archiveSubjectRel.isReverse(), null, -1, -1 ) /> 
510<#list archiveSubjects as archiveSubject> 
511    <#assign reproductionsImageFixeRel = objectRelationshipLocalService.getObjectRelationship(archiveSubject.objectDefinitionId, "archiveReproduction")> 
512    <#assign reproductionsImageFixe = objectEntryLocalService.getManyToManyObjectEntries(peopleGroupID, reproductionsImageFixeRel.objectRelationshipId, archiveSubject.objectEntryId, true, reproductionsImageFixeRel.isReverse(), "", -1, -1 ) /> 
513    <#assign subjectCollect = subjectCollect + [{ 
514    "id": archiveSubject.objectEntryId, 
515    "repros": reproductionsArchive, 
516    "title": archiveSubject.values.titleComplete 
517    }]> 
518</#list> 
519 
520<#assign representedCollect = []> 
521<#assign imageFixeSubjectRel = objectRelationshipLocalService.getObjectRelationship(mainTransiPeople.objectDefinitionId, "imageFixePersonRepresented")> 
522<#assign imageFixeSubjects = objectEntryLocalService.getManyToManyObjectEntries(peopleGroupID, imageFixeSubjectRel.objectRelationshipId, mainTransiPeople.objectEntryId, true, imageFixeSubjectRel.isReverse(), null, -1, -1 ) /> 
523<#list imageFixeSubjects as imageFixeSubject> 
524    <#assign reproductionsImageFixeRel = objectRelationshipLocalService.getObjectRelationship(imageFixeSubject.objectDefinitionId, "imageFixeReproductions")> 
525    <#assign reproductionsImageFixe = objectEntryLocalService.getManyToManyObjectEntries(peopleGroupID, reproductionsImageFixeRel.objectRelationshipId, imageFixeSubject.objectEntryId, true, reproductionsImageFixeRel.isReverse(), "", -1, -1 ) /> 
526    <#assign representedCollect = representedCollect + [{ 
527    "id": imageFixeSubject.objectEntryId, 
528    "repros": reproductionsArchive, 
529    "title": imageFixeSubject.values.titreConcatenation 
530    }]> 
531</#list> 
532 
533<#assign imprimeSubjectRel = objectRelationshipLocalService.getObjectRelationship(mainTransiPeople.objectDefinitionId, "contentRepresentedPersonne")> 
534<#assign imprimeSubjects = objectEntryLocalService.getManyToManyObjectEntries(peopleGroupID, imprimeSubjectRel.objectRelationshipId, mainTransiPeople.objectEntryId, true, imprimeSubjectRel.isReverse(), null, -1, -1 ) /> 
535<#list imprimeSubjects as imprimeSubject> 
536    <#assign reproductionsImageFixeRel = objectRelationshipLocalService.getObjectRelationship(imprimeSubject.objectDefinitionId, "reproductionsImprimes")> 
537    <#assign reproductionsImageFixe = objectEntryLocalService.getManyToManyObjectEntries(peopleGroupID, reproductionsImageFixeRel.objectRelationshipId, imprimeSubject.objectEntryId, true, reproductionsImageFixeRel.isReverse(), "", -1, -1 ) /> 
538    <#assign representedCollect = representedCollect + [{ 
539    "id": imprimeSubject.objectEntryId, 
540    "repros": reproductionsArchive, 
541    "title": imprimeSubject.values.titleComplete 
542    }]> 
543</#list> 
544 
545<#assign archiveSubjectRel = objectRelationshipLocalService.getObjectRelationship(mainTransiPeople.objectDefinitionId, "archiveRepresentedPersonne")> 
546<#assign archiveSubjects = objectEntryLocalService.getManyToManyObjectEntries(peopleGroupID, archiveSubjectRel.objectRelationshipId, mainTransiPeople.objectEntryId, true, archiveSubjectRel.isReverse(), null, -1, -1 ) /> 
547<#list archiveSubjects as archiveSubject> 
548    <#assign reproductionsImageFixeRel = objectRelationshipLocalService.getObjectRelationship(archiveSubject.objectDefinitionId, "archiveReproduction")> 
549    <#assign reproductionsImageFixe = objectEntryLocalService.getManyToManyObjectEntries(peopleGroupID, reproductionsImageFixeRel.objectRelationshipId, archiveSubject.objectEntryId, true, reproductionsImageFixeRel.isReverse(), "", -1, -1 ) /> 
550    <#assign representedCollect = representedCollect + [{ 
551    "id": archiveSubject.objectEntryId, 
552    "repros": reproductionsArchive, 
553    "title": archiveSubject.values.titleComplete 
554    }]> 
555</#list> 
556 
557 
558<#assign showCollection = (authoredCollect?hasContent 
559|| subjectCollect?hasContent 
560|| representedCollect?hasContent)> 
561 
562<#assign titleLabels = { 
563"birth":{ 
564"PP": "Naissance", 
565"PM": "Constitution", 
566"G": "Constitution" 
567}, 
568"death":{ 
569"PP": "Décès", 
570"PM": "Dissolution", 
571"G": "Dissolution" 
572}, 
573"pseudo":{ 
574"PP": "Pseudonyme(s)", 
575"PM": "Autres noms", 
576"G": "Autres noms" 
577
578}> 
579 
580<div class="notice notice--personne js-notice"> 
581    <div class="notice-header tw:text-white tw:pt-[3.375rem] tw:pb-[2.5rem] tw:relative tw:overflow-hidden 
582    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 
583    tw:xl:pt-[9.5rem]"> 
584        <div class="page-wrapper tw:z-0 tw:relative"> 
585            <#if request.getParameter("searchContext")?hasContent> 
586                <@garance.noticePagination request.getParameter("searchContext") peopleID /> 
587            </#if> 
588            <div class="tw:flex tw:gap-5 tw:items-start tw:flex-wrap tw:flex-col tw:z-0 
589            tw:md:flex-row tw:lg:flex-nowrap 
590            tw:xl:gap-[2.125rem]"> 
591                <div class="tw:order-2 tw:lg:order-1 tw:flex tw:flex-col tw:w-full tw:text-center 
592                    tw:md:w-fit tw:md:text-left"> 
593                    <#if ObjectField_forename.getData()?hasContent || ObjectField_surname.getData()?hasContent> 
594                        <h1 class="tw:order-1 tw:text-prim tw:mb-[0.625rem]"> 
595                            ${[ObjectField_forename.getData(), ObjectField_prefixesToName.getData(), ObjectField_surname.getData()]?filter(v->v?hasContent)?join(" ")} 
596                        </h1> 
597                    </#if> 
598                    <#if !reproductionsImages?hasContent> 
599                        <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 
600                                            tw:md:mx-0"> 
601                            Personnalité 
602                        </p> 
603                    </#if> 
604                    <#if ObjectField_additionsToName.getData()?hasContent> 
605                        <p class="tw:order-1 tw:font-title tw:text-[1.25rem]/[1.875rem] tw:font-medium"> 
606                            ${ObjectField_additionsToName.getData()} 
607                        </p> 
608                    </#if> 
609                    <div class="tw:order-1 tw:relative tw:pt-5 tw:mt-5 tw:text-left 
610                    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 
611                    tw:md:before:w-[12.8125rem] "> 
612                        <#if (.dataModel["ObjectRelationship#C_Thesaurus#nationality_label"].getData())?hasContent> 
613                            <p class="tw:mb-[0.625rem]"> 
614                                <span class="tw:font-bold">Nationalité :</span>&nbsp; 
615                                ${.dataModel["ObjectRelationship#C_Thesaurus#nationality_label"].getData()} 
616                            </p> 
617                        </#if> 
618                        <#if ObjectField_birthDateStart.getData()?hasContent> 
619                            <p class="tw:mb-[0.625rem]"> 
620                                <span class="tw:font-bold">${titleLabels.birth[peopleEntry.values.personneType]} :</span>&nbsp; 
621                                <#if ObjectField_birthDatePrecision.getData()?hasContent && ObjectField_birthDatePrecision.getData() == "entre">${ObjectField_birthDateStart.getData()?datetime("dd/MM/yyyy HH:mm")?string("dd/MM/yyyy")} - ${ObjectField_birthDateEnd.getData()?datetime("dd/MM/yyyy HH:mm")?string("dd/MM/yyyy")}<#if getterUtil.getBoolean(ObjectField_birthDateEndPresume.getData())>(?)</#if> 
622                                <#else>${ObjectField_birthDateStart.getData()?datetime("dd/MM/yyyy HH:mm")?string("dd/MM/yyyy")}</#if> 
623                                <#assign birthPlace = [.dataModel["ObjectRelationship#C_Thesaurus#birthPlace_label"].getData(), ObjectField_birthNotes.getData()]?filter(v->v?hasContent)> 
624                                <#if birthPlace?hasContent> - ${birthPlace?join(" - ")}</#if> 
625                            </p> 
626                        </#if> 
627                        <#if ObjectField_deathDateStart.getData()?hasContent> 
628                            <p class="tw:mb-[0.625rem]"> 
629                                <span class="tw:font-bold">${titleLabels.death[peopleEntry.values.personneType]} :</span>&nbsp; 
630                                <#if ObjectField_deathDatePrecision.getData()?hasContent && ObjectField_deathDatePrecision.getData() == "entre">${ObjectField_deathDateStart.getData()?datetime("dd/MM/yyyy HH:mm")?string("dd/MM/yyyy")} - ${ObjectField_deathDateEnd.getData()?datetime("dd/MM/yyyy HH:mm")?string("dd/MM/yyyy")}<#if getterUtil.getBoolean(ObjectField_deathDateEndPresume.getData())>(?)</#if> 
631                                <#else>${ObjectField_deathDateStart.getData()?datetime("dd/MM/yyyy HH:mm")?string("dd/MM/yyyy")}</#if> 
632                                <#assign deathPlace = [.dataModel["ObjectRelationship#C_Thesaurus#deathPlace_label"].getData(), ObjectField_deathNotes.getData()]?filter(v->v?hasContent)> 
633                                <#if deathPlace?hasContent> - ${deathPlace?join(" - ")}</#if> 
634                            </p> 
635                        </#if> 
636                    </div> 
637                </div> 
638                <#if reproductionsImages?hasContent> 
639                    <div class="tw:order-1 tw:lg:order-0 tw:w-full 
640                                    tw:md:w-fit"> 
641                        <div class="tw:m-auto tw:mx-auto tw:max-w-full tw:w-[15.625rem] tw:relative 
642                                        tw:md:mx-0"> 
643                            <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"> 
644                                Personnalité 
645                            </p> 
646                            <#assign thumbnail = reproductionsImages?first> 
647                            <#assign fileEntryDesktop = dlAppLocalService.getFileEntry(thumbnail.values.media?number) /> 
648                            <#assign thumbnailURL = dlURLHelper.getPreviewURL(fileEntryDesktop, fileEntryDesktop.getFileVersion(), 
649                            null, "", !fileEntryDesktop.getFileVersion().equals(fileEntryDesktop.getLatestFileVersion()), true) /> 
650 
651                            <figure class="tw:w-full"> 
652                                <source media="(min-width: 480px)" 
653                                        srcset="${thumbnailURL}"/> 
654                                <img class="tw:rounded-xs tw:object-cover tw:size-full" alt="" 
655                                     src="${thumbnailURL}"/> 
656                                <#if thumbnail.values.reproductionNotes?hasContent || thumbnail.values.reproductionCopyright?hasContent> 
657                                    <figcaption class="tw:ml-[0.625rem] tw:opacity-70 tw:text-[0.75rem]/[1rem] tw:font-medium tw:mt-[0.3125rem] 
658                                                    tw:md:ml-0"> 
659                                        ${[thumbnail.values.reproductionNotes, thumbnail.values.reproductionCopyright]?filter(v->v?hasContent)?join(" - ")} 
660                                    </figcaption> 
661                                </#if> 
662                            </figure> 
663                        </div> 
664                    </div> 
665                </#if> 
666                <@garance.noticeTools /> 
667            </div> 
668        </div> 
669    </div> 
670    <div class="notice-content"> 
671 
672        <div class="tw:overflow-y-clip tw:py-10"> 
673            <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! 
674                tw:lg:top-[6.875rem] tw:lg:h-0 tw:lg:overflow-visible tw:lg:sticky 
675                tw:xl:top-[8.85rem]"> 
676                <nav class="tw:bg-beige tw:lg:w-[14.25rem]" role="navigation" aria-labelledby="summary-title"> 
677                    <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] 
678                        tw:max-lg:px-[calc(5rem/2)] 
679                        tw:lg:hidden" aria-label="Ouvrir/Fermer le sommaire" aria-expanded="false" 
680                            aria-controls="summary-list"> 
681                        <span>Sommaire</span> 
682                        <span class="icon-chevron-down tw:text-prim tw:text-base tw:transition-all tw:outline-offset-[-0.125rem] 
683                        tw:group-[&.open]:rotate-180" aria-hidden="true"></span> 
684                    </button> 
685                    <div id="summary-list" class="tw:overflow-y-auto tw:bg-white tw:transition-all tw:max-sm:px-[calc(2.5rem/2)] 
686                    tw:max-lg:max-h-0 tw:max-lg:px-[calc(5rem/2)] tw:max-lg:max-w-full 
687                    tw:group-[&.open]:max-h-[calc(100vh-(4.375rem+3.125rem))] 
688                    tw:lg:max-h-[calc(100vh-12.5rem)] tw:lg:bg-transparent" tabindex="-1"> 
689                        <ul class="tw:border-sommaire-border tw:border-l-[0.125rem] tw:my-2"> 
690                            <#if showIdentity> 
691                                <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]"> 
692                                    <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] 
693                                    tw:[&.is-active]:border-prim" tabindex="-1"> 
694                                        <span>${summary["IdentitePersonne"]?hasContent?then(summary["IdentitePersonne"], "Identité")}</span> 
695                                    </a> 
696                                </li> 
697                            </#if> 
698                            <#if showBiographie> 
699                                <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]"> 
700                                    <a href="#biographie" 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] 
701                                tw:[&.is-active]:border-prim" tabindex="-1"> 
702                                        <span>${summary["BiographiePersonne"]?hasContent?then(summary["BiographiePersonne"], "Biographie")}</span> 
703                                    </a> 
704                                </li> 
705                            </#if> 
706                            <#if peopleEntry.values.personneType == "G" && filialeFull?hasContent> 
707                                <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]"> 
708                                    <a href="#groupe" 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] 
709                                tw:[&.is-active]:border-prim" tabindex="-1"> 
710                                        <span>${summary["MembreDuGroupePersonne"]?hasContent?then(summary["MembreDuGroupePersonne"], "Membre du groupe")}</span> 
711                                    </a> 
712                                </li> 
713                            </#if> 
714                            <#if showFilmo> 
715                                <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]"> 
716                                    <a href="#filmographie" 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] 
717                                tw:[&.is-active]:border-prim" tabindex="-1"> 
718                                        <span>${summary["FilmographiePersonne"]?hasContent?then(summary["FilmographiePersonne"], "Filmographie")}</span> 
719                                    </a> 
720                                </li> 
721                            </#if> 
722                            <#if showBibliographie> 
723                                <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]"> 
724                                    <a href="#bibliographie" 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] 
725                                tw:[&.is-active]:border-prim" tabindex="-1"> 
726                                        <span>${summary["BibliographieEditorialePersonne"]?hasContent?then(summary["BibliographieEditorialePersonne"], "Bibliographie éditoriale")}</span> 
727                                    </a> 
728                                </li> 
729                            </#if> 
730                            <#if showAwards> 
731                                <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]"> 
732                                    <a href="#recompenses" 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] 
733                                    tw:[&.is-active]:border-prim" tabindex="-1"> 
734                                        <span>${summary["RecompensesEtNominationsPersonne"]?hasContent?then(summary["RecompensesEtNominationsPersonne"], "Récompenses et nominations")}</span> 
735                                    </a> 
736                                </li> 
737                            </#if> 
738                            <#if showFamille> 
739                                <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]"> 
740                                    <a href="#famille" 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] 
741                                    tw:[&.is-active]:border-prim" tabindex="-1"> 
742                                        <span>${summary["LiensFamiliauxPersonne"]?hasContent?then(summary["LiensFamiliauxPersonne"], "Liens familiaux")}</span> 
743                                    </a> 
744                                </li> 
745                            </#if> 
746                            <#if showProfessional> 
747                                <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]"> 
748                                    <a href="#pro" 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] 
749                                    tw:[&.is-active]:border-prim" tabindex="-1"> 
750                                        <span>${summary["RelationsProfessionnellesPersonne"]?hasContent?then(summary["RelationsProfessionnellesPersonne"], "Relations professionnelles")}</span> 
751                                    </a> 
752                                </li> 
753                            </#if> 
754                            <#if showMedia> 
755                                <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]"> 
756                                    <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] 
757                                    tw:[&.is-active]:border-prim" tabindex="-1"> 
758                                        <span>${summary["RessourcesMediaPersonne"]?hasContent?then(summary["RessourcesMediaPersonne"], "Ressources média")}</span> 
759                                    </a> 
760                                </li> 
761                            </#if> 
762                            <#if showCollection> 
763                                <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]"> 
764                                    <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] 
765                                tw:[&.is-active]:border-prim" tabindex="-1"> 
766                                        <span>${summary["CollectionsLieesPersonne"]?hasContent?then(summary["CollectionsLieesPersonne"], "Collections liées")}</span> 
767                                    </a> 
768                                </li> 
769                            </#if> 
770                        </ul> 
771                    </div> 
772                </nav> 
773            </div> 
774 
775            <#if showIdentity> 
776                <div id="identite" class="js-summary-content" tabindex="-1"></div> 
777                <div class="summary-content-wrapper page-wrapper tw:lg:pl-[16.75rem] tw:pb-10"> 
778                    <h2 class="tw:text-prim tw:mb-5">${summary["IdentitePersonne"]?hasContent?then(summary["IdentitePersonne"], "Identité")}</h2> 
779                    <#if ObjectField_typeDePersonneMorale.getData()?hasContent> 
780                        <p class="tw:flex tw:max-sm:flex-col tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]"> 
781                            <span class="tw:font-bold tw:shrink-0">Type de personne morale :</span> 
782                            <span>${ObjectField_typeDePersonneMorale.getData()}</span> 
783                        </p> 
784                    </#if> 
785 
786                    <#if ObjectField_denominationSociale.getData()?hasContent> 
787                        <p class="tw:flex tw:max-sm:flex-col tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]"> 
788                            <span class="tw:font-bold tw:shrink-0">Dénomination sociale :</span> 
789                            <span>${ObjectField_denominationSociale.getData()}</span> 
790                        </p> 
791                    </#if> 
792 
793                    <#if ObjectField_gender.getData()?hasContent> 
794                        <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]"> 
795                            <span class="tw:font-bold tw:shrink-0">Genre :</span> 
796                            <span>${ObjectField_gender.getData()}</span> 
797                        </p> 
798                    </#if> 
799 
800                    <#if .dataModel["ObjectRelationship#C_Thesaurus#nationalityNaturalisation_label"].getData()?hasContent> 
801                        <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]"> 
802                            <span class="tw:font-bold tw:shrink-0">Naturalisation :</span> 
803                            <span>${.dataModel["ObjectRelationship#C_Thesaurus#nationalityNaturalisation_label"].getData()}</span> 
804                        </p> 
805                    </#if> 
806 
807                    <#if pseudoFull?hasContent> 
808                        <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]"> 
809                            <p id="identite-pseudo" 
810                               class="tw:leading-[1.375rem] tw:font-bold tw:shrink-0">${titleLabels.pseudo[peopleEntry.values.personneType]} 
811                                :</p> 
812                            <ul aria-labelledby="identite-pseudo"> 
813                                <#list pseudoFull as pseudo> 
814                                    <li>${garance.getCleanFullName(pseudo.values.fullName)}</li> 
815                                </#list> 
816                            </ul> 
817                        </div> 
818                    </#if> 
819 
820                    <#if translitFull?hasContent> 
821                        <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]"> 
822                            <p id="identite-pseudo" class="tw:leading-[1.375rem] tw:font-bold tw:shrink-0"> 
823                                Translittération 
824                                :</p> 
825                            <ul aria-labelledby="identite-pseudo"> 
826                                <#list translitFull as translit> 
827                                    <li>${garance.getCleanFullName(translit.values.fullName)}</li> 
828                                </#list> 
829                            </ul> 
830                        </div> 
831                    </#if> 
832 
833                    <#if equiFull?hasContent> 
834                        <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]"> 
835                            <p id="identite-pseudo" class="tw:leading-[1.375rem] tw:font-bold tw:shrink-0">État civil 
836                                :</p> 
837                            <ul aria-labelledby="identite-pseudo"> 
838                                <#list equiFull as equi> 
839                                    <li>${garance.getCleanFullName(equi.values.fullName)}</li> 
840                                </#list> 
841                            </ul> 
842                        </div> 
843                    </#if> 
844 
845                    <#if .dataModel["ObjectRelationship#C_Thesaurus#profession_label"].getData()?hasContent> 
846                        <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]"> 
847                            <span class="tw:font-bold tw:shrink-0">Métier :</span> 
848                            <span>${.dataModel["ObjectRelationship#C_Thesaurus#profession_label"].getData()}</span> 
849                        </p> 
850                    </#if> 
851 
852                    <#if functionsFull?hasContent> 
853                        <#assign functionsCollect = []> 
854                        <#if functionsFull.film??> 
855                            <#assign functionsCollect = functionsCollect + functionsFull.film > 
856                        </#if> 
857                        <#if functionsFull.imprime??> 
858                            <#list functionsFull.imprime as imprimeWork> 
859                                <#if imprimeWork.values.r_imprimeAuthorRole_c_thesaurusId != 0> 
860                                    <#assign functionsCollect = functionsCollect + [garance.getThesaurusByID(imprimeWork.values.r_imprimeAuthorRole_c_thesaurusId)]> 
861                                </#if> 
862                            </#list> 
863                        </#if> 
864                        <#if functionsFull.imageFixe??> 
865                            <#list functionsFull.imageFixe as imageFixeWork> 
866                                <#if imageFixeWork.values.castCreditType?hasContent> 
867                                    <#assign functionsCollect = functionsCollect + [garance.getPicklistItemName(imageFixeWork.values.castCreditType, "picklistImprimeCastCreditType")]> 
868                                </#if> 
869                            </#list> 
870                        </#if> 
871                        <#if functionsFull.archive??> 
872                            <#list functionsFull.archive as archiveWork> 
873                                <#if archiveWork.values.psoterCastFonction?hasContent> 
874                                    <#assign functionsCollect = functionsCollect + [garance.getPicklistItemName(archiveWork.values.psoterCastFonction, "picklistArchiveAuthorFunction")]> 
875                                </#if> 
876                            </#list> 
877                        </#if> 
878                        <#assign cleanFunctionsCollection = []> 
879                        <#list functionsCollect as funct> 
880                            <#if !(cleanFunctionsCollection?seqContains(funct))> 
881                                <#assign cleanFunctionsCollection = cleanFunctionsCollection + [funct]> 
882                            </#if> 
883                        </#list> 
884                        <#if cleanFunctionsCollection?hasContent> 
885                            <#assign cleanFunctionsCollection = cleanFunctionsCollection?map(f -> (f == "Réalisation")?then("Réalisateur", f))> 
886                            <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]"> 
887                                <span class="tw:font-bold tw:shrink-0">Fonctions :</span> 
888                                <span>${cleanFunctionsCollection?join(", ")}</span> 
889                            </p> 
890                        </#if> 
891                    </#if> 
892                </div> 
893            </#if> 
894 
895            <#if peopleEntry.values.personneType == "G" && filialeFull?hasContent> 
896                <div id="groupe" class="js-summary-content" tabindex="-1"></div> 
897                <div class="summary-content-wrapper page-wrapper tw:lg:pl-[16.75rem] tw:py-10 
898                    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"> 
899                    <h2 id="groupe-tl" 
900                        class="tw:text-prim tw:mb-5">${summary["MembreDuGroupePersonne"]?hasContent?then(summary["MembreDuGroupePersonne"], "Membre du groupe")}</h2> 
901                    <#if filialeFull?hasContent> 
902                        <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]"> 
903                            <ul aria-labelledby="groupe-tl"> 
904                                <#list filialeFull as filiale> 
905                                    <li> 
906                                        <#if filiale.personne.id?hasContent> 
907                                            <a href="/l/${filiale.personne.id}${searchUrl}" 
908                                               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]"> 
909                                                ${filiale.personne.name} 
910                                            </a> 
911                                        <#else> 
912                                            ${filiale.personne.name} 
913                                        </#if><#if filiale.dateStart?hasContent> (${filiale.dateStart?string("yyyy")}<#if filiale.dateEnd?hasContent> - ${filiale.dateEnd?string("yyyy")}</#if>)</#if><#if filiale.notes?hasContent> - ${filiale.notes}</#if> 
914                                    </li> 
915                                </#list> 
916                            </ul> 
917                        </div> 
918                    </#if> 
919                </div> 
920            </#if> 
921 
922            <#if showBiographie> 
923                <div id="biographie" class="js-summary-content" tabindex="-1"></div> 
924                <div class="summary-content-wrapper page-wrapper tw:lg:pl-[16.75rem] tw:pb-10"> 
925                    <div class="tw:bg-white tw:p-10 tw:border-l-[0.25rem] tw:border-solid tw:border-prim tw:mt-5"> 
926                        <h3 class="tw:mb-5 tw:text-prim">${summary["BiographiePersonne"]?hasContent?then(summary["BiographiePersonne"], "Biographie")}</h3> 
927                        <#if ObjectField_schoolStyle.getData()?hasContent> 
928                            <div class="tw:mb-[0.625rem]"> 
929                                <div class="js-read-more" data-clamp-line="8" data-line-height="1.75"> 
930                                    <div class="wysiwyg--notice"> 
931                                        <h4 class="tw:font-txt tw:text-notice tw:font-bold tw:leading-[1.75rem]"> 
932                                            Formation :</h4> 
933                                        ${ObjectField_schoolStyle.getData()} 
934                                    </div> 
935                                </div> 
936                                <button type="button" 
937                                        class="tw:hidden tw:items-center tw:leading-[1.75rem] tw:mt-[0.625rem] tw:group tw:gap-[0.3125rem] 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]"> 
938                                    <span>Lire plus</span> 
939                                    <span class="icon-chevron-down tw:inline-block tw:text-prim tw:text-base tw:transition-all tw:text-[0.875rem] tw:rotate-0 
940                                    tw:group-hover:rotate-180 tw:group-data-[expanded=true]:rotate-180" aria-hidden="true"></span> 
941                                </button> 
942                            </div> 
943                        </#if> 
944                        <#if ObjectField_occupation.getData()?hasContent> 
945                            <div class="tw:mb-[0.625rem]"> 
946                                <div class="js-read-more" data-clamp-line="8" data-line-height="1.75"> 
947                                    <div class="wysiwyg--notice"> 
948                                        <h4 class="tw:font-txt tw:text-notice tw:font-bold tw:leading-[1.75rem]"> 
949                                            Carrière :</h4> 
950                                        ${ObjectField_occupation.getData()} 
951                                    </div> 
952                                </div> 
953                                <button type="button" 
954                                        class="tw:hidden tw:items-center tw:leading-[1.75rem] tw:mt-[0.625rem] tw:group tw:gap-[0.3125rem] 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]"> 
955                                    <span>Lire plus</span> 
956                                    <span class="icon-chevron-down tw:inline-block tw:text-prim tw:text-base tw:transition-all tw:text-[0.875rem] tw:rotate-0 
957                                    tw:group-hover:rotate-180 tw:group-data-[expanded=true]:rotate-180" aria-hidden="true"></span> 
958                                </button> 
959                            </div> 
960                        </#if> 
961                        <#if ObjectField_otherActivities.getData()?hasContent> 
962                            <div> 
963                                <div class="js-read-more" data-clamp-line="8" data-line-height="1.75"> 
964                                    <div class="wysiwyg--notice"> 
965                                        <h4 class="tw:font-txt tw:text-notice tw:font-bold tw:leading-[1.75rem]"> 
966                                            Autres activités :</h4> 
967                                        ${ObjectField_otherActivities.getData()} 
968                                    </div> 
969                                </div> 
970                                <button type="button" 
971                                        class="tw:hidden tw:items-center tw:leading-[1.75rem] tw:mt-[0.625rem] tw:group tw:gap-[0.3125rem] 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]"> 
972                                    <span>Lire plus</span> 
973                                    <span class="icon-chevron-down tw:inline-block tw:text-prim tw:text-base tw:transition-all tw:text-[0.875rem] tw:rotate-0 
974                                        tw:group-hover:rotate-180 tw:group-data-[expanded=true]:rotate-180" aria-hidden="true"></span> 
975                                </button> 
976                            </div> 
977                        </#if> 
978                    </div> 
979                </div> 
980            </#if> 
981 
982            <#if showFilmo> 
983                <div id="filmographie" class="js-summary-content" tabindex="-1"></div> 
984                <div class="summary-content-wrapper page-wrapper tw:lg:pl-[16.75rem] tw:py-10 
985                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"> 
986                    <h2 class="tw:text-prim tw:mb-5">${summary["FilmographiePersonne"]?hasContent?then(summary["FilmographiePersonne"], "Filmographie")}</h2> 
987 
988                    <div class="tw:flex tw:gap-5"> 
989                        <#if filmoShort?hasContent> 
990                            <#assign filmoShortSorted = garance.sortFilmo(filmoShort) /> 
991                            <div class="tw:bg-white tw:p-10 tw:border-l-[0.25rem] tw:border-solid tw:border-prim tw:mt-5 tw:w-full"> 
992                                <h3 class="tw:mb-5">Courts métrages</h3> 
993 
994                                <#list filmoShortSorted as section> 
995                                    <div class="js-list-expand <#if !section?isLast>tw:mb-10</#if>"> 
996                                        <p class="tw:leading-[1.625rem] tw:font-bold" 
997                                           id="long-${section.fonction}">${section.fonction}</p> 
998                                        <ul aria-labelledby="long-${section.fonction}"> 
999                                            <#list section.items?sortBy("year") as item> 
1000                                                <#assign filmWorkRel = objectRelationshipLocalService.getObjectRelationship(item.film.objectDefinitionId, "filmWork")> 
1001                                                <#assign filmWorks = objectEntryLocalService.getOneToManyObjectEntries(peopleGroupID, filmWorkRel.objectRelationshipId, item.film.objectEntryId, true, null, -1, -1 ) /> 
1002                                                <li class="tw:leading-[1.625rem] <#if (item?index > 4)>tw:hidden</#if>"> 
1003                                                    <#if item.year == 0>?<#else>${item.year}</#if> 
1004                                                    - <#if filmWorks?hasContent> 
1005                                                        <a href="/l/${(filmWorks?first).objectEntryId}${searchUrl}" 
1006                                                           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]"> 
1007                                                            ${item.film.values.titleComplete}</a> 
1008                                                    <#else>${item.film.values.titleComplete} 
1009                                                    </#if> 
1010                                                </li> 
1011                                            </#list> 
1012                                        </ul> 
1013                                        <#if (section.items?size > 5)> 
1014                                            <button type="button" 
1015                                                    class="js-expand tw:items-center tw:leading-[1.75rem] tw:mt-[0.3125rem] 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]"> 
1016                                                <span>Voir plus</span> 
1017                                                <span class="icon-chevron-down tw:inline-block tw:text-prim tw:text-base tw:transition-all tw:text-[0.875rem] tw:rotate-0 
1018                                        tw:group-hover:rotate-180 tw:group-data-[expanded=true]:rotate-180" aria-hidden="true"></span> 
1019                                            </button> 
1020                                        </#if> 
1021                                    </div> 
1022                                </#list> 
1023                            </div> 
1024                        </#if> 
1025 
1026 
1027                        <#if filmoLong?hasContent> 
1028                            <#assign filmoLongSorted = garance.sortFilmo(filmoLong) /> 
1029                            <div class="tw:bg-white tw:p-10 tw:border-l-[0.25rem] tw:border-solid tw:border-prim tw:mt-5 tw:w-full"> 
1030                                <h3 class="tw:mb-5">Longs métrages</h3> 
1031 
1032                                <#list filmoLongSorted as section> 
1033                                    <div class="js-list-expand <#if !section?isLast>tw:mb-10</#if>"> 
1034                                        <p class="tw:leading-[1.625rem] tw:font-bold" 
1035                                           id="long-${section.fonction}">${section.fonction}</p> 
1036                                        <ul aria-labelledby="long-${section.fonction}"> 
1037                                            <#list section.items?sortBy("year") as item> 
1038                                                <#assign filmWorkRel = objectRelationshipLocalService.getObjectRelationship(item.film.objectDefinitionId, "filmWork")> 
1039                                                <#assign filmWorks = objectEntryLocalService.getOneToManyObjectEntries(peopleGroupID, filmWorkRel.objectRelationshipId, item.film.objectEntryId, true, null, -1, -1 ) /> 
1040                                                <li class="tw:leading-[1.625rem] <#if (item?index > 4)>tw:hidden</#if>"> 
1041                                                    <#if item.year == 0>?<#else>${item.year}</#if> 
1042                                                    - <#if filmWorks?hasContent> 
1043                                                        <a href="/l/${(filmWorks?first).objectEntryId}${searchUrl}" 
1044                                                           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]"> 
1045                                                            ${item.film.values.titleComplete}</a> 
1046                                                    <#else>${item.film.values.titleComplete} 
1047                                                    </#if> 
1048                                                </li> 
1049                                            </#list> 
1050                                        </ul> 
1051                                        <#if (section.items?size > 5)> 
1052                                            <button type="button" 
1053                                                    class="js-expand tw:items-center tw:leading-[1.75rem] tw:mt-[0.3125rem] 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]"> 
1054                                                <span>Voir plus</span> 
1055                                                <span class="icon-chevron-down tw:inline-block tw:text-prim tw:text-base tw:transition-all tw:text-[0.875rem] tw:rotate-0 
1056                                        tw:group-hover:rotate-180 tw:group-data-[expanded=true]:rotate-180" aria-hidden="true"></span> 
1057                                            </button> 
1058                                        </#if> 
1059                                    </div> 
1060                                </#list> 
1061                            </div> 
1062                        </#if> 
1063                    </div> 
1064                </div> 
1065            </#if> 
1066 
1067            <#if showBibliographie> 
1068                <div id="bibliographie" class="js-summary-content" tabindex="-1"></div> 
1069                <div class="summary-content-wrapper page-wrapper tw:lg:pl-[16.75rem] tw:py-10 
1070                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"> 
1071                    <h2 id="biblio" 
1072                        class="tw:text-prim tw:mb-5">${summary["BibliographieEditorialePersonne"]?hasContent?then(summary["BibliographieEditorialePersonne"], "Bibliographie éditoriale")}</h2> 
1073                    <div class="wysiwyg js-list-expand"> 
1074                        <ul aria-labelledby="biblio"> 
1075                            <#list digitalRefs as digitalRef> 
1076                                <li <#if (digitalRef?index > 4)>class="tw:hidden"</#if>><#if digitalRef.values.bibliographyType?hasContent>${garance.getPicklistItemName(digitalRef.values.bibliographyType, "picklistBibliographieReferenceType")} : </#if>${digitalRef.values.digitalReferenceDescription}</li> 
1077                            </#list> 
1078                        </ul> 
1079                        <#if (digitalRefs?size > 5)> 
1080                            <button type="button" 
1081                                    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]"> 
1082                                <span>Voir plus</span> 
1083                                <span class="icon-chevron-down tw:inline-block tw:text-prim tw:text-base tw:transition-all tw:text-[0.875rem] tw:rotate-0 
1084                                        tw:group-hover:rotate-180 tw:group-data-[expanded=true]:rotate-180" aria-hidden="true"></span> 
1085                            </button> 
1086                        </#if> 
1087                    </div> 
1088                </div> 
1089            </#if> 
1090 
1091            <#if showAwards> 
1092                <div id="recompenses" class="js-summary-content" tabindex="-1"></div> 
1093                <div class="summary-content-wrapper page-wrapper tw:lg:pl-[16.75rem] tw:py-10 
1094                    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"> 
1095                    <h2 id="awards" 
1096                        class="tw:text-prim tw:mb-5">${summary["RecompensesEtNominationsPersonne"]?hasContent?then(summary["RecompensesEtNominationsPersonne"], "Récompenses et nominations")}</h2> 
1097                    <div class="wysiwyg js-list-expand"> 
1098                        <ul aria-labelledby="awards"> 
1099                            <#list awardsFull as award> 
1100                                <li class="tw:font-semibold! <#if (award?index > 4)>tw:hidden</#if>">${award?filter(a -> a?hasContent)?join(" - ")}</li> 
1101                            </#list> 
1102                        </ul> 
1103                        <#if (awardsFull?size > 5)> 
1104                            <button type="button" 
1105                                    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]"> 
1106                                <span>Voir plus</span> 
1107                                <span class="icon-chevron-down tw:inline-block tw:text-prim tw:text-base tw:transition-all tw:text-[0.875rem] tw:rotate-0 
1108                                        tw:group-hover:rotate-180 tw:group-data-[expanded=true]:rotate-180" aria-hidden="true"></span> 
1109                            </button> 
1110                        </#if> 
1111                    </div> 
1112                </div> 
1113            </#if> 
1114 
1115            <#if showFamille> 
1116                <div id="famille" class="js-summary-content" tabindex="-1"></div> 
1117                <div class="summary-content-wrapper page-wrapper tw:lg:pl-[16.75rem] tw:py-10 
1118                    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"> 
1119                    <h2 id="awards" 
1120                        class="tw:text-prim tw:mb-5">${summary["LiensFamiliauxPersonne"]?hasContent?then(summary["LiensFamiliauxPersonne"], "Liens familiaux")}</h2> 
1121                    <#if relatedPersonneParents?hasContent> 
1122                        <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]"> 
1123                            <p id="famille-parent" class="tw:leading-[1.375rem] tw:font-bold tw:shrink-0">Parent de 
1124                                :</p> 
1125                            <ul aria-labelledby="famille-parent"> 
1126                                <#list relatedPersonneParents as relatedPersonneParent> 
1127                                    <li> 
1128                                        <#if relatedPersonneParent.personne.id?hasContent> 
1129                                            <a href="/l/${relatedPersonneParent.personne.id}${searchUrl}" 
1130                                               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]"> 
1131                                                ${relatedPersonneParent.personne.name} 
1132                                            </a> 
1133                                        <#else> 
1134                                            ${relatedPersonneParent.personne.name} 
1135                                        </#if><#if relatedPersonneParent.notes?hasContent> - ${relatedPersonneParent.notes}</#if> 
1136                                    </li> 
1137                                </#list> 
1138                            </ul> 
1139                        </div> 
1140                    </#if> 
1141                    <#if relatedPersonneChildren?hasContent> 
1142                        <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]"> 
1143                            <p id="famille-enfant" class="tw:leading-[1.375rem] tw:font-bold tw:shrink-0">Enfant de 
1144                                :</p> 
1145                            <ul aria-labelledby="famille-enfant"> 
1146                                <#list relatedPersonneChildren as relatedPersonneChild> 
1147                                    <li> 
1148                                        <#if relatedPersonneChild.personne.id?hasContent> 
1149                                            <a href="/l/${relatedPersonneChild.personne.id}${searchUrl}" 
1150                                               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]"> 
1151                                                ${relatedPersonneChild.personne.name} 
1152                                            </a> 
1153                                        <#else> 
1154                                            ${relatedPersonneChild.personne.name} 
1155                                        </#if><#if relatedPersonneChild.notes?hasContent> - ${relatedPersonneChild.notes}</#if> 
1156                                    </li> 
1157                                </#list> 
1158                            </ul> 
1159                        </div> 
1160                    </#if> 
1161                    <#if relatedPPFull?hasContent> 
1162                        <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]"> 
1163                            <p id="famille-mariage" class="tw:leading-[1.375rem] tw:font-bold tw:shrink-0">Marié(e) à 
1164                                :</p> 
1165                            <ul aria-labelledby="famille-mariage"> 
1166                                <#list relatedPPFull as relatedPP> 
1167                                    <li> 
1168                                        <#if relatedPP.personne.id?hasContent> 
1169                                            <a href="/l/${relatedPP.personne.id}${searchUrl}" 
1170                                               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]"> 
1171                                                ${relatedPP.personne.name} 
1172                                            </a> 
1173                                        <#else> 
1174                                            ${relatedPP.personne.name} 
1175                                        </#if><#if relatedPP.notes?hasContent> - ${relatedPP.notes}</#if> 
1176                                    </li> 
1177                                </#list> 
1178                            </ul> 
1179                        </div> 
1180                    </#if> 
1181                    <#if relationFiliationFull?hasContent> 
1182                        <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]"> 
1183                            <p id="famille-filiation" class="tw:leading-[1.375rem] tw:font-bold tw:shrink-0">Frère/Sœur 
1184                                de 
1185                                :</p> 
1186                            <ul aria-labelledby="famille-filiation"> 
1187                                <#list relationFiliationFull as relationFiliation> 
1188                                    <li> 
1189                                        <#if relationFiliation.personne.id?hasContent> 
1190                                            <a href="/l/${relationFiliation.personne.id}${searchUrl}" 
1191                                               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]"> 
1192                                                ${relationFiliation.personne.name} 
1193                                            </a> 
1194                                        <#else> 
1195                                            ${relationFiliation.personne.name} 
1196                                        </#if><#if relationFiliation.notes?hasContent> - ${relationFiliation.notes}</#if> 
1197                                    </li> 
1198                                </#list> 
1199                            </ul> 
1200                        </div> 
1201                    </#if> 
1202                </div> 
1203            </#if> 
1204 
1205            <#if showProfessional> 
1206                <div id="pro" class="js-summary-content" tabindex="-1"></div> 
1207                <div class="summary-content-wrapper page-wrapper tw:lg:pl-[16.75rem] tw:py-10 
1208                    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"> 
1209                    <h2 id="awards" 
1210                        class="tw:text-prim tw:mb-5">${summary["RelationsProfessionnellesPersonne"]?hasContent?then(summary["RelationsProfessionnellesPersonne"], "Relations professionnelles")}</h2> 
1211                    <#if peopleEntry.values.personneType == "PP"> 
1212                        <#if relationGFull?hasContent> 
1213                            <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]"> 
1214                                <p id="pro-fondation" class="tw:leading-[1.375rem] tw:font-bold tw:shrink-0">Fondateur 
1215                                    de 
1216                                    :</p> 
1217                                <ul aria-labelledby="pro-fondation"> 
1218                                    <#list relationGFull as relationG> 
1219                                        <li> 
1220                                            <#if relationG.personne.id?hasContent> 
1221                                                <a href="/l/${relationG.personne.id}${searchUrl}" 
1222                                                   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]"> 
1223                                                    ${relationG.personne.name} 
1224                                                </a> 
1225                                            <#else> 
1226                                                ${relationG.personne.name} 
1227                                            </#if><#if relationG.notes?hasContent> - ${relationG.notes}</#if> 
1228                                        </li> 
1229                                    </#list> 
1230                                </ul> 
1231                            </div> 
1232                        </#if> 
1233                        <#if relationPMFull?hasContent> 
1234                            <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]"> 
1235                                <p id="pro-entreprise" class="tw:leading-[1.375rem] tw:font-bold tw:shrink-0">A 
1236                                    travaillé 
1237                                    pour 
1238                                    :</p> 
1239                                <ul aria-labelledby="pro-entreprise"> 
1240                                    <#list relationPMFull as relationPM> 
1241                                        <li> 
1242                                            <#if relationPM.personne.id?hasContent> 
1243                                                <a href="/l/${relationPM.personne.id}${searchUrl}" 
1244                                                   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]"> 
1245                                                    ${relationPM.personne.name} 
1246                                                </a> 
1247                                            <#else> 
1248                                                ${relationPM.personne.name} 
1249                                            </#if><#if relationPM.notes?hasContent> - ${relationPM.notes}</#if> 
1250                                        </li> 
1251                                    </#list> 
1252                                </ul> 
1253                            </div> 
1254                        </#if> 
1255                        <#if partOfFull?hasContent> 
1256                            <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]"> 
1257                                <p id="pro-groupe" class="tw:leading-[1.375rem] tw:font-bold tw:shrink-0">Fait partie 
1258                                    du groupe 
1259                                    :</p> 
1260                                <ul aria-labelledby="pro-groupe"> 
1261                                    <#list partOfFull as partOf> 
1262                                        <li> 
1263                                            <#if partOf.personne.id?hasContent> 
1264                                                <a href="/l/${partOf.personne.id}${searchUrl}" 
1265                                                   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]"> 
1266                                                    ${partOf.personne.name} 
1267                                                </a> 
1268                                            <#else> 
1269                                                ${partOf.personne.name} 
1270                                            </#if><#if partOf.notes?hasContent> - ${partOf.notes}</#if> 
1271                                        </li> 
1272                                    </#list> 
1273                                </ul> 
1274                            </div> 
1275                        </#if> 
1276                    <#elseIf peopleEntry.values.personneType == "PM"> 
1277                        <#if groupeGenFull?hasContent> 
1278                            <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]"> 
1279                                <p id="pro-groupe" class="tw:leading-[1.375rem] tw:font-bold tw:shrink-0">Type de 
1280                                    relation :</p> 
1281                                <ul aria-labelledby="pro-groupe"> 
1282                                    <#list groupeGenFull as groupGen> 
1283                                        <li><#if groupGen.type?hasContent>${garance.getPicklistItemName(groupGen.type, "picklistGroupRelationType")} </#if> 
1284                                            <#if groupGen.personne.id?hasContent> 
1285                                                <a href="/l/${groupGen.personne.id}${searchUrl}" 
1286                                                   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]"> 
1287                                                    ${groupGen.personne.name} 
1288                                                </a> 
1289                                            <#else> 
1290                                                ${groupGen.personne.name} 
1291                                            </#if><#if groupGen.date?hasContent> (${groupGen.date?string("yyyy")})</#if><#if groupGen.notes?hasContent> - ${groupGen.notes}</#if> 
1292                                        </li> 
1293                                    </#list> 
1294                                </ul> 
1295                            </div> 
1296                        </#if> 
1297                        <#if partOfFull?hasContent> 
1298                            <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]"> 
1299                                <p id="pro-groupe" class="tw:leading-[1.375rem] tw:font-bold tw:shrink-0">Fait partie 
1300                                    du groupe 
1301                                    :</p> 
1302                                <ul aria-labelledby="pro-groupe"> 
1303                                    <#list partOfFull as partOf> 
1304                                        <li> 
1305                                            <#if partOf.personne.id?hasContent> 
1306                                                <a href="/l/${partOf.personne.id}${searchUrl}" 
1307                                                   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]"> 
1308                                                    ${partOf.personne.name} 
1309                                                </a> 
1310                                            <#else> 
1311                                                ${partOf.personne.name} 
1312                                            </#if><#if partOf.dateStart?hasContent> (${partOf.dateStart?string("yyyy")})</#if><#if partOf.notes?hasContent> - ${partOf.notes}</#if> 
1313                                        </li> 
1314                                    </#list> 
1315                                </ul> 
1316                            </div> 
1317                        </#if> 
1318                        <#if filialeFull?hasContent> 
1319                            <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]"> 
1320                                <p id="pro-filiale" class="tw:leading-[1.375rem] tw:font-bold tw:shrink-0">A pour 
1321                                    filiale 
1322                                    :</p> 
1323                                <ul aria-labelledby="pro-filiale"> 
1324                                    <#list filialeFull as filiale> 
1325                                        <li> 
1326                                            <#if filiale.personne.id?hasContent> 
1327                                                <a href="/l/${filiale.personne.id}${searchUrl}" 
1328                                                   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]"> 
1329                                                    ${filiale.personne.name} 
1330                                                </a> 
1331                                            <#else> 
1332                                                ${filiale.personne.name} 
1333                                            </#if><#if filiale.dateStart?hasContent> (${filiale.dateStart?string("yyyy")})</#if><#if filiale.notes?hasContent> - ${filiale.notes}</#if> 
1334                                        </li> 
1335                                    </#list> 
1336                                </ul> 
1337                            </div> 
1338                        </#if> 
1339                        <#if relationPMFull?hasContent> 
1340                            <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]"> 
1341                                <p id="pro-entreprise" class="tw:leading-[1.375rem] tw:font-bold tw:shrink-0">A employé 
1342                                    :</p> 
1343                                <ul aria-labelledby="pro-entreprise"> 
1344                                    <#list relationPMFull as relationPM> 
1345                                        <li> 
1346                                            <#if relationPM.personne.id?hasContent> 
1347                                                <a href="/l/${relationPM.personne.id}${searchUrl}" 
1348                                                   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]"> 
1349                                                    ${relationPM.personne.name} 
1350                                                </a> 
1351                                            <#else> 
1352                                                ${relationPM.personne.name} 
1353                                            </#if><#if relationPM.dateStart 
1354                                            ?hasContent>(${[relationPM.dateStart?string("yyyy"), relationPM.dateEnd?string("yyyy")] 
1355                                            ?filter(v->v?hasContent) 
1356                                            ?join(" - ")})</#if><#if relationPM.notes?hasContent> - ${relationPM.notes}</#if> 
1357                                        </li> 
1358                                    </#list> 
1359                                </ul> 
1360                            </div> 
1361                        </#if> 
1362                        <#if relationGFull?hasContent> 
1363                            <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]"> 
1364                                <p id="pro-fondation" class="tw:leading-[1.375rem] tw:font-bold tw:shrink-0">A été créé 
1365                                    part :</p> 
1366                                <ul aria-labelledby="pro-fondation"> 
1367                                    <#list relationGFull as relationG> 
1368                                        <li> 
1369                                            <#if relationG.personne.id?hasContent> 
1370                                                <a href="/l/${relationG.personne.id}${searchUrl}" 
1371                                                   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]"> 
1372                                                    ${relationG.personne.name} 
1373                                                </a> 
1374                                            <#else> 
1375                                                ${relationG.personne.name} 
1376                                            </#if><#if relationG.notes?hasContent> - ${relationG.notes}</#if> 
1377                                        </li> 
1378                                    </#list> 
1379                                </ul> 
1380                            </div> 
1381                        </#if> 
1382                    </#if> 
1383                </div> 
1384            </#if> 
1385        </div> 
1386        <#if showMedia> 
1387            <#assign medias = []> 
1388            <#if reproductionsVideos?hasContent> 
1389                <#assign medias = medias + [{ 
1390                "type": "video", 
1391                "title": "Vidéos", 
1392                "reproductions": reproductionsVideos 
1393                }]> 
1394            </#if> 
1395            <#if reproductionsImages?hasContent> 
1396                <#assign medias = medias + [{ 
1397                "type": "image", 
1398                "title": "Images", 
1399                "reproductions": reproductionsImages 
1400                }]> 
1401            </#if> 
1402            <#if bureautiqueFull?hasContent> 
1403                <#assign medias = medias + [{ 
1404                "type": "fichier", 
1405                "title": "Fichiers bureautiques", 
1406                "reproductions": bureautiqueFull 
1407                }]> 
1408            </#if> 
1409 
1410            <div id="ressources" class="js-summary-content" tabindex="-1"></div> 
1411            <div class="page-wrapper tw:py-10"> 
1412                <h2 id="ressources-tl" 
1413                    class="tw:text-prim tw:mb-5">${summary["RessourcesMediaPersonne"]?hasContent?then(summary["RessourcesMediaPersonne"], "Ressources média")}</h2> 
1414                <@garance.displayMedia data=medias /> 
1415            </div> 
1416        </#if> 
1417        <#if showCollection> 
1418            <div id="collections" class="js-summary-content" tabindex="-1"></div> 
1419            <div class="page-wrapper tw:py-10"> 
1420                <h2 id="collections-tl" 
1421                    class="tw:text-prim tw:mb-5">${summary["CollectionsLieesPersonne"]?hasContent?then(summary["CollectionsLieesPersonne"], "Collections liées")}</h2> 
1422                <#assign roOrder = {"authoredCollect": "Auteur dans les collections", 
1423                "subjectCollect": "Sujet dans les collections", 
1424                "representedCollect": "Représenté dans les collections"} /> 
1425                <#assign collectFull = {}> 
1426                <#if authoredCollect?hasContent> 
1427                    <#assign collectFull = collectFull + {"authoredCollect" : authoredCollect}> 
1428                </#if> 
1429                <#if subjectCollect?hasContent> 
1430                    <#assign collectFull = collectFull + {"subjectCollect" : subjectCollect}> 
1431                </#if> 
1432                <#if representedCollect?hasContent> 
1433                    <#assign collectFull = collectFull + {"representedCollect" : representedCollect}> 
1434                </#if> 
1435                <div> 
1436                    <div class="tabs"> 
1437                        <div role="tablist" aria-labelledby="collections-tl" 
1438                             class="automatic tw:bg-white tw:rounded-xs tw:flex tw:overflow-x-auto"> 
1439                            <#assign isFirstTab = true> 
1440                            <#list roOrder as key, label> 
1441                                <#if collectFull[key]?hasContent> 
1442                                    <button id="tab-${key}" type="button" role="tab" 
1443                                            aria-selected="${isFirstTab?string}" 
1444                                            class="tw:group" 
1445                                            aria-controls="tabpanel-${key}" 
1446                                            tabindex="-1"> 
1447                                        <span class="tw:transition-all tw:whitespace-nowrap tw:font-title tw:text-[1.125rem]/[1.6875rem] tw:text-placeholder tw:font-semibold tw:block tw:px-10 tw:py-[0.475rem] tw:border-y-[0.25rem] tw:border-transparent tw:border-solid tw:group-aria-selected:border-b-prim tw:group-aria-selected:text-prim tw:group-hover:text-prim">${label}</span> 
1448                                    </button> 
1449                                    <#assign isFirstTab = false> 
1450                                </#if> 
1451                            </#list> 
1452                        </div> 
1453                        <#assign isFirstTab = true> 
1454                        <#list roOrder as key, value> 
1455                            <#if collectFull[key]?hasContent> 
1456                                <div id="tabpanel-${key}" role="tabpanel" tabindex="0" aria-labelledby="tab-${key}" 
1457                                     class="<#if !isFirstTab>tw:hidden</#if>"> 
1458                                    <div class="img-gallery js-img-gallery splide js-ressources tw:py-5 tw:relative"> 
1459                                        <div class="splide__track"> 
1460                                            <ul class="splide__list"> 
1461                                                <#list collectFull[key] as objectCard> 
1462                                                    <#assign thumbnail = {}> 
1463                                                    <#assign reproductionImageURL = ""> 
1464                                                    <#if objectCard.repros?hasContent> 
1465                                                        <#assign relatedObjectThumbnails = objectCard.repros?filter(r -> (r.values.reproductionNature == "PICTURE" && r.values.media?string != "0"))> 
1466                                                        <#if relatedObjectThumbnails?hasContent> 
1467                                                            <#assign thumbnail = relatedObjectThumbnails?first> 
1468                                                            <#assign fileEntryDesktop = dlAppLocalService.getFileEntry(thumbnail.values.media?number) /> 
1469                                                            <#assign reproductionImageURL = dlURLHelper.getPreviewURL(fileEntryDesktop, fileEntryDesktop.getFileVersion(), 
1470                                                            null, "", !fileEntryDesktop.getFileVersion().equals(fileEntryDesktop.getLatestFileVersion()), true) /> 
1471                                                        </#if> 
1472                                                    </#if> 
1473                                                    <#if objectCard.title?hasContent && objectCard.id??> 
1474                                                        <li class="splide__slide" 
1475                                                            style="width: 14.375rem"> 
1476                                                            <a href="/l/${objectCard.id}${searchUrl}" 
1477                                                               class="zoom-effect tw:w-full tw:h-fit tw:relative tw:group tw:overflow-hidden tw:block tw:size-full tw:flex tw:flex-col"> 
1478                                                                <#if reproductionImageURL?hasContent > 
1479                                                                    <figure class="tw:w-full tw:h-fit"> 
1480                                                                        <div class="tw:relative tw:w-full tw:h-[17.5rem] tw:object-cover tw:overflow-hidden tw:mb-[0.625rem]"> 
1481                                                                            <picture> 
1482                                                                                <img src="${reproductionImageURL}" 
1483                                                                                     alt="" 
1484                                                                                     class="tw:size-full tw:transition-all tw:object-cover tw:scale-100 tw:group-hover:scale-110"/> 
1485                                                                            </picture> 
1486                                                                        </div> 
1487                                                                    </figure> 
1488                                                                <#else> 
1489                                                                    <div class="tw:relative tw:w-full tw:h-[17.5rem] tw:overflow-hidden tw:mb-[0.625rem]"> 
1490                                                                        <div class="no-photo" aria-hidden="true"> 
1491                                                                            <p>Garance</p> 
1492                                                                        </div> 
1493                                                                    </div> 
1494                                                                </#if> 
1495                                                                <p class=""> 
1496                                                                    <span class="tw:font-title tw:font-medium tw:text-[1.25rem]/[1.875rem]">${objectCard.title}</span> 
1497                                                                    <span class="icon-arrow-right tw:transition-all tw:text-[0.875rem] tw:text-prim tw:ml-1 tw:group-hover:ml-2"></span> 
1498                                                                </p> 
1499                                                            </a> 
1500                                                        </li> 
1501                                                    </#if> 
1502                                                </#list> 
1503                                            </ul> 
1504                                        </div> 
1505 
1506                                        <div class="splide__arrows tw:hidden tw:absolute tw:top-[calc(50%-1.25rem)] tw:left-[-2.5rem] tw:right-[-2.5rem] tw:lg:left-[-3.25rem] tw:lg:right-[-3.25rem] tw:sm:flex tw:justify-between tw:pointer-events-none"> 
1507                                            <button class="splide__arrow splide__arrow--prev tw:text-prim tw:text-[2.5rem] tw:pointer-events-auto tw:[&[disabled]]:invisible"> 
1508                                                <span class="icon-chevron-left" aria-hidden="true"></span> 
1509                                            </button> 
1510                                            <button class="splide__arrow splide__arrow--next tw:text-prim tw:text-[2.5rem] tw:pointer-events-auto tw:[&[disabled]]:invisible"> 
1511                                                <span class="icon-chevron-right" aria-hidden="true"></span> 
1512                                            </button> 
1513                                        </div> 
1514                                    </div> 
1515                                </div> 
1516                                <#assign isFirstTab = false> 
1517                            </#if> 
1518                        </#list> 
1519                    </div> 
1520                </div> 
1521            </div> 
1522            <script type="module" async> 
1523                import('photoswipe') 
1524                import('photoswipe-lightbox') 
1525            </script> 
1526        </#if> 
1527    </div> 
1528</div>