From c0d9d963ef1ff8409f533868005ef800d628365e Mon Sep 17 00:00:00 2001
From: Hugo SUBTIL <ext.sopra.husubtil@grandlyon.com>
Date: Thu, 20 Oct 2022 16:25:16 +0200
Subject: [PATCH 01/32] feat: refactor of search and structre-details

---
 src/app/form/form-view/form-view.component.ts |  49 ++--
 .../personal-offer-accompaniment.component.ts |   4 +-
 .../structure-form.component.ts               | 128 +++++-----
 .../structure-detail-print.component.ts       |  11 +-
 .../orientation-form.component.ts             | 103 ++++----
 src/app/map/components/map.component.ts       |   2 +-
 src/app/models/structure.model.ts             |  57 ++---
 .../structure-edition-summary.component.html  |  17 +-
 .../structure-edition-summary.component.ts    |  78 +++---
 .../logo-card/logo-card.component.html        |   2 +-
 .../logo-card/logo-card.component.ts          |  10 +-
 .../training-type-picker.component.ts         |  59 ++---
 src/app/shared/enum/demarches.enum.ts         |  32 ++-
 src/app/shared/enum/demarchesLogo.enum.ts     |  17 ++
 src/app/shared/enum/labels.emum.ts            |   3 +
 .../modal-filter/modal-filter.component.html  |  14 +-
 .../modal-filter/modal-filter.component.ts    |   3 +-
 .../structure-details.component.html          | 227 ++++++++----------
 .../structure-details.component.ts            | 142 ++++-------
 .../structure-list-search.component.html      |   4 +-
 .../structure-list-search.component.ts        |  80 +++---
 src/app/structure-list/enum/equipment.enum.ts |  10 +-
 src/app/structure-list/enum/themes.enum.ts    |   6 +
 .../structure-list/models/category.model.ts   |   8 +-
 src/app/structure-list/models/module.model.ts |  11 +-
 .../structure-list/services/search.service.ts |  23 +-
 src/app/utils/formUtils.ts                    | 116 ++++-----
 src/app/utils/utils.ts                        |  10 +-
 .../logos/{accompagnantCaf.svg => caf.svg}    |   0
 src/assets/logos/{impots.svg => taxes.svg}    |   0
 30 files changed, 601 insertions(+), 625 deletions(-)
 create mode 100644 src/app/shared/enum/demarchesLogo.enum.ts
 create mode 100644 src/app/structure-list/enum/themes.enum.ts
 rename src/assets/logos/{accompagnantCaf.svg => caf.svg} (100%)
 rename src/assets/logos/{impots.svg => taxes.svg} (100%)

diff --git a/src/app/form/form-view/form-view.component.ts b/src/app/form/form-view/form-view.component.ts
index e7e262de2..9a39327cd 100644
--- a/src/app/form/form-view/form-view.component.ts
+++ b/src/app/form/form-view/form-view.component.ts
@@ -408,9 +408,10 @@ export class FormViewComponent implements OnInit {
           contactMail: this.structureForm.get('contactMail').value,
         };
       case structureFormStep.structureAccessModality:
-        return {
-          accessModality: this.structureForm.get('accessModality').value,
-        };
+      //TODO: refactor
+      // return {
+      //   accessModality: this.structureForm.get('accessModality').value,
+      // };
       case structureFormStep.structureHours:
         return {
           hours: this.hoursForm.value,
@@ -429,27 +430,28 @@ export class FormViewComponent implements OnInit {
           website: this.structureForm.get('website').value,
         };
       case structureFormStep.structurePublicTarget:
-        return { publics: this.structureForm.get('publics').value };
+      //TODO: refactor
+      // return { publics: this.structureForm.get('publics').value };
       case structureFormStep.structureDigitalHelpingAccompaniment:
-        return {
-          proceduresAccompaniment: this.structureForm.get('proceduresAccompaniment').value,
-        };
+      // return {
+      //   proceduresAccompaniment: this.structureForm.get('proceduresAccompaniment').value,
+      // };
       case structureFormStep.structureTrainingType:
-        return {
-          accessRight: this.structureForm.get('accessRight').value,
-          baseSkills: this.structureForm.get('baseSkills').value,
-          digitalCultureSecurity: this.structureForm.get('digitalCultureSecurity').value,
-          parentingHelp: this.structureForm.get('parentingHelp').value,
-          socialAndProfessional: this.structureForm.get('socialAndProfessional').value,
-        };
+      // return {
+      //   accessRight: this.structureForm.get('accessRight').value,
+      //   baseSkills: this.structureForm.get('baseSkills').value,
+      //   digitalCultureSecurity: this.structureForm.get('digitalCultureSecurity').value,
+      //   parentingHelp: this.structureForm.get('parentingHelp').value,
+      //   socialAndProfessional: this.structureForm.get('socialAndProfessional').value,
+      // };
       case structureFormStep.structureTrainingPrice:
         return {
           freeWorkShop: this.structureForm.get('freeWorkShop').value,
         };
       case structureFormStep.structureWifi:
-        return {
-          equipmentsAndServices: this.structureForm.get('equipmentsAndServices').value,
-        };
+      // return {
+      //   equipmentsAndServices: this.structureForm.get('equipmentsAndServices').value,
+      // };
       case structureFormStep.structureEquipments:
         return {
           nbComputers: this.structureForm.get('nbComputers').value,
@@ -459,13 +461,14 @@ export class FormViewComponent implements OnInit {
           nbTablets: this.structureForm.get('nbTablets').value,
         };
       case structureFormStep.structureLabels:
-        return {
-          labelsQualifications: this.structureForm.get('labelsQualifications').value,
-        };
+      //TODO: refactor
+      // return {
+      //   labelsQualifications: this.structureForm.get('labelsQualifications').value,
+      // };
       case structureFormStep.structureOtherServices:
-        return {
-          equipmentsAndServices: this.structureForm.get('equipmentsAndServices').value,
-        };
+      // return {
+      //   equipmentsAndServices: this.structureForm.get('equipmentsAndServices').value,
+      // };
       case structureFormStep.structureDescription:
         return {
           description: this.structureForm.get('description').value,
diff --git a/src/app/form/form-view/personal-offer-form/personal-offer-accompaniment/personal-offer-accompaniment.component.ts b/src/app/form/form-view/personal-offer-form/personal-offer-accompaniment/personal-offer-accompaniment.component.ts
index 7013868bb..c91f92070 100644
--- a/src/app/form/form-view/personal-offer-form/personal-offer-accompaniment/personal-offer-accompaniment.component.ts
+++ b/src/app/form/form-view/personal-offer-form/personal-offer-accompaniment/personal-offer-accompaniment.component.ts
@@ -1,6 +1,5 @@
 import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
 import { UntypedFormGroup } from '@angular/forms';
-import { Structure } from '../../../../models/structure.model';
 import { ButtonType } from '../../../../shared/components/button/buttonType.enum';
 import { Category } from '../../../../structure-list/models/category.model';
 import { Module } from '../../../../structure-list/models/module.model';
@@ -24,7 +23,8 @@ export class PersonalOfferAccompanimentComponent implements OnInit {
 
   ngOnInit(): void {
     this.validateForm.emit();
-    this.searchService.getCategoriesAccompaniment().subscribe((categories: Category[]) => {
+    //TODO: refactor
+    this.searchService.getCategories().subscribe((categories: Category[]) => {
       this.proceduresAccompaniment = categories[0];
       const proceduresAccompaniment = this.personalOfferForm.get('proceduresAccompaniment').value;
       this.selectedModules = proceduresAccompaniment.map((procedure) =>
diff --git a/src/app/form/form-view/structure-form/structure-form.component.ts b/src/app/form/form-view/structure-form/structure-form.component.ts
index 69d15eeeb..db83cea1a 100644
--- a/src/app/form/form-view/structure-form/structure-form.component.ts
+++ b/src/app/form/form-view/structure-form/structure-form.component.ts
@@ -5,7 +5,6 @@ import { Address } from '../../../models/address.model';
 import { Structure } from '../../../models/structure.model';
 import { User } from '../../../models/user.model';
 import { ProfileService } from '../../../profile/services/profile.service';
-import { CategoryEnum } from '../../../shared/enum/category.enum';
 import { Category } from '../../../structure-list/models/category.model';
 import { Module } from '../../../structure-list/models/module.model';
 import { SearchService } from '../../../structure-list/services/search.service';
@@ -14,7 +13,7 @@ import { structureFormStep } from './structureFormStep.enum';
 
 @Component({
   selector: 'app-structure-form',
-  templateUrl: './structure-form.component.html'
+  templateUrl: './structure-form.component.html',
 })
 export class StructureFormComponent implements OnChanges, OnInit {
   @Input() nbSteps: number;
@@ -53,7 +52,11 @@ export class StructureFormComponent implements OnChanges, OnInit {
   public publicsAccompaniment: Category;
   public publics: Category;
 
-  constructor(private searchService: SearchService, private profileService: ProfileService, private route: ActivatedRoute) {}
+  constructor(
+    private searchService: SearchService,
+    private profileService: ProfileService,
+    private route: ActivatedRoute
+  ) {}
 
   ngOnChanges(changes: SimpleChanges): void {
     if (changes.currentStep) {
@@ -144,38 +147,38 @@ export class StructureFormComponent implements OnChanges, OnInit {
       //   this.updatePageValid();
     } else {
       this.pagesValidation[structureFormStep.structureChoice] = {
-        valid: this.structureForm.get('_id').valid
+        valid: this.structureForm.get('_id').valid,
       };
       this.pagesValidation[structureFormStep.structureNameAndAddress] = {
-        valid: this.structureForm.get('structureName').valid && this.structureForm.get('address').valid
+        valid: this.structureForm.get('structureName').valid && this.structureForm.get('address').valid,
       };
       this.pagesValidation[structureFormStep.structureContact] = {
-        valid: this.structureForm.get('contactMail').valid && this.structureForm.get('contactPhone').valid
+        valid: this.structureForm.get('contactMail').valid && this.structureForm.get('contactPhone').valid,
       };
       this.pagesValidation[structureFormStep.structureAccompanimentChoice] = {
-        valid: this.structureForm.get('placeOfReception').valid
+        valid: this.structureForm.get('placeOfReception').valid,
       };
       this.pagesValidation[structureFormStep.structureChoiceCompletion] = {
-        valid: this.isEditMode ? true : this.structureForm.get('choiceCompletion').valid
+        valid: this.isEditMode ? true : this.structureForm.get('choiceCompletion').valid,
       };
       this.pagesValidation[structureFormStep.structureContactCompletion] = {
         valid: this.isEditMode
           ? true
           : this.structureForm.get('contactPersonFirstname').valid &&
             this.structureForm.get('contactPersonLastname').valid &&
-            this.structureForm.get('contactPersonEmail').valid
+            this.structureForm.get('contactPersonEmail').valid,
       };
       this.pagesValidation[structureFormStep.structureType] = {
-        valid: this.structureForm.get('structureType').valid
+        valid: this.structureForm.get('structureType').valid,
       };
       this.pagesValidation[structureFormStep.structureAccessModality] = {
-        valid: this.structureForm.get('accessModality').valid
+        valid: this.structureForm.get('accessModality').valid,
       };
       this.pagesValidation[structureFormStep.structureHours] = {
-        valid: this.hoursForm.valid && this.structureForm.get('exceptionalClosures').valid
+        valid: this.hoursForm.valid && this.structureForm.get('exceptionalClosures').valid,
       };
       this.pagesValidation[structureFormStep.structurePmr] = {
-        valid: this.structureForm.get('pmrAccess').valid
+        valid: this.structureForm.get('pmrAccess').valid,
       };
       this.pagesValidation[structureFormStep.structureWebAndSocialNetwork] = {
         valid:
@@ -183,23 +186,23 @@ export class StructureFormComponent implements OnChanges, OnInit {
           ((this.structureForm.get('facebook').valid &&
             this.structureForm.get('twitter').valid &&
             this.structureForm.get('instagram').valid) ||
-            !this.showSocialNetwork)
+            !this.showSocialNetwork),
       };
       this.pagesValidation[structureFormStep.structurePublicTarget] = {
-        valid: this.structureForm.get('publics').valid
+        valid: this.structureForm.get('publics').valid,
       };
       this.pagesValidation[structureFormStep.structureDigitalHelpingAccompaniment] = {
-        valid: this.structureForm.get('proceduresAccompaniment').valid
+        valid: this.structureForm.get('proceduresAccompaniment').valid,
       };
 
       this.pagesValidation[structureFormStep.structureTrainingType] = {
-        valid: true
+        valid: true,
       };
       this.pagesValidation[structureFormStep.structureTrainingPrice] = {
-        valid: this.structureForm.get('freeWorkShop').valid
+        valid: this.structureForm.get('freeWorkShop').valid,
       };
       this.pagesValidation[structureFormStep.structureWifi] = {
-        valid: this.structureForm.get('equipmentsAndServices').valid
+        valid: this.structureForm.get('equipmentsAndServices').valid,
       };
       this.pagesValidation[structureFormStep.structureEquipments] = {
         valid:
@@ -208,66 +211,75 @@ export class StructureFormComponent implements OnChanges, OnInit {
           this.structureForm.get('nbTablets').valid &&
           this.structureForm.get('nbNumericTerminal').valid &&
           this.structureForm.get('nbScanners').valid,
-        name: 'Equipements mis à disposition'
+        name: 'Equipements mis à disposition',
       };
       this.pagesValidation[structureFormStep.structureLabels] = {
-        valid: true
+        valid: true,
       };
       this.pagesValidation[structureFormStep.structureOtherServices] = {
-        valid: this.structureForm.get('equipmentsAndServices').valid
+        valid: this.structureForm.get('equipmentsAndServices').valid,
       };
       this.pagesValidation[structureFormStep.structureDescription] = {
-        valid: true
+        valid: true,
       };
       this.pagesValidation[structureFormStep.structureCovidInfo] = {
-        valid: true
+        valid: true,
       };
 
       this.pagesValidation[structureFormStep.structureConsent] = {
-        valid: !this.isEditMode ? this.userAcceptSavedDate : true
+        valid: !this.isEditMode ? this.userAcceptSavedDate : true,
       };
       this.updatePageValid();
     }
   }
 
   async setCategories(): Promise<void> {
-    this.searchService.getCategoriesAccompaniment().subscribe((categories: Category[]) => {
+    //TODO: refactor
+    this.searchService.getCategories().subscribe((categories: Category[]) => {
       this.proceduresAccompaniment = categories[0];
     });
-    const equipmentsCategs = await this.searchService.getCategoriesOthers().toPromise();
-    equipmentsCategs.forEach((categ) => {
-      switch (categ.id) {
-        case CategoryEnum.accessModality: {
-          this.accessModality = categ;
-          break;
-        }
-        case CategoryEnum.equipmentsAndServices: {
-          categ.modules.forEach((c) => {
-            this.equipmentsAndServices.push({ module: c, openned: false });
-          });
-          break;
-        }
-        case CategoryEnum.labelsQualifications: {
-          this.labelsQualifications = categ;
-          break;
-        }
-        case CategoryEnum.publics: {
-          this.publics = categ;
-          break;
-        }
-        case CategoryEnum.publicsAccompaniment: {
-          this.publicsAccompaniment = categ;
-          break;
-        }
-      }
-    });
-    const categs = await this.searchService.getCategoriesTraining().toPromise();
-    categs.forEach((categ) => {
-      this.trainingCategories.push({ category: categ, openned: false });
-    });
+    // const equipmentsCategs = await this.searchService.getCategoriesOthers().toPromise();
+    // equipmentsCategs.forEach((categ) => {
+    //   switch (categ.id) {
+    //     case CategoryEnum.accessModality: {
+    //       this.accessModality = categ;
+    //       break;
+    //     }
+    //     case CategoryEnum.equipmentsAndServices: {
+    //       categ.modules.forEach((c) => {
+    //         this.equipmentsAndServices.push({ module: c, openned: false });
+    //       });
+    //       break;
+    //     }
+    //     case CategoryEnum.labelsQualifications: {
+    //       this.labelsQualifications = categ;
+    //       break;
+    //     }
+    //     case CategoryEnum.publics: {
+    //       this.publics = categ;
+    //       break;
+    //     }
+    //     case CategoryEnum.publicsAccompaniment: {
+    //       this.publicsAccompaniment = categ;
+    //       break;
+    //     }
+    //   }
+    // });
+    // const categs = await this.searchService.getCategoriesTraining().toPromise();
+    // categs.forEach((categ) => {
+    //   this.trainingCategories.push({ category: categ, openned: false });
+    // });
   }
 
-  public onCheckChange({ event, formControlName, value }: { event: boolean; formControlName: string; value: string }): void {
+  public onCheckChange({
+    event,
+    formControlName,
+    value,
+  }: {
+    event: boolean;
+    formControlName: string;
+    value: string;
+  }): void {
     const formArray: UntypedFormArray = this.structureForm.get(formControlName) as UntypedFormArray;
     if (event) {
       // Add a new control in the arrayForm
diff --git a/src/app/form/orientation-form/component/structure-detail-print/structure-detail-print.component.ts b/src/app/form/orientation-form/component/structure-detail-print/structure-detail-print.component.ts
index 2b1dd0a44..d8eb7d96e 100644
--- a/src/app/form/orientation-form/component/structure-detail-print/structure-detail-print.component.ts
+++ b/src/app/form/orientation-form/component/structure-detail-print/structure-detail-print.component.ts
@@ -1,8 +1,8 @@
 import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
 import { Structure } from '../../../../models/structure.model';
-import { TclService } from '../../../../services/tcl.service';
 import { TclStopPoint } from '../../../../models/tclStopPoint.model';
 import { AuthService } from '../../../../services/auth.service';
+import { TclService } from '../../../../services/tcl.service';
 import { AccessModality } from '../../../../structure-list/enum/access-modality.enum';
 @Component({
   selector: 'app-structure-detail-print',
@@ -21,10 +21,11 @@ export class StructureDetailPrintComponent implements OnInit {
   async ngOnInit(): Promise<void> {
     // GetTclStopPoints
     this.getTclStopPoints();
-    const index = this.structure.proceduresAccompaniment.indexOf('autres');
-    if (index > -1) {
-      this.structure.proceduresAccompaniment.splice(index, 1);
-    }
+    //TODO: refactor
+    // const index = this.structure.proceduresAccompaniment.indexOf('autres');
+    // if (index > -1) {
+    //   this.structure.proceduresAccompaniment.splice(index, 1);
+    // }
   }
 
   public keepOriginalOrder = (a, _b) => a.key;
diff --git a/src/app/form/orientation-form/orientation-form.component.ts b/src/app/form/orientation-form/orientation-form.component.ts
index af6c80377..fcdbb4145 100644
--- a/src/app/form/orientation-form/orientation-form.component.ts
+++ b/src/app/form/orientation-form/orientation-form.component.ts
@@ -7,7 +7,6 @@ import { Structure } from '../../models/structure.model';
 import { GeojsonService } from '../../services/geojson.service';
 import { RouterListenerService } from '../../services/routerListener.service';
 import { StructureService } from '../../services/structure.service';
-import { CategoryEnum } from '../../shared/enum/category.enum';
 import { Category } from '../../structure-list/models/category.model';
 import { Filter } from '../../structure-list/models/filter.model';
 import { Module } from '../../structure-list/models/module.model';
@@ -98,54 +97,53 @@ export class OrientationFormComponent implements OnInit {
     });
   }
 
+  //TODO: refactor
   private async setCategories(): Promise<void> {
-    this.searchService.getCategoriesAccompaniment().subscribe((categories: Category[]) => {
-      this.assistanceReferentiel = categories[0];
-      this.assistance = categories[0].modules;
-    });
-    const categs = await this.searchService.getCategoriesTraining().toPromise();
-    categs.forEach((categ) => {
-      this.selectedFormations.push(categ);
-      categ.modules.forEach((module) => {
-        this.formation.push(module);
-      });
-    });
-
-    this.searchService.getCategoriesTraining().subscribe((referentiels) => {
-      referentiels.forEach((referentiel) => {
-        if (referentiel.isBaseSkills()) {
-          this.baseSkillssReferentiel = referentiel;
-        } else if (referentiel.isRigthtsAccess()) {
-          this.accessRightsReferentiel = referentiel;
-        } else if (referentiel.isDigitalCultureSecurity()) {
-          this.digitalCultureSecuritysReferentiel = referentiel;
-        } else if (referentiel.isParentingHelp()) {
-          this.parentingHelpsReferentiel = referentiel;
-        } else if (referentiel.isSocialAndProfessional()) {
-          this.socialAndProfessionalsReferentiel = referentiel;
-        }
-      });
-    });
-
-    const equipmentsCategs = await this.searchService.getCategoriesOthers().toPromise();
-    equipmentsCategs.forEach((categ) => {
-      if (categ.id == CategoryEnum.equipmentsAndServices) {
-        categ.modules = this.filterOnlyEquipments(categ.modules);
-        this.equipmentReferentiel = categ;
-        categ.modules.forEach((c) => {
-          this.equipments.push(c);
-        });
-      }
-    });
-    const specificProfileCategs = await this.searchService.getCategoriesOthers().toPromise();
-    specificProfileCategs.forEach((categ) => {
-      switch (categ.id) {
-        case CategoryEnum.publicsAccompaniment: {
-          this.specificProfile = categ;
-          break;
-        }
-      }
-    });
+    // this.searchService.getCategoriesAccompaniment().subscribe((categories: Category[]) => {
+    //   this.assistanceReferentiel = categories[0];
+    //   this.assistance = categories[0].modules;
+    // });
+    // const categs = await this.searchService.getCategoriesTraining().toPromise();
+    // categs.forEach((categ) => {
+    //   this.selectedFormations.push(categ);
+    //   categ.modules.forEach((module) => {
+    //     this.formation.push(module);
+    //   });
+    // });
+    // this.searchService.getCategoriesTraining().subscribe((referentiels) => {
+    //   referentiels.forEach((referentiel) => {
+    //     if (referentiel.isBaseSkills()) {
+    //       this.baseSkillssReferentiel = referentiel;
+    //     } else if (referentiel.isRigthtsAccess()) {
+    //       this.accessRightsReferentiel = referentiel;
+    //     } else if (referentiel.isDigitalCultureSecurity()) {
+    //       this.digitalCultureSecuritysReferentiel = referentiel;
+    //     } else if (referentiel.isParentingHelp()) {
+    //       this.parentingHelpsReferentiel = referentiel;
+    //     } else if (referentiel.isSocialAndProfessional()) {
+    //       this.socialAndProfessionalsReferentiel = referentiel;
+    //     }
+    //   });
+    // });
+    // const equipmentsCategs = await this.searchService.getCategoriesOthers().toPromise();
+    // equipmentsCategs.forEach((categ) => {
+    //   if (categ.id == CategoryEnum.equipmentsAndServices) {
+    //     categ.modules = this.filterOnlyEquipments(categ.modules);
+    //     this.equipmentReferentiel = categ;
+    //     categ.modules.forEach((c) => {
+    //       this.equipments.push(c);
+    //     });
+    //   }
+    // });
+    // const specificProfileCategs = await this.searchService.getCategoriesOthers().toPromise();
+    // specificProfileCategs.forEach((categ) => {
+    //   switch (categ.id) {
+    //     case CategoryEnum.publicsAccompaniment: {
+    //       this.specificProfile = categ;
+    //       break;
+    //     }
+    //   }
+    // });
   }
 
   private createOrientationForm(orientationFormFilters: OrientationFormFilters): UntypedFormGroup {
@@ -161,7 +159,10 @@ export class OrientationFormComponent implements OnInit {
         commune: new UntypedFormControl('', Validators.required),
         postcode: new UntypedFormControl(''),
       }),
-      structureAccompaniment: new UntypedFormControl(orientationFormFilters.structureAccompaniment, Validators.required),
+      structureAccompaniment: new UntypedFormControl(
+        orientationFormFilters.structureAccompaniment,
+        Validators.required
+      ),
       contactAccompanimentPhone: new UntypedFormControl(
         orientationFormFilters.contactAccompanimentPhone,
         Validators.pattern(CustomRegExp.PHONE)
@@ -409,7 +410,7 @@ export class OrientationFormComponent implements OnInit {
     let name;
     this.equipmentReferentiel.modules.forEach((elem) => {
       if (elem.id === equipment) {
-        name = elem.text;
+        name = elem.name;
       }
     });
     return name;
@@ -419,7 +420,7 @@ export class OrientationFormComponent implements OnInit {
     let name;
     this.assistanceReferentiel.modules.forEach((elem) => {
       if (elem.id === skill) {
-        name = elem.text;
+        name = elem.name;
       }
     });
 
diff --git a/src/app/map/components/map.component.ts b/src/app/map/components/map.component.ts
index 9666d18f5..925091a16 100644
--- a/src/app/map/components/map.component.ts
+++ b/src/app/map/components/map.component.ts
@@ -171,7 +171,7 @@ export class MapComponent implements OnChanges {
    * @returns {MarkerType}
    */
   private getMarkerType(structure: Structure): MarkerType {
-    return structure?.labelsQualifications?.includes('conseillerNumFranceServices')
+    return structure?.categories?.labelsQualifications?.includes('conseillerNumFranceServices')
       ? MarkerType.conseillerFrance
       : MarkerType.structure;
   }
diff --git a/src/app/models/structure.model.ts b/src/app/models/structure.model.ts
index 344e442ea..24ca05241 100644
--- a/src/app/models/structure.model.ts
+++ b/src/app/models/structure.model.ts
@@ -1,11 +1,11 @@
-import { Equipment } from '../structure-list/enum/equipment.enum';
 import { typeStructureEnum } from '../shared/enum/typeStructure.enum';
+import { Equipment } from '../structure-list/enum/equipment.enum';
 import { Weekday } from '../structure-list/enum/weekday.enum';
 import { Address } from './address.model';
 import { Day } from './day.model';
 import { OpeningDay } from './openingDay.model';
-import { Week } from './week.model';
 import { PersonalOffer } from './personalOffer.model';
+import { Week } from './week.model';
 
 export class Structure {
   public _id: string = null;
@@ -30,30 +30,32 @@ export class Structure {
   public contactPersonFirstName: string = null;
   public contactPersonLastName: string = null;
   public contactPersonEmail: string = null;
-  public publicsAccompaniment: string[] = [];
-  public proceduresAccompaniment: string[] = [];
+  public categories: { [key: string]: string[] };
+  public categoriesDisplay: { [key: string]: string[] };
+  // public publicsAccompaniment: string[] = [];
+  // public proceduresAccompaniment: string[] = [];
   public remoteAccompaniment: boolean = null;
-  public accessModality: string[] = [];
-  public labelsQualifications: string[] = [];
-  public publics: string[] = [];
+  // public accessModality: string[] = [];
+  // public labelsQualifications: string[] = [];
+  // public publics: string[] = [];
   public nbComputers: number = null;
   public nbPrinters: number = null;
   public nbTablets: number = null;
   public nbNumericTerminal: number = null;
   public nbScanners: number = null;
   public exceptionalClosures: string = null;
-  public equipmentsAndServices: string[] = [];
+  // public equipmentsAndServices: string[] = [];
   public hours: Week;
   public freeWorkShop: boolean = null;
   public otherDescription: string = null;
 
   public isOpen: boolean = false;
   public openedOn: OpeningDay = new OpeningDay();
-  public baseSkills: string[] = [];
-  public accessRight: string[] = [];
-  public parentingHelp: string[] = [];
-  public socialAndProfessional: string[] = [];
-  public digitalCultureSecurity: string[] = [];
+  // public baseSkills: string[] = [];
+  // public accessRight: string[] = [];
+  // public parentingHelp: string[] = [];
+  // public socialAndProfessional: string[] = [];
+  // public digitalCultureSecurity: string[] = [];
 
   public distance?: number;
   public coord?: number[] = [];
@@ -97,7 +99,7 @@ export class Structure {
    * Check if a structure has equipments
    */
   public hasEquipments(): boolean {
-    if (this.equipmentsAndServices.length && this.hasNotOnlyEmptyEquipments()) {
+    if (this.categories.selfServiceMaterial.length && this.hasNotOnlyEmptyEquipments()) {
       return true;
     }
     return false;
@@ -116,7 +118,9 @@ export class Structure {
    * Check if a structure has pass Numeric label
    */
   public hasPassNumeric(): boolean {
-    return this.labelsQualifications.includes('passNumerique');
+    //TODO: refactor
+    // return this.labelsQualifications.includes('passNumerique');
+    return false;
   }
 
   /**
@@ -153,12 +157,8 @@ export class Structure {
     switch (equipment) {
       case Equipment.wifi:
         return 'wifi';
-      case Equipment.bornes:
-        return 'borne';
       case Equipment.printer:
         return 'print';
-      case Equipment.tablet:
-        return 'tablet';
       case Equipment.computer:
         return 'computer';
       case Equipment.scanner:
@@ -168,25 +168,6 @@ export class Structure {
     }
   }
 
-  public getEquipmentsTitle(equipment: Equipment): string {
-    switch (equipment) {
-      case Equipment.wifi:
-        return 'Wifi en accès libre';
-      case Equipment.bornes:
-        return this.nbNumericTerminal > 1 ? 'Bornes numériques' : 'Borne numérique';
-      case Equipment.printer:
-        return this.nbPrinters > 1 ? 'Imprimantes' : 'Imprimante';
-      case Equipment.tablet:
-        return this.nbTablets > 1 ? 'Tablettes' : 'Tablette';
-      case Equipment.computer:
-        return this.nbComputers > 1 ? 'Ordinateurs' : 'Ordinateur';
-      case Equipment.scanner:
-        return this.nbScanners > 1 ? 'Scanners' : 'Scanner';
-      default:
-        return null;
-    }
-  }
-
   public getLabelTypeStructure(): string {
     return typeStructureEnum[this.structureType] ? typeStructureEnum[this.structureType] : '';
   }
diff --git a/src/app/profile/structure-edition-summary/structure-edition-summary.component.html b/src/app/profile/structure-edition-summary/structure-edition-summary.component.html
index 57445aa19..a20813b5a 100644
--- a/src/app/profile/structure-edition-summary/structure-edition-summary.component.html
+++ b/src/app/profile/structure-edition-summary/structure-edition-summary.component.html
@@ -423,7 +423,7 @@
       </div>
       <div class="content">
         <p>
-          {{ hasWifi(structure.equipmentsAndServices) ? 'Oui' : 'Non' }}
+          {{ hasWifi(structure.categories.selfServiceMaterial) ? 'Oui' : 'Non' }}
         </p>
       </div>
     </div>
@@ -441,7 +441,8 @@
       </div>
       <div class="content">
         <app-no-information *ngIf="!hasEquipments(structure)"></app-no-information>
-        <div *ngIf="!!filterOnlyEquipments(structure.equipmentsAndServices)">
+        <!-- TODO: refactor -->
+        <!-- <div *ngIf="!!filterOnlyEquipments(structure.equipmentsAndServices)">
           <p *ngIf="structure.nbComputers">
             {{ getEquipmentsLabelAndValue(equipmentEnum.computer, structure.nbComputers) }}
           </p>
@@ -457,7 +458,7 @@
           <p *ngIf="structure.nbScanners">
             {{ getEquipmentsLabelAndValue(equipmentEnum.scanner, structure.nbScanners) }}
           </p>
-        </div>
+        </div> -->
       </div>
     </div>
 
@@ -473,10 +474,11 @@
         ></app-button>
       </div>
       <div class="content">
-        <app-no-information *ngIf="structure.labelsQualifications.length === 0"></app-no-information>
+        <!-- TODO:refactor -->
+        <!-- <app-no-information *ngIf="structure.labelsQualifications.length === 0"></app-no-information>
         <div *ngFor="let labels of structure.labelsQualifications">
           <app-logo-card [name]="labels"></app-logo-card>
-        </div>
+        </div> -->
       </div>
     </div>
 
@@ -492,12 +494,13 @@
         ></app-button>
       </div>
       <div class="content">
-        <app-no-information
+        <!-- TODO:refactor -->
+        <!-- <app-no-information
           *ngIf="filterOtherServices(structure.equipmentsAndServices).length === 0"
         ></app-no-information>
         <div *ngFor="let equipement of filterOtherServices(structure.equipmentsAndServices)" class="list">
           <p>{{ getOtherServicesLabel(equipement) }}</p>
-        </div>
+        </div> -->
       </div>
     </div>
 
diff --git a/src/app/profile/structure-edition-summary/structure-edition-summary.component.ts b/src/app/profile/structure-edition-summary/structure-edition-summary.component.ts
index 24a9aaf9a..1db2503cd 100644
--- a/src/app/profile/structure-edition-summary/structure-edition-summary.component.ts
+++ b/src/app/profile/structure-edition-summary/structure-edition-summary.component.ts
@@ -2,7 +2,6 @@ import { animate, AUTO_STYLE, state, style, transition, trigger } from '@angular
 import { Component, OnInit } from '@angular/core';
 import { UntypedFormGroup } from '@angular/forms';
 import { ActivatedRoute, Router } from '@angular/router';
-import * as lodash from 'lodash';
 import { DateTime } from 'luxon';
 import { structureFormStep } from '../../form/form-view/structure-form/structureFormStep.enum';
 import { Structure } from '../../models/structure.model';
@@ -151,7 +150,9 @@ export class StructureEditionSummaryComponent implements OnInit {
   }
 
   public containsDigitalHelp(): boolean {
-    return !!this.structure.proceduresAccompaniment.length;
+    //TODO: refactor
+    // return !!this.structure.proceduresAccompaniment.length;
+    return false;
   }
 
   public getDigitalHelpLabel(digitalHelp: Demarches): string {
@@ -160,44 +161,45 @@ export class StructureEditionSummaryComponent implements OnInit {
 
   // Digital learning
   private async initForm(): Promise<void> {
-    this.searchService.getCategoriesTraining().subscribe((referentiels) => {
-      referentiels.forEach((referentiel) => {
-        if (referentiel.isBaseSkills()) {
-          this.baseSkillssReferentiel = referentiel;
-        } else if (referentiel.isRigthtsAccess()) {
-          this.accessRightsReferentiel = referentiel;
-        } else if (referentiel.isDigitalCultureSecurity()) {
-          this.digitalCultureSecuritysReferentiel = referentiel;
-        } else if (referentiel.isParentingHelp()) {
-          this.parentingHelpsReferentiel = referentiel;
-        } else if (referentiel.isSocialAndProfessional()) {
-          this.socialAndProfessionalsReferentiel = referentiel;
-        }
-      });
-      this.setServiceCategories();
-    });
-    const index = this.structure.proceduresAccompaniment.indexOf('autres');
-    if (index > -1) {
-      this.structure.proceduresAccompaniment.splice(index, 1);
-    }
+    //TODO: refactor
+    // this.searchService.getCategoriesTraining().subscribe((referentiels) => {
+    //   referentiels.forEach((referentiel) => {
+    //     if (referentiel.isBaseSkills()) {
+    //       this.baseSkillssReferentiel = referentiel;
+    //     } else if (referentiel.isRigthtsAccess()) {
+    //       this.accessRightsReferentiel = referentiel;
+    //     } else if (referentiel.isDigitalCultureSecurity()) {
+    //       this.digitalCultureSecuritysReferentiel = referentiel;
+    //     } else if (referentiel.isParentingHelp()) {
+    //       this.parentingHelpsReferentiel = referentiel;
+    //     } else if (referentiel.isSocialAndProfessional()) {
+    //       this.socialAndProfessionalsReferentiel = referentiel;
+    //     }
+    //   });
+    //   this.setServiceCategories();
+    // });
+    // const index = this.structure.proceduresAccompaniment.indexOf('autres');
+    // if (index > -1) {
+    //   this.structure.proceduresAccompaniment.splice(index, 1);
+    // }
   }
 
   public setServiceCategories(): void {
-    this.baseSkills = this.structure.baseSkills.map((skill) =>
-      lodash.find(this.baseSkillssReferentiel.modules, { id: skill })
-    );
-    this.accessRights = this.structure.accessRight.map((rights) =>
-      lodash.find(this.accessRightsReferentiel.modules, { id: rights })
-    );
-    this.parentingHelp = this.structure.parentingHelp.map((help) =>
-      lodash.find(this.parentingHelpsReferentiel.modules, { id: help })
-    );
-    this.socialAndProfessional = this.structure.socialAndProfessional.map((skill) =>
-      lodash.find(this.socialAndProfessionalsReferentiel.modules, { id: skill })
-    );
-    this.digitalCultureSecurity = this.structure.digitalCultureSecurity.map((skill) =>
-      lodash.find(this.digitalCultureSecuritysReferentiel.modules, { id: skill })
-    );
+    // this.baseSkills = this.structure.baseSkills.map((skill) =>
+    //   lodash.find(this.baseSkillssReferentiel.modules, { id: skill })
+    // );
+    // this.accessRights = this.structure.accessRight.map((rights) =>
+    //   lodash.find(this.accessRightsReferentiel.modules, { id: rights })
+    // );
+    // this.parentingHelp = this.structure.parentingHelp.map((help) =>
+    //   lodash.find(this.parentingHelpsReferentiel.modules, { id: help })
+    // );
+    // this.socialAndProfessional = this.structure.socialAndProfessional.map((skill) =>
+    //   lodash.find(this.socialAndProfessionalsReferentiel.modules, { id: skill })
+    // );
+    // this.digitalCultureSecurity = this.structure.digitalCultureSecurity.map((skill) =>
+    //   lodash.find(this.digitalCultureSecuritysReferentiel.modules, { id: skill })
+    // );
   }
   public isBaseSkills(): boolean {
     return this.baseSkills && this.baseSkills[0] !== undefined;
@@ -249,7 +251,7 @@ export class StructureEditionSummaryComponent implements OnInit {
 
   public hasEquipments(structure: Structure): boolean {
     return this.utils.hasEquipments(
-      structure.equipmentsAndServices,
+      structure.categories.selfServiceMaterial,
       structure.nbComputers,
       structure.nbNumericTerminal,
       structure.nbPrinters,
diff --git a/src/app/shared/components/logo-card/logo-card.component.html b/src/app/shared/components/logo-card/logo-card.component.html
index 651abe1aa..d5a7ae7e0 100644
--- a/src/app/shared/components/logo-card/logo-card.component.html
+++ b/src/app/shared/components/logo-card/logo-card.component.html
@@ -1,4 +1,4 @@
 <div fxLayout="row" fxLayoutAlign="start center" *ngIf="name">
-  <img [src]="'assets/logos/' + name + '.svg'" [alt]="'logo ' + name" />
+  <img [src]="getPath(name)" [alt]="'logo ' + name" />
   <p>{{ getName(name) }}</p>
 </div>
diff --git a/src/app/shared/components/logo-card/logo-card.component.ts b/src/app/shared/components/logo-card/logo-card.component.ts
index ef2c57838..9c78daf13 100644
--- a/src/app/shared/components/logo-card/logo-card.component.ts
+++ b/src/app/shared/components/logo-card/logo-card.component.ts
@@ -5,17 +5,21 @@ import { Labels } from '../../enum/labels.emum';
 @Component({
   selector: 'app-logo-card',
   templateUrl: './logo-card.component.html',
-  styleUrls: ['./logo-card.component.scss']
+  styleUrls: ['./logo-card.component.scss'],
 })
 export class LogoCardComponent {
-  @Input() public logoPath: string;
   @Input() public name: string;
 
   public getName(key: string): string {
     if (Labels[key]) {
       return Labels[key];
     } else {
-      return Demarches[key];
+      return key;
     }
   }
+
+  public getPath(value: string): string {
+    let path = Object.entries(Demarches).find(([key, val]) => val === value)?.[0];
+    return `assets/logos/${path ? path : this.name}.svg`;
+  }
 }
diff --git a/src/app/shared/components/training-type-picker/training-type-picker.component.ts b/src/app/shared/components/training-type-picker/training-type-picker.component.ts
index 51b4c168a..3964595f8 100644
--- a/src/app/shared/components/training-type-picker/training-type-picker.component.ts
+++ b/src/app/shared/components/training-type-picker/training-type-picker.component.ts
@@ -1,8 +1,8 @@
 import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
+import { remove } from 'lodash';
 import { Category } from '../../../structure-list/models/category.model';
 import { Module } from '../../../structure-list/models/module.model';
 import { SearchService } from '../../../structure-list/services/search.service';
-import { cloneDeep, remove } from 'lodash';
 import { ButtonType } from '../button/buttonType.enum';
 
 @Component({
@@ -26,34 +26,35 @@ export class TrainingTypePickerComponent implements OnInit {
   constructor(private searchService: SearchService) {}
 
   ngOnInit(): void {
-    this.searchService.getCategoriesTraining().subscribe((categories) => {
-      this.categories = categories;
-      this.selectedChoices = cloneDeep(categories);
-      this.selectedChoices.forEach((cat) => {
-        let selectedModulesId: string[] = [];
-        switch (cat.id) {
-          case 'accessRight':
-            selectedModulesId = this.accessRight;
-            break;
-          case 'socialAndProfessional':
-            selectedModulesId = this.socialAndProfessional;
-            break;
-          case 'baseSkills':
-            selectedModulesId = this.baseSkills;
-            break;
-          case 'parentingHelp':
-            selectedModulesId = this.parentingHelp;
-            break;
-          case 'digitalCultureSecurity':
-            selectedModulesId = this.digitalCultureSecurity;
-            break;
-        }
-        if (selectedModulesId.length) {
-          this.categoriesExpanded.push(cat.id);
-        }
-        cat.modules = cat.modules.filter((module) => selectedModulesId.includes(module.id));
-      });
-    });
+    //TODO: refactor
+    // this.searchService.getCategoriesTraining().subscribe((categories) => {
+    //   this.categories = categories;
+    //   this.selectedChoices = cloneDeep(categories);
+    //   this.selectedChoices.forEach((cat) => {
+    //     let selectedModulesId: string[] = [];
+    //     switch (cat.id) {
+    //       case 'accessRight':
+    //         selectedModulesId = this.accessRight;
+    //         break;
+    //       case 'socialAndProfessional':
+    //         selectedModulesId = this.socialAndProfessional;
+    //         break;
+    //       case 'baseSkills':
+    //         selectedModulesId = this.baseSkills;
+    //         break;
+    //       case 'parentingHelp':
+    //         selectedModulesId = this.parentingHelp;
+    //         break;
+    //       case 'digitalCultureSecurity':
+    //         selectedModulesId = this.digitalCultureSecurity;
+    //         break;
+    //     }
+    //     if (selectedModulesId.length) {
+    //       this.categoriesExpanded.push(cat.id);
+    //     }
+    //     cat.modules = cat.modules.filter((module) => selectedModulesId.includes(module.id));
+    //   });
+    // });
   }
 
   public isCategorieExpanded(id: string): boolean {
diff --git a/src/app/shared/enum/demarches.enum.ts b/src/app/shared/enum/demarches.enum.ts
index 47146b003..0f5a27ea9 100644
--- a/src/app/shared/enum/demarches.enum.ts
+++ b/src/app/shared/enum/demarches.enum.ts
@@ -1,11 +1,27 @@
 export enum Demarches {
-  accompagnantCaf = 'CAF',
-  autres = 'Autres',
-  carsat = 'CARSAT',
+  caf = 'CAF',
   cpam = 'CPAM',
-  demarcheMetropolitaine = 'Démarches Métropolitaines',
-  espacePublicNumeriqueepn = 'Espace public Numérique',
-  impots = 'Impôts',
-  logement = 'Logements',
-  poleEmploi = 'Pôle Emploi',
+  idDoc = 'Carte d’identité, passeport',
+  needs = 'Énergie, téléphonie, internet',
+  foreigners = 'Démarches liées aux étrangers',
+  franceConnect = 'France Connect',
+  training = 'Formation (CPF...)',
+  taxes = 'Impôts',
+  housing = 'Logement',
+  retirement = 'Retraite',
+  health = 'Santé (Ameli...)',
+  scolarity = 'Scolarité (CROUS…)',
+  transport = 'Transports (carte grise, permis, TCL…)',
+  work = 'Travail (Pôle emploi, CESU…)',
+  autres = 'Autres',
 }
+
+// caf = 'CAF',
+// cpam = 'CPAM',
+// autres = 'Autres',
+// carsat = 'CARSAT',
+// demarcheMetropolitaine = 'Démarches Métropolitaines',
+// espacePublicNumeriqueepn = 'Espace public Numérique',
+// impots = 'Impôts',
+// logement = 'Logements',
+// poleEmploi = 'Pôle Emploi',
diff --git a/src/app/shared/enum/demarchesLogo.enum.ts b/src/app/shared/enum/demarchesLogo.enum.ts
new file mode 100644
index 000000000..1b1376cd8
--- /dev/null
+++ b/src/app/shared/enum/demarchesLogo.enum.ts
@@ -0,0 +1,17 @@
+export enum DemarchesLogo {
+  caf = 'caf',
+  cpam = 'cpam',
+  idDoc = 'Carte d’identité, passeport',
+  needs = 'Énergie, téléphonie, internet',
+  foreigners = 'Démarches liées aux étrangers',
+  franceConnect = 'France Connect',
+  training = 'Formation (CPF...)',
+  taxes = 'Impôts',
+  housing = 'Logement',
+  retirement = 'Retraite',
+  health = 'Santé (Ameli...)',
+  scolarity = 'Scolarité (CROUS…)',
+  transport = 'Transports (carte grise, permis, TCL…)',
+  work = 'Travail (Pôle emploi, CESU…)',
+  autres = 'Autres',
+}
diff --git a/src/app/shared/enum/labels.emum.ts b/src/app/shared/enum/labels.emum.ts
index 675f04500..433778012 100644
--- a/src/app/shared/enum/labels.emum.ts
+++ b/src/app/shared/enum/labels.emum.ts
@@ -1,9 +1,12 @@
 export enum Labels {
   passNumerique = 'Pass numérique',
+  espacePublicNumeriqueepn = 'Espace public numérique',
   maisonFranceService = 'Maison france service',
   aidantsConnect = 'Aidants connect',
   fabriqueDeTerritoire = 'Fabrique de territoire',
   demarcheMetropolitaine = 'Démarches Métropolitaines',
   pix = 'Évaluation des compétences numériques',
   conseillerNumFranceServices = 'Conseiller numérique',
+  monEspaceSante = 'Mon espace santé',
+  numRelay = 'Les relais numériques',
 }
diff --git a/src/app/structure-list/components/modal-filter/modal-filter.component.html b/src/app/structure-list/components/modal-filter/modal-filter.component.html
index 37b27ad7b..5adcf2898 100644
--- a/src/app/structure-list/components/modal-filter/modal-filter.component.html
+++ b/src/app/structure-list/components/modal-filter/modal-filter.component.html
@@ -5,7 +5,7 @@
       <div (click)="closeModal()" class="ico-close-details"></div>
     </div>
     <!-- Filter with single category -->
-    <div class="contentModal" fxLayout="row wrap" fxLayoutAlign="flex-start" *ngIf="categories.length === 1">
+    <div class="contentModal max-height" fxLayout="row wrap" fxLayoutAlign="flex-start" *ngIf="categories.length === 1">
       <div class="blockFiltre" *ngFor="let c of categories">
         <ul class="blockLigne">
           <div fxLayout="row" fxLayoutAlign="start center" class="ligneFiltre" *ngFor="let module of c.modules">
@@ -16,10 +16,10 @@
                     type="checkbox"
                     [checked]="searchService.getIndex(checkedModules, module.id, c.id) > -1"
                     [value]="module.id"
-                    (change)="onCheckboxChange($event, c.id, module.text)"
+                    (change)="onCheckboxChange($event, c.id, module.name)"
                   />
                   <span class="customCheck customCheckPrimary"></span>
-                  <div class="label">{{ module.text }}</div>
+                  <div class="label">{{ module.name }}</div>
                 </label>
               </div>
             </li>
@@ -62,10 +62,10 @@
                         type="checkbox"
                         [checked]="searchService.getIndex(checkedModules, module.id, c.id) > -1"
                         [value]="module.id"
-                        (change)="onCheckboxChange($event, c.id, module.displayText)"
+                        (change)="onCheckboxChange($event, c.id, module.name)"
                       />
                       <span class="customCheck customCheckPrimary"></span>
-                      <div class="label">{{ module.text }}</div>
+                      <div class="label">{{ module.name }}</div>
                     </label>
                   </div>
                 </li>
@@ -140,10 +140,10 @@
                           type="checkbox"
                           [checked]="searchService.getIndex(checkedModules, module.id, c.id) > -1"
                           [value]="module.id"
-                          (change)="onCheckboxChange($event, c.id, module.text)"
+                          (change)="onCheckboxChange($event, c.id, module.name)"
                         />
                         <span class="customCheck customCheckPrimary"></span>
-                        <div class="label">{{ module.text }}</div>
+                        <div class="label">{{ module.name }}</div>
                       </label>
                     </div>
                   </li>
diff --git a/src/app/structure-list/components/modal-filter/modal-filter.component.ts b/src/app/structure-list/components/modal-filter/modal-filter.component.ts
index 0620f70b8..c85f3cde7 100644
--- a/src/app/structure-list/components/modal-filter/modal-filter.component.ts
+++ b/src/app/structure-list/components/modal-filter/modal-filter.component.ts
@@ -27,6 +27,7 @@ export class ModalFilterComponent implements OnInit, OnChanges {
   ngOnInit(): void {
     // Manage checkbox
     this.checkedModules = this.modules.slice();
+    console.log(this.categories);
   }
 
   ngOnChanges(changes: SimpleChanges): void {
@@ -113,7 +114,7 @@ export class ModalFilterComponent implements OnInit, OnChanges {
   }
 
   public getCategoryCheckboxStatus(c: Category): string {
-    const selectedModule: Module[] = this.checkedModules.filter((m) => m.text === c.id);
+    const selectedModule: Module[] = this.checkedModules.filter((m) => m.name === c.id);
     if (selectedModule.length === c.modules.length) {
       return 'checked';
     } else if (selectedModule.length === 0) {
diff --git a/src/app/structure-list/components/structure-details/structure-details.component.html b/src/app/structure-list/components/structure-details/structure-details.component.html
index f83335702..4b5e69ef7 100644
--- a/src/app/structure-list/components/structure-details/structure-details.component.html
+++ b/src/app/structure-list/components/structure-details/structure-details.component.html
@@ -8,11 +8,16 @@
         <div (click)="close()" class="ico-close-details"></div>
       </div>
     </div>
-    <div class="structure-details-content" fxLayout="row" fxLayoutAlign="center center" *ngIf="isLoading">
+    <div
+      class="structure-details-content"
+      fxLayout="row"
+      fxLayoutAlign="center center"
+      *ngIf="isLoading || structure['categories'] == undefined || structure['categoriesDisplay'] == undefined"
+    >
       <img class="loader-gif" src="/assets/gif/loader_circle.gif" alt />
     </div>
     <!-- Content -->
-    <div class="structure-details-content" *ngIf="!isLoading">
+    <div class="structure-details-content" *ngIf="!isLoading && structure.categories && structure.categoriesDisplay">
       <!-- Action buttons bar -->
       <div class="structure-buttons hide-on-print" fxLayout="row" fxLayoutAlign="space-evenly">
         <!-- Voir le conseiller numérique - Hidden until functionnality is developed -->
@@ -194,7 +199,7 @@
           </div>
           <!-- services -->
           <div *ngIf="structure.accessModality.length > 0" fxLayout="column">
-            <h2>Services</h2>
+            <h2>Modalités d'accès</h2>
             <div fxLayout="column" fxLayoutGap="10px" class="services-block">
               <div fxLayout="column" fxLayoutGap="8px">
                 <div
@@ -206,22 +211,7 @@
                   <p>{{ getAccessLabel(acces) }}</p>
                 </div>
                 <p *ngIf="structure.pmrAccess">Accessible aux personnes à mobilité réduite</p>
-              </div>
-              <div
-                *ngFor="let public of structure.publics"
-                fxLayout="row"
-                fxLayoutAlign="none flex-end"
-                fxLayoutGap="8px"
-              >
-                <p>{{ getPublicLabel(public) }}</p>
-              </div>
-              <div
-                *ngFor="let accompaniment of structure.publicsAccompaniment"
-                fxLayout="row"
-                fxLayoutAlign="none flex-end"
-                fxLayoutGap="8px"
-              >
-                <p>{{ accompaniment }}</p>
+                <p *ngIf="structure.remoteAccompaniment">Accompagnement à distance</p>
               </div>
             </div>
           </div>
@@ -229,8 +219,52 @@
         <div *ngIf="structure.exceptionalClosures" class="bold-info">
           <p class="description">{{ structure.exceptionalClosures }}</p>
         </div>
-        <div *ngIf="structure.remoteAccompaniment" class="bold-info">
-          <h3>Cette structure propose un accompagnement à distance.</h3>
+      </div>
+
+      <!-- Publics -->
+      <div
+        *ngIf="
+          structure.categoriesDisplay &&
+          ((structure.categoriesDisplay.age && structure.categoriesDisplay.age.length) ||
+            (structure.categoriesDisplay.languageAndIlliteracy &&
+              structure.categoriesDisplay.languageAndIlliteracy.length) ||
+            (structure.categoriesDisplay.handicaps && structure.categoriesDisplay.handicaps.length) ||
+            (structure.categoriesDisplay.publicOther && structure.categoriesDisplay.publicOther.length))
+        "
+        fxLayout="column"
+        class="structure-details-block"
+        fxLayoutAlign="baseline baseline"
+        fxLayoutGap="8px"
+      >
+        <h2>Publics Accueillis</h2>
+        <div fxLayout="column">
+          <div *ngIf="structure.categoriesDisplay.age && structure.categoriesDisplay.age.length">
+            <p *ngFor="let label of structure.categoriesDisplay.age.sort()" class="no-margin-bottom">
+              <span>{{ label }}</span>
+            </p>
+          </div>
+          <div
+            *ngIf="
+              structure.categoriesDisplay.languageAndIlliteracy &&
+              structure.categoriesDisplay.languageAndIlliteracy.length
+            "
+          >
+            <p *ngFor="let label of structure.categoriesDisplay.languageAndIlliteracy.sort()" class="no-margin-bottom">
+              <span>{{ label }}</span>
+            </p>
+          </div>
+
+          <div *ngIf="structure.categoriesDisplay.handicaps && structure.categoriesDisplay.handicaps.length">
+            <p *ngFor="let label of structure.categoriesDisplay.handicaps.sort()" class="no-margin-bottom">
+              <span>{{ label }}</span>
+            </p>
+          </div>
+
+          <div *ngIf="structure.categoriesDisplay.publicOther && structure.categoriesDisplay.publicOther.length">
+            <p *ngFor="let label of structure.categoriesDisplay.publicOther.sort()" class="no-margin-bottom">
+              <span>{{ label }}</span>
+            </p>
+          </div>
         </div>
       </div>
 
@@ -244,7 +278,7 @@
       >
         <h2>Labellisations</h2>
         <div class="wrapper">
-          <div *ngFor="let labels of structure.labelsQualifications">
+          <div *ngFor="let labels of structure.categories.labelsQualifications.sort()">
             <app-logo-card [name]="labels"></app-logo-card>
           </div>
         </div>
@@ -275,18 +309,21 @@
         </div>
       </div>
 
-      <!-- Aides numérique -->
+      <!-- Démarches en lignes -->
       <div
-        *ngIf="structure.proceduresAccompaniment.length || structure.otherDescription"
+        *ngIf="
+          (structure.categories.onlineProcedures && structure.categories.onlineProcedures.length) ||
+          structure.otherDescription
+        "
         fxLayout="column"
         class="structure-details-block"
         fxLayoutAlign="baseline baseline"
         fxLayoutGap="12px"
       >
-        <h2>Aides au numérique</h2>
+        <h2>Démarches en ligne</h2>
         <div fxLayout="column">
           <div class="wrapper">
-            <div *ngFor="let accompagnement of structure.proceduresAccompaniment.sort()">
+            <div *ngFor="let accompagnement of structure.categoriesDisplay.onlineProcedures.sort()">
               <app-logo-card *ngIf="accompagnement != 'autres'" [name]="accompagnement"></app-logo-card>
             </div>
           </div>
@@ -298,21 +335,19 @@
 
       <!-- Formation -->
       <div
-        *ngIf="
-          isBaseSkills() || isAccessRights() || isParentingHelp() || isSocialAndProfessional() || isDigitalSecurity()
-        "
+        *ngIf="hasBaseSkills() || hasAdvancedSkills()"
         fxLayout="column"
         class="structure-details-block noSeparator"
         fxLayoutAlign="baseline baseline"
       >
-        <h2>Formations</h2>
+        <h2>Compétences numériques</h2>
         <div *ngIf="structure.freeWorkShop">
           <span *ngIf="multipleWorkshop()" class="bold-info">L'accès à ces formations est gratuit</span>
           <span *ngIf="!multipleWorkshop()" class="bold-info">L'accès à cette formation est gratuit</span>
         </div>
         <div class="formationDetails">
           <!--Toggle BaseSkills-->
-          <div *ngIf="isBaseSkills()" class="collapse" [ngClass]="{ notCollapsed: !showBaseSkills }">
+          <div *ngIf="hasBaseSkills()" class="collapse" [ngClass]="{ notCollapsed: !showBaseSkills }">
             <div fxLayout="column">
               <div
                 class="collapseHeader"
@@ -321,7 +356,7 @@
                 fxLayoutAlign=" center"
                 (click)="toggleBaseSkills()"
               >
-                <div class="titleCollapse">Compétences de base</div>
+                <div class="titleCollapse">Compétences numériques de base</div>
                 <div class="logo">
                   <svg class="show" aria-hidden="true">
                     <use [attr.xlink:href]="'assets/form/sprite.svg#unfold'"></use>
@@ -332,12 +367,14 @@
                 </div>
               </div>
               <div class="detailsContainer" [@show]="showBaseSkills">
-                <div class="details" *ngFor="let skill of baseSkills">{{ skill.text }}</div>
+                <ul>
+                  <li class="details" *ngFor="let skill of structure.categoriesDisplay.baseSkills">{{ skill }}</li>
+                </ul>
               </div>
             </div>
           </div>
-          <!--Toggle accessRights-->
-          <div *ngIf="isAccessRights()" class="collapse" [ngClass]="{ notCollapsed: !showAccessRights }">
+          <!--Toggle advancedSkills-->
+          <div *ngIf="hasAdvancedSkills()" class="collapse" [ngClass]="{ notCollapsed: !showAdvancedSkills }">
             <div fxLayout="column">
               <div
                 class="collapseHeader"
@@ -346,61 +383,7 @@
                 fxLayoutAlign=" center"
                 (click)="toggleAccessRights()"
               >
-                <div class="titleCollapse">Accès aux droits</div>
-                <div class="logo">
-                  <svg class="show" aria-hidden="true">
-                    <use [attr.xlink:href]="'assets/form/sprite.svg#unfold'"></use>
-                  </svg>
-                  <svg class="hide" aria-hidden="true">
-                    <use [attr.xlink:href]="'assets/form/sprite.svg#fold'"></use>
-                  </svg>
-                </div>
-              </div>
-              <div class="detailsContainer" [@show]="showAccessRights">
-                <div class="details" *ngFor="let rights of accessRights">{{ rights.text }}</div>
-              </div>
-            </div>
-          </div>
-          <!--Toggle parentingHelp-->
-          <div *ngIf="isParentingHelp()" class="collapse" [ngClass]="{ notCollapsed: !showParentingHelp }">
-            <div fxLayout="column">
-              <div
-                class="collapseHeader"
-                fxLayout="row"
-                fxLayoutGap="20px"
-                fxLayoutAlign=" center"
-                (click)="toggleParentingHelp()"
-              >
-                <div class="titleCollapse">Aide à la parentalité</div>
-                <div class="logo">
-                  <svg class="show" aria-hidden="true">
-                    <use [attr.xlink:href]="'assets/form/sprite.svg#unfold'"></use>
-                  </svg>
-                  <svg class="hide" aria-hidden="true">
-                    <use [attr.xlink:href]="'assets/form/sprite.svg#fold'"></use>
-                  </svg>
-                </div>
-              </div>
-              <div class="detailsContainer" [@show]="showParentingHelp">
-                <div class="details" *ngFor="let help of parentingHelp">{{ help.text }}</div>
-              </div>
-            </div>
-          </div>
-          <!--Toggle socialAndProfessional-->
-          <div
-            *ngIf="isSocialAndProfessional()"
-            class="collapse"
-            [ngClass]="{ notCollapsed: !showSocialAndProfessional }"
-          >
-            <div fxLayout="column">
-              <div
-                class="collapseHeader"
-                fxLayout="row"
-                fxLayoutGap="20px"
-                fxLayoutAlign=" center"
-                (click)="toggleSocialAndProfessional()"
-              >
-                <div class="titleCollapse">Insertion sociale et professionnelle</div>
+                <div class="titleCollapse">Culture Numérique</div>
                 <div class="logo">
                   <svg class="show" aria-hidden="true">
                     <use [attr.xlink:href]="'assets/form/sprite.svg#unfold'"></use>
@@ -410,33 +393,10 @@
                   </svg>
                 </div>
               </div>
-              <div class="detailsContainer" [@show]="showSocialAndProfessional">
-                <div class="details" *ngFor="let skill of socialAndProfessional">{{ skill.text }}</div>
-              </div>
-            </div>
-          </div>
-          <!--Toggle digitalSecurity-->
-          <div *ngIf="isDigitalSecurity()" class="collapse" [ngClass]="{ notCollapsed: !showDigitalSecurity }">
-            <div fxLayout="column">
-              <div
-                class="collapseHeader"
-                fxLayout="row"
-                fxLayoutGap="20px"
-                fxLayoutAlign=" center"
-                (click)="toggleDigitalSecurity()"
-              >
-                <div class="titleCollapse">Culture et sécurité numérique</div>
-                <div class="logo">
-                  <svg class="show" aria-hidden="true">
-                    <use [attr.xlink:href]="'assets/form/sprite.svg#unfold'"></use>
-                  </svg>
-                  <svg class="hide" aria-hidden="true">
-                    <use [attr.xlink:href]="'assets/form/sprite.svg#fold'"></use>
-                  </svg>
-                </div>
-              </div>
-              <div class="detailsContainer" [@show]="showDigitalSecurity">
-                <div class="details" *ngFor="let skill of digitalCultureSecurity">{{ skill.text }}</div>
+              <div class="detailsContainer" [@show]="showAdvancedSkills">
+                <ul>
+                  <li class="details" *ngFor="let skill of structure.categoriesDisplay.advancedSkills">{{ skill }}</li>
+                </ul>
               </div>
             </div>
           </div>
@@ -452,29 +412,38 @@
       >
         <h2>Matériel et wifi</h2>
         <div fxLayout="column">
-          <div *ngIf="filterOnlyEquipments(structure.equipmentsAndServices).includes('wifiEnAccesLibre')">
-            {{ getEquipmentsLabel('wifiEnAccesLibre') }}
+          <div *ngIf="structure.categories.selfServiceMaterial.includes('wifi')">
+            {{ getEquipmentsLabel('wifi') }}
           </div>
-          <p *ngFor="let equipement of filterOnlyEquipments(structure.equipmentsAndServices)" class="no-margin-bottom">
-            <span *ngIf="equipement == 'ordinateurs' && structure.nbComputers"
+          <p *ngFor="let equipement of structure.categories.selfServiceMaterial" class="no-margin-bottom">
+            <span *ngIf="equipement == 'computer' && structure.nbComputers"
               >{{ getEquipmentsLabel(equipement) }} : {{ structure.nbComputers }}</span
             >
-            <span *ngIf="equipement == 'tablettes' && structure.nbTablets"
-              >{{ getEquipmentsLabel(equipement) }} : {{ structure.nbTablets }}</span
-            >
-            <span *ngIf="equipement == 'bornesNumeriques' && structure.nbNumericTerminal">
-              {{ getEquipmentsLabel(equipement) }} : {{ structure.nbNumericTerminal }}</span
-            >
-            <span *ngIf="equipement == 'imprimantes' && structure.nbPrinters"
+            <span *ngIf="equipement == 'printer' && structure.nbPrinters"
               >{{ getEquipmentsLabel(equipement) }} : {{ structure.nbPrinters }}</span
             >
-            <span *ngIf="equipement == 'scanners' && structure.nbScanners"
+            <span *ngIf="equipement == 'scanner' && structure.nbScanners"
               >{{ getEquipmentsLabel(equipement) }} : {{ structure.nbScanners }}</span
             >
           </p>
         </div>
       </div>
 
+      <!-- Vente de matériel -->
+      <div
+        *ngIf="structure.categories.solidarityMaterial && structure.categories.solidarityMaterial.length"
+        fxLayout="column"
+        class="structure-details-block"
+        fxLayoutAlign="baseline baseline"
+      >
+        <h2>Vente de matériel a prix solidaire</h2>
+        <div fxLayout="column">
+          <p *ngFor="let equipement of structure.categoriesDisplay.solidarityMaterial" class="no-margin-bottom">
+            <span>{{ equipement }}</span>
+          </p>
+        </div>
+      </div>
+
       <!-- Transport -->
       <div
         *ngIf="tclStopPoints.length"
diff --git a/src/app/structure-list/components/structure-details/structure-details.component.ts b/src/app/structure-list/components/structure-details/structure-details.component.ts
index 4e55440ae..612a1ab6b 100644
--- a/src/app/structure-list/components/structure-details/structure-details.component.ts
+++ b/src/app/structure-list/components/structure-details/structure-details.component.ts
@@ -1,8 +1,7 @@
 import { animate, AUTO_STYLE, state, style, transition, trigger } from '@angular/animations';
+import { Location } from '@angular/common';
 import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
 import { ActivatedRoute, Router } from '@angular/router';
-import { Location } from '@angular/common';
-import * as _ from 'lodash';
 import { ParametersService } from '../../../admin/services/parameters.service';
 import { Owner } from '../../../models/owner.model';
 import { Structure } from '../../../models/structure.model';
@@ -48,22 +47,9 @@ export class StructureDetailsComponent implements OnInit {
   @Input() public structure: Structure;
   @Output() public closeDetails: EventEmitter<boolean> = new EventEmitter<boolean>();
   public accessModality = AccessModality;
-
-  public baseSkillssReferentiel: Category;
-  public accessRightsReferentiel: Category;
-  public digitalCultureSecuritysReferentiel: Category;
-  public socialAndProfessionalsReferentiel: Category;
-  public parentingHelpsReferentiel: Category;
-  public baseSkills: Module[];
-  public accessRights: Module[];
-  public parentingHelp: Module[];
-  public socialAndProfessional: Module[];
-  public digitalCultureSecurity: Module[];
+  public categories: Category[] = [];
   public showBaseSkills = false;
-  public showAccessRights = false;
-  public showParentingHelp = false;
-  public showSocialAndProfessional = false;
-  public showDigitalSecurity = false;
+  public showAdvancedSkills = false;
   public tclStopPoints: TclStopPoint[] = [];
   public printMode = false;
   public isLoading = true;
@@ -96,9 +82,6 @@ export class StructureDetailsComponent implements OnInit {
         // Display formations for printing
         this.toggleAccessRights();
         this.toggleBaseSkills();
-        this.toggleDigitalSecurity();
-        this.toggleParentingHelp();
-        this.toggleSocialAndProfessional();
         this.initForm();
       }
     });
@@ -138,30 +121,14 @@ export class StructureDetailsComponent implements OnInit {
 
     // GetTclStopPoints
     this.getTclStopPoints();
-    this.searchService.getCategoriesTraining().subscribe((referentiels) => {
-      referentiels.forEach((referentiel) => {
-        if (referentiel.isBaseSkills()) {
-          this.baseSkillssReferentiel = referentiel;
-        } else if (referentiel.isRigthtsAccess()) {
-          this.accessRightsReferentiel = referentiel;
-        } else if (referentiel.isDigitalCultureSecurity()) {
-          this.digitalCultureSecuritysReferentiel = referentiel;
-        } else if (referentiel.isParentingHelp()) {
-          this.parentingHelpsReferentiel = referentiel;
-        } else if (referentiel.isSocialAndProfessional()) {
-          this.socialAndProfessionalsReferentiel = referentiel;
-        }
-      });
+    this.searchService.getCategories().subscribe((categories) => {
+      this.categories = categories;
       this.setServiceCategories();
       if (this.printMode) {
         this.printService.onDataReady();
       }
       this.isLoading = false;
     });
-    const index = this.structure.proceduresAccompaniment.indexOf('autres');
-    if (index > -1) {
-      this.structure.proceduresAccompaniment.splice(index, 1);
-    }
   }
 
   public userIsLoggedIn(): boolean {
@@ -172,12 +139,8 @@ export class StructureDetailsComponent implements OnInit {
     switch (equipment) {
       case Equipment.wifi:
         return 'Wifi en accès libre';
-      case Equipment.bornes:
-        return this.structure.nbNumericTerminal > 1 ? 'Bornes numériques' : 'Borne numérique';
       case Equipment.printer:
         return this.structure.nbPrinters > 1 ? 'Imprimantes' : 'Imprimante';
-      case Equipment.tablet:
-        return this.structure.nbTablets > 1 ? 'Tablettes' : 'Tablette';
       case Equipment.computer:
         return this.structure.nbComputers > 1 ? 'Ordinateurs' : 'Ordinateur';
       case Equipment.scanner:
@@ -314,40 +277,37 @@ export class StructureDetailsComponent implements OnInit {
     }
   }
 
+  /**
+   * Map categories ids to there real names
+   */
   public setServiceCategories(): void {
-    this.baseSkills = this.structure.baseSkills.map((skill) =>
-      _.find(this.baseSkillssReferentiel.modules, { id: skill })
-    );
-    this.accessRights = this.structure.accessRight.map((rights) =>
-      _.find(this.accessRightsReferentiel.modules, { id: rights })
-    );
-    this.parentingHelp = this.structure.parentingHelp.map((help) =>
-      _.find(this.parentingHelpsReferentiel.modules, { id: help })
-    );
-    this.socialAndProfessional = this.structure.socialAndProfessional.map((skill) =>
-      _.find(this.socialAndProfessionalsReferentiel.modules, { id: skill })
-    );
-    this.digitalCultureSecurity = this.structure.digitalCultureSecurity.map((skill) =>
-      _.find(this.digitalCultureSecuritysReferentiel.modules, { id: skill })
-    );
+    this.categories.forEach((category) => {
+      const structureModuleIds = this.structure.categories[category.id];
+      if (structureModuleIds) {
+        const moduleNames = category.modules
+          .map((module: Module) => {
+            if (structureModuleIds.includes(module.id)) {
+              return module.name;
+            }
+          })
+          .filter((value) => value !== undefined);
+        this.structure.categoriesDisplay = {
+          ...this.structure.categoriesDisplay,
+          [category.id]: moduleNames,
+        };
+      }
+    });
+    console.log('END', this.structure);
+    console.log('END', this.categories);
   }
 
   public keepOriginalOrder = (a, b) => a.key;
 
-  public isBaseSkills(): boolean {
-    return this.baseSkills && this.baseSkills[0] !== undefined;
-  }
-  public isAccessRights(): boolean {
-    return this.accessRights && this.accessRights[0] !== undefined;
+  public hasBaseSkills(): boolean {
+    return this.structure.categories.baseSkills && this.structure.categories.baseSkills.length > 0;
   }
-  public isParentingHelp(): boolean {
-    return this.parentingHelp && this.parentingHelp[0] !== undefined;
-  }
-  public isSocialAndProfessional(): boolean {
-    return this.socialAndProfessional && this.socialAndProfessional[0] !== undefined;
-  }
-  public isDigitalSecurity(): boolean {
-    return this.digitalCultureSecurity && this.digitalCultureSecurity[0] !== undefined;
+  public hasAdvancedSkills(): boolean {
+    return this.structure.categories.advancedSkills && this.structure.categories.advancedSkills.length > 0;
   }
 
   public getTclStopPoints(): void {
@@ -356,11 +316,9 @@ export class StructureDetailsComponent implements OnInit {
     });
   }
 
-  public filterOnlyEquipments(equipmentsAndServices: string[]): string[] {
-    return equipmentsAndServices.filter((eqpt) =>
-      ['ordinateurs', 'tablettes', 'bornesNumeriques', 'imprimantes', 'scanners', 'wifiEnAccesLibre'].includes(eqpt)
-    );
-  }
+  // public filterOnlyEquipments(equipmentsAndServices: string[]): string[] {
+  //   return equipmentsAndServices.filter((eqpt) => ['ordinateurs', 'imprimantes', 'scanners', 'wifi'].includes(eqpt));
+  // }
 
   public displayModalError(): void {
     this.structureErrorModalOpenned = !this.structureErrorModalOpenned;
@@ -374,38 +332,32 @@ export class StructureDetailsComponent implements OnInit {
   }
 
   public multipleWorkshop(): boolean {
-    if (
-      this.structure.baseSkills.length +
-        this.structure.accessRight.length +
-        this.structure.parentingHelp.length +
-        this.structure.socialAndProfessional.length +
-        this.structure.digitalCultureSecurity.length >
-      1
-    ) {
-      return true;
-    }
+    //TODO: refactor
+    // if (
+    //   this.structure.baseSkills.length +
+    //     this.structure.accessRight.length +
+    //     this.structure.parentingHelp.length +
+    //     this.structure.socialAndProfessional.length +
+    //     this.structure.digitalCultureSecurity.length >
+    //   1
+    // ) {
+    //   return true;
+    // }
     return false;
   }
 
   public toggleBaseSkills(): void {
     this.showBaseSkills = !this.showBaseSkills;
   }
+
   public toggleAccessRights(): void {
-    this.showAccessRights = !this.showAccessRights;
-  }
-  public toggleParentingHelp(): void {
-    this.showParentingHelp = !this.showParentingHelp;
-  }
-  public toggleSocialAndProfessional(): void {
-    this.showSocialAndProfessional = !this.showSocialAndProfessional;
-  }
-  public toggleDigitalSecurity(): void {
-    this.showDigitalSecurity = !this.showDigitalSecurity;
+    this.showAdvancedSkills = !this.showAdvancedSkills;
   }
 
   public goToWebsite(): void {
     window.open(this.structure.website, '_blank');
   }
+
   public displayJobEmployer(profile: User): string {
     return new Utils().getJobEmployer(profile);
   }
diff --git a/src/app/structure-list/components/structure-list-search/structure-list-search.component.html b/src/app/structure-list/components/structure-list-search/structure-list-search.component.html
index f73769ce6..fc1bf2ae9 100644
--- a/src/app/structure-list/components/structure-list-search/structure-list-search.component.html
+++ b/src/app/structure-list/components/structure-list-search/structure-list-search.component.html
@@ -35,7 +35,7 @@
           fxLayoutAlign="space-between center"
           (click)="openModal(TypeModal.accompaniment)"
         >
-          <span>Aide numérique</span>
+          <span>Démarches en ligne</span>
           <div class="arrow"></div>
         </button>
         <button
@@ -49,7 +49,7 @@
           fxLayoutAlign="space-between center"
           (click)="openModal(TypeModal.training)"
         >
-          <span>Ateliers</span>
+          <span>Compétences numériques</span>
           <div class="arrow"></div>
         </button>
         <button
diff --git a/src/app/structure-list/components/structure-list-search/structure-list-search.component.ts b/src/app/structure-list/components/structure-list-search/structure-list-search.component.ts
index fafe341d5..a706c5157 100644
--- a/src/app/structure-list/components/structure-list-search/structure-list-search.component.ts
+++ b/src/app/structure-list/components/structure-list-search/structure-list-search.component.ts
@@ -2,6 +2,7 @@ import { Component, EventEmitter, OnInit, Output } from '@angular/core';
 import { FormBuilder, FormGroup } from '@angular/forms';
 import { ActivatedRoute, Router } from '@angular/router';
 import { ButtonType } from '../../../shared/components/button/buttonType.enum';
+import { Theme } from '../../enum/themes.enum';
 import { TypeModal } from '../../enum/typeModal.enum';
 import { Category } from '../../models/category.model';
 import { Filter } from '../../models/filter.model';
@@ -77,7 +78,7 @@ export class StructureListSearchComponent implements OnInit {
     }
     // Add checked box filter
     modules.forEach((cm) => {
-      filters.push(new Filter(cm.text, cm.id, cm.displayText));
+      filters.push(new Filter(cm.name, cm.id, cm.name));
     });
     return filters;
   }
@@ -130,20 +131,20 @@ export class StructureListSearchComponent implements OnInit {
   // Check if some modules is checked on filter and store number of modules checked
   public countCheckFiltersOnModules(checkedModules: Module[]): void {
     this.numberAccompanimentChecked = checkedModules.filter(
-      (module) => module.text === 'proceduresAccompaniment'
+      (module) => module.name === 'proceduresAccompaniment'
     ).length;
     this.numberTrainingChecked = checkedModules.filter(
       (module) =>
-        module.text === 'baseSkills' ||
-        module.text === 'socialAndProfessional' ||
-        module.text === 'parentingHelp' ||
-        module.text === 'accessRight' ||
-        module.text === 'digitalCultureSecurity'
+        module.name === 'baseSkills' ||
+        module.name === 'socialAndProfessional' ||
+        module.name === 'parentingHelp' ||
+        module.name === 'accessRight' ||
+        module.name === 'digitalCultureSecurity'
     ).length;
-    this.numberPublicChecked = checkedModules.filter((module) => module.text === 'publicsAccompaniment').length;
-    this.numberEquipmentChecked = checkedModules.filter((module) => module.text === 'equipmentsAndServices').length;
+    this.numberPublicChecked = checkedModules.filter((module) => module.name === 'publicsAccompaniment').length;
+    this.numberEquipmentChecked = checkedModules.filter((module) => module.name === 'equipmentsAndServices').length;
     this.numberMoreFiltersChecked = checkedModules.filter(
-      (module) => module.text === 'labelsQualifications' || module.text === 'accessModality'
+      (module) => module.name === 'labelsQualifications' || module.name === 'accessModality'
     ).length;
   }
 
@@ -190,7 +191,7 @@ export class StructureListSearchComponent implements OnInit {
       this.numberMoreFiltersChecked++;
     } else {
       // Check if the module is present in the list and remove it
-      const index = this.checkedModulesFilter.findIndex((m: Module) => m.id === checkValue && m.text === categ);
+      const index = this.checkedModulesFilter.findIndex((m: Module) => m.id === checkValue && m.name === categ);
       if (index > -1) {
         this.checkedModulesFilter.splice(index, 1);
         this.countCheckFiltersOnModules(this.checkedModulesFilter);
@@ -200,31 +201,48 @@ export class StructureListSearchComponent implements OnInit {
   }
 
   // Get the categories for each modal type
+  //TODO: refactor
   private getData(): void {
-    this.searchService.getCategoriesAccompaniment().subscribe((res) => {
+    this.searchService.getCategories().subscribe((res) => {
       const categories: Category[] = res;
-      categories.forEach((category) => {
-        this.categoriesAccompaniment.push(category);
-      });
-    });
-    this.searchService.getCategoriesTraining().subscribe((res) => {
-      const categories: Category[] = res;
-      categories.forEach((category) => {
-        this.categoriesTraining.push(category);
-      });
-    });
-    this.searchService.getCategoriesOthers().subscribe((res) => {
-      const categories: Category[] = res;
-      categories.forEach((category) => {
-        if (category.id === 'publicsAccompaniment') {
-          this.categoriesPublic.push(category);
-        } else if (category.id === 'equipmentsAndServices') {
-          this.categoriesEquipment.push(category);
-        } else if (category.id === 'labelsQualifications' || category.id === 'accessModality') {
-          this.categoriesMoreFilters.push(category);
+      categories.forEach((category: Category) => {
+        switch (category.theme) {
+          case Theme.onlineProcedure:
+            this.categoriesAccompaniment.push(category);
+            break;
+          case Theme.skills:
+            this.categoriesTraining.push(category);
+            break;
+          case Theme.materialAndWifi:
+            this.categoriesEquipment.push(category);
+            break;
+          case Theme.public:
+            this.categoriesPublic.push(category);
+            break;
+          default:
+            this.categoriesMoreFilters.push(category);
+            break;
         }
       });
     });
+    // this.searchService.getCategoriesTraining().subscribe((res) => {
+    //   const categories: Category[] = res;
+    //   categories.forEach((category) => {
+    //     this.categoriesTraining.push(category);
+    //   });
+    // });
+    // this.searchService.getCategoriesOthers().subscribe((res) => {
+    //   const categories: Category[] = res;
+    //   categories.forEach((category) => {
+    //     if (category.id === 'publicsAccompaniment') {
+    //       this.categoriesPublic.push(category);
+    //     } else if (category.id === 'equipmentsAndServices') {
+    //       this.categoriesEquipment.push(category);
+    //     } else if (category.id === 'labelsQualifications' || category.id === 'accessModality') {
+    //       this.categoriesMoreFilters.push(category);
+    //     }
+    //   });
+    // });
   }
 
   public resetFilters(): void {
diff --git a/src/app/structure-list/enum/equipment.enum.ts b/src/app/structure-list/enum/equipment.enum.ts
index 880b4a16d..70a7d0cab 100644
--- a/src/app/structure-list/enum/equipment.enum.ts
+++ b/src/app/structure-list/enum/equipment.enum.ts
@@ -1,8 +1,6 @@
 export enum Equipment {
-  wifi = 'wifiEnAccesLibre',
-  bornes = 'bornesNumeriques',
-  printer = 'imprimantes',
-  tablet = 'tablettes',
-  computer = 'ordinateurs',
-  scanner = 'scanners',
+  wifi = 'wifi',
+  printer = 'printer',
+  computer = 'computer',
+  scanner = 'scanner',
 }
diff --git a/src/app/structure-list/enum/themes.enum.ts b/src/app/structure-list/enum/themes.enum.ts
new file mode 100644
index 000000000..eb979b452
--- /dev/null
+++ b/src/app/structure-list/enum/themes.enum.ts
@@ -0,0 +1,6 @@
+export enum Theme {
+  onlineProcedure = 'Démarches en ligne',
+  skills = 'Compétences numériques',
+  public = 'Public',
+  materialAndWifi = 'Matériel et wifi',
+}
diff --git a/src/app/structure-list/models/category.model.ts b/src/app/structure-list/models/category.model.ts
index d269f41b8..3a1f70af4 100644
--- a/src/app/structure-list/models/category.model.ts
+++ b/src/app/structure-list/models/category.model.ts
@@ -2,7 +2,7 @@ import { Module } from './module.model';
 
 export class Category {
   name: string;
-  surname: string;
+  theme: string;
   id: string;
   modules: Module[];
 
@@ -10,15 +10,13 @@ export class Category {
     Object.assign(this, obj, {
       modules:
         obj && obj.modules
-          ? obj.modules.map(
-              (module) => new Module(module.display_id ? module.display_id : module.id, module.text, module.text)
-            )
+          ? obj.modules.map((module: Module) => new Module(module.id, module.name, module.displayText, module.apticIds))
           : null,
     });
   }
 
   public isBaseSkills(): boolean {
-    return this.id === 'baseSkills';
+    return this.name === 'baseSkills';
   }
 
   public isRigthtsAccess(): boolean {
diff --git a/src/app/structure-list/models/module.model.ts b/src/app/structure-list/models/module.model.ts
index be98b490f..e51ea5ce9 100644
--- a/src/app/structure-list/models/module.model.ts
+++ b/src/app/structure-list/models/module.model.ts
@@ -1,12 +1,13 @@
 export class Module {
   id: string;
-  text: string;
-  count: number;
+  name: string;
   displayText?: string;
+  apticIds?: string[];
 
-  constructor(id: string, text: string, displayText?: string) {
+  constructor(id: string, name: string, displayText?: string, apticIds?: string[]) {
     this.id = id;
-    this.text = text;
-    this.displayText = displayText;
+    this.name = name;
+    this.displayText = displayText ? displayText : name;
+    this.apticIds = apticIds;
   }
 }
diff --git a/src/app/structure-list/services/search.service.ts b/src/app/structure-list/services/search.service.ts
index 0689a84b9..78408003c 100644
--- a/src/app/structure-list/services/search.service.ts
+++ b/src/app/structure-list/services/search.service.ts
@@ -15,21 +15,14 @@ export class SearchService {
 
   constructor(private http: HttpClient) {}
 
-  public getCategoriesTraining(): Observable<Category[]> {
-    return this.http
-      .get('/api/categories/categoriesFormations')
-      .pipe(map((data: any[]) => data.map((item) => new Category(item))));
-  }
-  public getCategoriesAccompaniment(): Observable<Category[]> {
-    return this.http
-      .get('/api/categories/categoriesAccompagnement')
-      .pipe(map((data: any[]) => data.map((item) => new Category(item))));
-  }
-  public getCategoriesOthers(): Observable<Category[]> {
-    return this.http
-      .get('/api/categories/categoriesOthers')
-      .pipe(map((data: any[]) => data.map((item) => new Category(item))));
+  /**
+   * Return repository data for search
+   * @returns {Category[]}
+   */
+  public getCategories(): Observable<Category[]> {
+    return this.http.get('/api/categories').pipe(map((data: any[]) => data.map((item) => new Category(item))));
   }
+
   public getJobs(): Observable<string[]> {
     return this.http.get('/api/jobs').pipe(map((data: any[]) => data.map((item) => item.name)));
   }
@@ -50,6 +43,6 @@ export class SearchService {
     return this.http.get<any>(`/api/userRegistry/count`).pipe();
   }
   public getIndex(array: Module[], id: string, categ: string): number {
-    return array.findIndex((m: Module) => m.id === id && m.text === categ);
+    return array.findIndex((m: Module) => m.id === id && m.name === categ);
   }
 }
diff --git a/src/app/utils/formUtils.ts b/src/app/utils/formUtils.ts
index fe7956267..400789f03 100644
--- a/src/app/utils/formUtils.ts
+++ b/src/app/utils/formUtils.ts
@@ -1,8 +1,8 @@
 import { UntypedFormArray, UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';
 import { structureFormStep } from '../form/form-view/structure-form/structureFormStep.enum';
 import { Day } from '../models/day.model';
-import { Time } from '../models/time.model';
 import { Structure } from '../models/structure.model';
+import { Time } from '../models/time.model';
 import { CustomRegExp } from './CustomRegExp';
 
 export interface IStructureSummary {
@@ -117,65 +117,67 @@ export class formUtils {
       placeOfReception: new UntypedFormControl(structure.placeOfReception, !isEditMode && Validators.required),
       choiceCompletion: new UntypedFormControl(structure.choiceCompletion, !isEditMode && Validators.required),
       exceptionalClosures: new UntypedFormControl(structure.exceptionalClosures),
-      labelsQualifications: this.loadArrayForCheckbox(structure.labelsQualifications, false),
-      accessModality: this.loadArrayForCheckbox(structure.accessModality, true),
-      publicsAccompaniment: this.loadArrayForCheckbox(structure.publicsAccompaniment, false),
-      proceduresAccompaniment: this.loadArrayForCheckbox(structure.proceduresAccompaniment, false),
+      //TODO: refactor
+      // labelsQualifications: this.loadArrayForCheckbox(structure.labelsQualifications, false),
+      // accessModality: this.loadArrayForCheckbox(structure.accessModality, true),
+      // publicsAccompaniment: this.loadArrayForCheckbox(structure.publicsAccompaniment, false),
+      // proceduresAccompaniment: this.loadArrayForCheckbox(structure.proceduresAccompaniment, false),
+      // publics: this.loadArrayForCheckbox(structure.publics, true),
       //TODO: remettre ou migrer les données de accompagnements à distance
       remoteAccompaniment: new UntypedFormControl(false),
       otherDescription: new UntypedFormControl(structure.otherDescription),
-      equipmentsAndServices: this.loadArrayForCheckbox(structure.equipmentsAndServices, false),
-      publics: this.loadArrayForCheckbox(structure.publics, true),
-      baseSkills: new UntypedFormControl(structure.baseSkills),
-      accessRight: new UntypedFormControl(structure.accessRight),
-      parentingHelp: new UntypedFormControl(structure.parentingHelp),
-      socialAndProfessional: new UntypedFormControl(structure.socialAndProfessional),
-      digitalCultureSecurity: new UntypedFormControl(structure.digitalCultureSecurity),
-      nbComputers: new UntypedFormControl(
-        structure.equipmentsAndServices.includes('ordinateurs') ? structure.nbComputers : 0,
-        [
-          Validators.required,
-          Validators.pattern(CustomRegExp.NO_NEGATIVE_NUMBER),
-          Validators.min(0),
-          Validators.max(1000),
-        ]
-      ),
-      nbPrinters: new UntypedFormControl(
-        structure.equipmentsAndServices.includes('imprimantes') ? structure.nbPrinters : 0,
-        [
-          Validators.required,
-          Validators.pattern(CustomRegExp.NO_NEGATIVE_NUMBER),
-          Validators.min(0),
-          Validators.max(1000),
-        ]
-      ),
-      nbTablets: new UntypedFormControl(
-        structure.equipmentsAndServices.includes('tablettes') ? structure.nbTablets : 0,
-        [
-          Validators.required,
-          Validators.pattern(CustomRegExp.NO_NEGATIVE_NUMBER),
-          Validators.min(0),
-          Validators.max(1000),
-        ]
-      ),
-      nbNumericTerminal: new UntypedFormControl(
-        structure.equipmentsAndServices.includes('bornesNumeriques') ? structure.nbNumericTerminal : 0,
-        [
-          Validators.required,
-          Validators.pattern(CustomRegExp.NO_NEGATIVE_NUMBER),
-          Validators.min(0),
-          Validators.max(1000),
-        ]
-      ),
-      nbScanners: new UntypedFormControl(
-        structure.equipmentsAndServices.includes('scanners') ? structure.nbScanners : 0,
-        [
-          Validators.required,
-          Validators.pattern(CustomRegExp.NO_NEGATIVE_NUMBER),
-          Validators.min(0),
-          Validators.max(1000),
-        ]
-      ),
+      // equipmentsAndServices: this.loadArrayForCheckbox(structure.equipmentsAndServices, false),
+      //TODO: refactor
+      // baseSkills: new UntypedFormControl(structure.baseSkills),
+      // accessRight: new UntypedFormControl(structure.accessRight),
+      // parentingHelp: new UntypedFormControl(structure.parentingHelp),
+      // socialAndProfessional: new UntypedFormControl(structure.socialAndProfessional),
+      // digitalCultureSecurity: new UntypedFormControl(structure.digitalCultureSecurity),
+      // nbComputers: new UntypedFormControl(
+      //   structure.equipmentsAndServices.includes('ordinateurs') ? structure.nbComputers : 0,
+      //   [
+      //     Validators.required,
+      //     Validators.pattern(CustomRegExp.NO_NEGATIVE_NUMBER),
+      //     Validators.min(0),
+      //     Validators.max(1000),
+      //   ]
+      // ),
+      // nbPrinters: new UntypedFormControl(
+      //   structure.equipmentsAndServices.includes('imprimantes') ? structure.nbPrinters : 0,
+      //   [
+      //     Validators.required,
+      //     Validators.pattern(CustomRegExp.NO_NEGATIVE_NUMBER),
+      //     Validators.min(0),
+      //     Validators.max(1000),
+      //   ]
+      // ),
+      // nbTablets: new UntypedFormControl(
+      //   structure.equipmentsAndServices.includes('tablettes') ? structure.nbTablets : 0,
+      //   [
+      //     Validators.required,
+      //     Validators.pattern(CustomRegExp.NO_NEGATIVE_NUMBER),
+      //     Validators.min(0),
+      //     Validators.max(1000),
+      //   ]
+      // ),
+      // nbNumericTerminal: new UntypedFormControl(
+      //   structure.equipmentsAndServices.includes('bornesNumeriques') ? structure.nbNumericTerminal : 0,
+      //   [
+      //     Validators.required,
+      //     Validators.pattern(CustomRegExp.NO_NEGATIVE_NUMBER),
+      //     Validators.min(0),
+      //     Validators.max(1000),
+      //   ]
+      // ),
+      // nbScanners: new UntypedFormControl(
+      //   structure.equipmentsAndServices.includes('scanners') ? structure.nbScanners : 0,
+      //   [
+      //     Validators.required,
+      //     Validators.pattern(CustomRegExp.NO_NEGATIVE_NUMBER),
+      //     Validators.min(0),
+      //     Validators.max(1000),
+      //   ]
+      // ),
       freeWorkShop: new UntypedFormControl(structure.freeWorkShop, [Validators.required]),
       dataShareConsentDate: new UntypedFormControl(structure.dataShareConsentDate),
       personalOffers: new UntypedFormControl(structure.personalOffers),
diff --git a/src/app/utils/utils.ts b/src/app/utils/utils.ts
index 03f4e0dba..22c6edfee 100644
--- a/src/app/utils/utils.ts
+++ b/src/app/utils/utils.ts
@@ -99,7 +99,7 @@ export class Utils {
   }
 
   public hasWifi(equipmentsAndServices: string[]) {
-    return equipmentsAndServices.includes('wifiEnAccesLibre');
+    return equipmentsAndServices.includes('wifi');
   }
 
   /**
@@ -117,21 +117,15 @@ export class Utils {
   }
 
   public filterOnlyEquipments(equipmentsAndServices: string[]): string[] {
-    return equipmentsAndServices.filter((equipment) =>
-      ['ordinateurs', 'tablettes', 'bornesNumeriques', 'imprimantes', 'scanners'].includes(equipment)
-    );
+    return equipmentsAndServices.filter((equipment) => ['ordinateurs', 'imprimantes', 'scanners'].includes(equipment));
   }
 
   public getEquipmentsLabelAndValue(equipment: Equipment, number: number): string {
     switch (equipment) {
       case Equipment.wifi:
         return 'Wifi en accès libre';
-      case Equipment.bornes:
-        return number > 1 ? `Bornes numériques : ${number}` : `Borne numérique : 1`;
       case Equipment.printer:
         return number > 1 ? `Imprimantes : ${number}` : `Imprimante : 1`;
-      case Equipment.tablet:
-        return number > 1 ? `Tablettes : ${number}` : `Tablette : 1`;
       case Equipment.computer:
         return number > 1 ? `Ordinateurs : ${number}` : `Ordinateur : 1`;
       case Equipment.scanner:
diff --git a/src/assets/logos/accompagnantCaf.svg b/src/assets/logos/caf.svg
similarity index 100%
rename from src/assets/logos/accompagnantCaf.svg
rename to src/assets/logos/caf.svg
diff --git a/src/assets/logos/impots.svg b/src/assets/logos/taxes.svg
similarity index 100%
rename from src/assets/logos/impots.svg
rename to src/assets/logos/taxes.svg
-- 
GitLab


From 3c192aa34a4ea524695363659cd25dfc89ce0901 Mon Sep 17 00:00:00 2001
From: Hugo SUBTIL <ext.sopra.husubtil@grandlyon.com>
Date: Mon, 24 Oct 2022 11:13:16 +0200
Subject: [PATCH 02/32] fix form

---
 .../form/footer-form/footer-form.component.ts |   8 +-
 src/app/form/form-view/form-view.component.ts |  71 ++--
 ...ersonal-offer-accompaniment.component.html |   2 +-
 .../personal-offer-accompaniment.component.ts |   3 +-
 .../structure-access-modality.component.html  |   4 +-
 .../structure-access-modality.component.ts    |   5 +-
 ...gital-helping-accompaniment.component.html |   4 +-
 ...digital-helping-accompaniment.component.ts |   8 +-
 .../structure-equipments.component.html       |  53 +--
 .../structure-equipments.component.ts         |  12 +-
 .../structure-form.component.html             |  12 +-
 .../structure-form.component.ts               | 115 +++---
 .../structure-labels.component.html           |   6 +-
 .../structure-labels.component.ts             |   4 +-
 .../structure-other-services.component.html   |  14 +-
 .../structure-other-services.component.ts     |   4 +-
 .../structure-public-target.component.html    |  54 ++-
 .../structure-public-target.component.ts      |  40 +-
 .../structure-training-type.component.html    |   8 +-
 .../structure-training-type.component.ts      |   5 +-
 .../structure-wifi.component.html             |   2 +-
 .../structure-wifi.component.ts               |   4 +-
 .../structure-detail-print.component.ts       |   5 -
 src/app/models/structure.model.ts             |  28 +-
 .../structure-edition-summary.component.html  |  10 +-
 .../structure-edition-summary.component.ts    |   4 +-
 src/app/services/structure.service.ts         |   4 +
 .../training-type-picker.component.html       |   2 +-
 .../training-type-picker.component.ts         |  62 ++--
 src/app/shared/enum/category.enum.ts          |  15 +-
 src/app/shared/enum/demarches.enum.ts         |  10 -
 .../modal-filter/modal-filter.component.ts    |   1 -
 .../structure-details.component.html          |  60 +--
 .../structure-details.component.scss          |   3 +
 .../structure-details.component.ts            |  79 ++--
 .../structure-list-search.component.ts        |   5 +-
 src/app/structure-list/enum/public.enum.ts    |  10 +-
 src/app/utils/formUtils.ts                    |  95 +++--
 src/app/utils/utils.ts                        |  21 +-
 src/assets/form/sprite.svg                    | 343 ++++++++++++++----
 src/assets/logos/demarcheMetropolitaine.svg   |  64 ++--
 src/assets/logos/monEspaceSante.svg           |  42 +++
 src/assets/logos/numRelay.svg                 | 110 ++++++
 43 files changed, 921 insertions(+), 490 deletions(-)
 create mode 100644 src/assets/logos/monEspaceSante.svg
 create mode 100644 src/assets/logos/numRelay.svg

diff --git a/src/app/form/footer-form/footer-form.component.ts b/src/app/form/footer-form/footer-form.component.ts
index b83c8bdf0..392723f27 100644
--- a/src/app/form/footer-form/footer-form.component.ts
+++ b/src/app/form/footer-form/footer-form.component.ts
@@ -100,13 +100,7 @@ export class FooterFormComponent implements OnChanges {
    * Check if trainings are selected in order to ask for pricing
    */
   public isTrainingsSelected(): boolean {
-    return (
-      this.form.value.accessRight.length > 0 ||
-      this.form.value.baseSkills.length > 0 ||
-      this.form.value.digitalCultureSecurity.length > 0 ||
-      this.form.value.parentingHelp.length > 0 ||
-      this.form.value.socialAndProfessional.length > 0
-    );
+    return this.form.value.categories.baseSkills.length > 0 || this.form.value.categories.advancedSkills.length > 0;
   }
 
   public prevPage(): void {
diff --git a/src/app/form/form-view/form-view.component.ts b/src/app/form/form-view/form-view.component.ts
index 9a39327cd..940b13279 100644
--- a/src/app/form/form-view/form-view.component.ts
+++ b/src/app/form/form-view/form-view.component.ts
@@ -225,6 +225,7 @@ export class FormViewComponent implements OnInit {
     this.userAcceptNewsletter = isAccepted;
   }
 
+  // TODO: refacto
   private createPersonalOfferForm(personalOffer: PersonalOffer): void {
     this.personalOfferForm = new UntypedFormGroup({
       publicsAccompaniment: new UntypedFormControl(personalOffer.publicsAccompaniment),
@@ -361,7 +362,15 @@ export class FormViewComponent implements OnInit {
   }
   public async saveStructureForm(): Promise<void> {
     const user = await this.profileService.getProfile();
+    console.log(
+      '🚀 ~ file: form-view.component.ts ~ line 365 ~ FormViewComponent ~ saveStructureForm ~ this.structureForm.value',
+      this.structureForm.value
+    );
     const newStructure = new Structure(this.structureForm.value);
+    console.log(
+      '🚀 ~ file: form-view.component.ts ~ line 366 ~ FormViewComponent ~ saveStructureForm ~ newStructure',
+      newStructure
+    );
     newStructure.hours = this.hoursForm.value;
     if (!this.structureForm.value.freeWorkShop) {
       newStructure.freeWorkShop = true;
@@ -408,10 +417,11 @@ export class FormViewComponent implements OnInit {
           contactMail: this.structureForm.get('contactMail').value,
         };
       case structureFormStep.structureAccessModality:
-      //TODO: refactor
-      // return {
-      //   accessModality: this.structureForm.get('accessModality').value,
-      // };
+        return {
+          categories: {
+            accessModality: this.structureForm.get('categories').get('accessModality').value,
+          },
+        };
       case structureFormStep.structureHours:
         return {
           hours: this.hoursForm.value,
@@ -430,45 +440,48 @@ export class FormViewComponent implements OnInit {
           website: this.structureForm.get('website').value,
         };
       case structureFormStep.structurePublicTarget:
-      //TODO: refactor
-      // return { publics: this.structureForm.get('publics').value };
+        return {
+          categories: {
+            publicsAccompaniment: this.structureForm.get('categories').get('publicsAccompaniment').value,
+          },
+        };
       case structureFormStep.structureDigitalHelpingAccompaniment:
-      // return {
-      //   proceduresAccompaniment: this.structureForm.get('proceduresAccompaniment').value,
-      // };
+        return {
+          categories: {
+            publicsAccompaniment: this.structureForm.get('categories').get('proceduresAccompaniment').value,
+          },
+        };
       case structureFormStep.structureTrainingType:
-      // return {
-      //   accessRight: this.structureForm.get('accessRight').value,
-      //   baseSkills: this.structureForm.get('baseSkills').value,
-      //   digitalCultureSecurity: this.structureForm.get('digitalCultureSecurity').value,
-      //   parentingHelp: this.structureForm.get('parentingHelp').value,
-      //   socialAndProfessional: this.structureForm.get('socialAndProfessional').value,
-      // };
+        return {
+          categories: {
+            baseSkills: this.structureForm.get('categories').get('baseSkills').value,
+            advancedSkills: this.structureForm.get('categories').get('advancedSkills').value,
+          },
+        };
       case structureFormStep.structureTrainingPrice:
         return {
           freeWorkShop: this.structureForm.get('freeWorkShop').value,
         };
+      //TODO: refactor ?
+      case structureFormStep.structureOtherServices:
       case structureFormStep.structureWifi:
-      // return {
-      //   equipmentsAndServices: this.structureForm.get('equipmentsAndServices').value,
-      // };
+        return {
+          categories: {
+            selfServiceMaterial: this.structureForm.get('categories').get('equipmentsAndServices').value,
+          },
+        };
       case structureFormStep.structureEquipments:
         return {
           nbComputers: this.structureForm.get('nbComputers').value,
-          nbNumericTerminal: this.structureForm.get('nbNumericTerminal').value,
           nbPrinters: this.structureForm.get('nbPrinters').value,
           nbScanners: this.structureForm.get('nbScanners').value,
-          nbTablets: this.structureForm.get('nbTablets').value,
         };
       case structureFormStep.structureLabels:
-      //TODO: refactor
-      // return {
-      //   labelsQualifications: this.structureForm.get('labelsQualifications').value,
-      // };
-      case structureFormStep.structureOtherServices:
-      // return {
-      //   equipmentsAndServices: this.structureForm.get('equipmentsAndServices').value,
-      // };
+        return {
+          categories: {
+            labelsQualifications: this.structureForm.get('categories').get('labelsQualifications').value,
+          },
+        };
       case structureFormStep.structureDescription:
         return {
           description: this.structureForm.get('description').value,
diff --git a/src/app/form/form-view/personal-offer-form/personal-offer-accompaniment/personal-offer-accompaniment.component.html b/src/app/form/form-view/personal-offer-form/personal-offer-accompaniment/personal-offer-accompaniment.component.html
index a145437ce..266df0c6d 100644
--- a/src/app/form/form-view/personal-offer-form/personal-offer-accompaniment/personal-offer-accompaniment.component.html
+++ b/src/app/form/form-view/personal-offer-form/personal-offer-accompaniment/personal-offer-accompaniment.component.html
@@ -12,7 +12,7 @@
           [ngClass]="{ selectedChoice: true }"
           [extraClass]="isSelectedModule(module) ? 'selected' : ''"
           [style]="buttonTypeEnum.CheckButton"
-          [text]="module.text"
+          [text]="module.name"
           (action)="toogleResult(module)"
         ></app-button>
       </span>
diff --git a/src/app/form/form-view/personal-offer-form/personal-offer-accompaniment/personal-offer-accompaniment.component.ts b/src/app/form/form-view/personal-offer-form/personal-offer-accompaniment/personal-offer-accompaniment.component.ts
index c91f92070..50c47e282 100644
--- a/src/app/form/form-view/personal-offer-form/personal-offer-accompaniment/personal-offer-accompaniment.component.ts
+++ b/src/app/form/form-view/personal-offer-form/personal-offer-accompaniment/personal-offer-accompaniment.component.ts
@@ -1,6 +1,7 @@
 import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
 import { UntypedFormGroup } from '@angular/forms';
 import { ButtonType } from '../../../../shared/components/button/buttonType.enum';
+import { CategoryEnum } from '../../../../shared/enum/category.enum';
 import { Category } from '../../../../structure-list/models/category.model';
 import { Module } from '../../../../structure-list/models/module.model';
 import { SearchService } from '../../../../structure-list/services/search.service';
@@ -25,7 +26,7 @@ export class PersonalOfferAccompanimentComponent implements OnInit {
     this.validateForm.emit();
     //TODO: refactor
     this.searchService.getCategories().subscribe((categories: Category[]) => {
-      this.proceduresAccompaniment = categories[0];
+      this.proceduresAccompaniment = categories.find((categorie) => categorie.id === CategoryEnum.onlineProcedures);
       const proceduresAccompaniment = this.personalOfferForm.get('proceduresAccompaniment').value;
       this.selectedModules = proceduresAccompaniment.map((procedure) =>
         this.proceduresAccompaniment.modules.find((module) => module.id === procedure)
diff --git a/src/app/form/form-view/structure-form/structure-access-modality/structure-access-modality.component.html b/src/app/form/form-view/structure-form/structure-access-modality/structure-access-modality.component.html
index 92df73478..2a9ffaabb 100644
--- a/src/app/form/form-view/structure-form/structure-access-modality/structure-access-modality.component.html
+++ b/src/app/form/form-view/structure-form/structure-access-modality/structure-access-modality.component.html
@@ -20,9 +20,9 @@
     <app-checkbox-form
       *ngFor="let module of accessModality.modules"
       [isChecked]="isInArray('accessModality', module.id)"
-      [text]="module.text"
+      [text]="module.name"
       [iconSvg]="module.id"
-      (checkEvent)="onCheckChange($event, 'accessModality', module.id)"
+      (checkEvent)="onCheckChange($event, 'categories.accessModality', module.id)"
     >
     </app-checkbox-form>
   </div>
diff --git a/src/app/form/form-view/structure-form/structure-access-modality/structure-access-modality.component.ts b/src/app/form/form-view/structure-form/structure-access-modality/structure-access-modality.component.ts
index aa0d7c280..ed6f06ded 100644
--- a/src/app/form/form-view/structure-form/structure-access-modality/structure-access-modality.component.ts
+++ b/src/app/form/form-view/structure-form/structure-access-modality/structure-access-modality.component.ts
@@ -26,11 +26,12 @@ export class StructureAccessModalityComponent implements OnInit {
   }
 
   public isInArray(formControlName: string, term: string) {
-    if (this.structureForm.controls[formControlName].value) {
-      return this.structureForm.controls[formControlName].value.includes(term);
+    if (this.structureForm.get('categories').get(formControlName).value) {
+      return this.structureForm.get('categories').get(formControlName).value.includes(term);
     }
     return false;
   }
+
   public goBack(): void {
     history.back();
   }
diff --git a/src/app/form/form-view/structure-form/structure-digital-helping-accompaniment/structure-digital-helping-accompaniment.component.html b/src/app/form/form-view/structure-form/structure-digital-helping-accompaniment/structure-digital-helping-accompaniment.component.html
index 780d45093..1d8540670 100644
--- a/src/app/form/form-view/structure-form/structure-digital-helping-accompaniment/structure-digital-helping-accompaniment.component.html
+++ b/src/app/form/form-view/structure-form/structure-digital-helping-accompaniment/structure-digital-helping-accompaniment.component.html
@@ -13,12 +13,12 @@
     </div>
   </div>
   <div class="btn-grid">
-    <span *ngFor="let accompaniment of proceduresAccompaniment.modules">
+    <span *ngFor="let accompaniment of onlineProcedures.modules">
       <app-button
         [ngClass]="{ selectedChoice: true }"
         [extraClass]="isInArray(accompaniment.id) ? 'selected' : ''"
         [style]="buttonTypeEnum.CheckButton"
-        [text]="accompaniment.text"
+        [text]="accompaniment.name"
         (action)="updateChoiceAccompaniment(accompaniment.id)"
       ></app-button>
     </span>
diff --git a/src/app/form/form-view/structure-form/structure-digital-helping-accompaniment/structure-digital-helping-accompaniment.component.ts b/src/app/form/form-view/structure-form/structure-digital-helping-accompaniment/structure-digital-helping-accompaniment.component.ts
index 53c04ed83..140b87938 100644
--- a/src/app/form/form-view/structure-form/structure-digital-helping-accompaniment/structure-digital-helping-accompaniment.component.ts
+++ b/src/app/form/form-view/structure-form/structure-digital-helping-accompaniment/structure-digital-helping-accompaniment.component.ts
@@ -9,7 +9,7 @@ import { Category } from '../../../../structure-list/models/category.model';
 })
 export class StructureDigitalHelpingAccompanimentComponent implements OnInit {
   @Input() structureForm: UntypedFormGroup;
-  @Input() proceduresAccompaniment: Category;
+  @Input() onlineProcedures: Category;
   @Input() isEditMode: boolean;
   @Output() updateChoice = new EventEmitter<any>();
   @Output() validateForm = new EventEmitter<any>();
@@ -21,13 +21,13 @@ export class StructureDigitalHelpingAccompanimentComponent implements OnInit {
   }
 
   public updateChoiceAccompaniment(choice: string) {
-    this.updateChoice.emit({ formControlName: 'proceduresAccompaniment', choice });
+    this.updateChoice.emit({ formControlName: 'categories.onlineProcedures', choice });
   }
 
   public isInArray(choice: string) {
     if (
-      this.structureForm.get('proceduresAccompaniment') &&
-      this.structureForm.get('proceduresAccompaniment').value.includes(choice)
+      this.structureForm.get('categories').get('onlineProcedures') &&
+      this.structureForm.get('categories').get('onlineProcedures').value.includes(choice)
     )
       return true;
     return false;
diff --git a/src/app/form/form-view/structure-form/structure-equipments/structure-equipments.component.html b/src/app/form/form-view/structure-form/structure-equipments/structure-equipments.component.html
index b060ca580..0460957c2 100644
--- a/src/app/form/form-view/structure-form/structure-equipments/structure-equipments.component.html
+++ b/src/app/form/form-view/structure-form/structure-equipments/structure-equipments.component.html
@@ -13,17 +13,14 @@
     </div>
   </div>
   <ng-container *ngFor="let equipment of equipmentsAndServices">
-    <div
-      class="controller equipments"
-      *ngIf="['ordinateurs', 'tablettes', 'bornesNumeriques', 'imprimantes', 'scanners'].includes(equipment.module.id)"
-    >
+    <div class="controller equipments" *ngIf="['computer', 'printer', 'scanner'].includes(equipment.module.id)">
       <div fxLayout="column">
         <div class="controllerHeader" fxLayout="row" fxLayoutAlign="space-between center">
           <div class="flex-item">
-            <p class="no-margin">Nombre {{ formatEquipment(equipment.module.text) }}</p>
+            <p class="no-margin">Nombre {{ formatEquipment(equipment.module.name) }}</p>
           </div>
           <div class="inputSection flex-item equipments" fxLayout="row" fxLayoutAlign="center center">
-            <ng-container *ngIf="equipment.module.id == 'ordinateurs'">
+            <ng-container *ngIf="equipment.module.id == 'computer'">
               <svg
                 class="hide"
                 aria-hidden="true"
@@ -43,27 +40,7 @@
                 [(value)]="structureForm.value.nbComputers"
               />
             </ng-container>
-            <ng-container *ngIf="equipment.module.id == 'tablettes'">
-              <svg
-                class="hide"
-                aria-hidden="true"
-                (click)="changeValueHandler(equipment.module.id, -1)"
-                [ngClass]="{ disabled: structureForm.value.nbTablets === 0 }"
-              >
-                <use [attr.xlink:href]="'assets/form/sprite.svg#minus'"></use>
-              </svg>
-              <input
-                type="number"
-                (input)="setValidationsForm()"
-                formControlName="nbTablets"
-                min="0"
-                step="1"
-                max="1000"
-                class="form-input nbEquipment"
-                [(value)]="structureForm.value.nbTablets"
-              />
-            </ng-container>
-            <ng-container *ngIf="equipment.module.id == 'imprimantes'">
+            <ng-container *ngIf="equipment.module.id == 'printer'">
               <svg
                 class="hide"
                 aria-hidden="true"
@@ -83,27 +60,7 @@
                 [(value)]="structureForm.value.nbPrinters"
               />
             </ng-container>
-            <ng-container *ngIf="equipment.module.id == 'bornesNumeriques'">
-              <svg
-                class="hide"
-                aria-hidden="true"
-                (click)="changeValueHandler(equipment.module.id, -1)"
-                [ngClass]="{ disabled: structureForm.value.nbNumericTerminal === 0 }"
-              >
-                <use [attr.xlink:href]="'assets/form/sprite.svg#minus'"></use>
-              </svg>
-              <input
-                type="number"
-                (input)="setValidationsForm()"
-                formControlName="nbNumericTerminal"
-                min="0"
-                step="1"
-                max="1000"
-                class="form-input nbEquipment"
-                [(value)]="structureForm.value.nbNumericTerminal"
-              />
-            </ng-container>
-            <ng-container *ngIf="equipment.module.id == 'scanners'">
+            <ng-container *ngIf="equipment.module.id == 'scanner'">
               <svg
                 class="hide"
                 aria-hidden="true"
diff --git a/src/app/form/form-view/structure-form/structure-equipments/structure-equipments.component.ts b/src/app/form/form-view/structure-form/structure-equipments/structure-equipments.component.ts
index a4e52968a..ffff79608 100644
--- a/src/app/form/form-view/structure-form/structure-equipments/structure-equipments.component.ts
+++ b/src/app/form/form-view/structure-form/structure-equipments/structure-equipments.component.ts
@@ -1,6 +1,6 @@
 import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
 import { AbstractControl, UntypedFormGroup } from '@angular/forms';
-import { Module } from '../../../../structure-list/models/module.model';
+import { Category } from '../../../../structure-list/models/category.model';
 
 @Component({
   selector: 'app-structure-equipments',
@@ -10,7 +10,7 @@ import { Module } from '../../../../structure-list/models/module.model';
 export class StructureEquipmentsComponent implements OnInit {
   @Input() structureForm: UntypedFormGroup;
   @Input() isEditMode: boolean;
-  @Input() equipmentsAndServices: { module: Module; openned: boolean }[];
+  @Input() equipmentsAndServices: { category: Category; openned: boolean }[];
   @Output() validateForm = new EventEmitter<any>();
 
   private vowels = ['a', 'e', 'i', 'o', 'u', 'y'];
@@ -25,11 +25,9 @@ export class StructureEquipmentsComponent implements OnInit {
 
   public changeValueHandler(equipment: string, value = 0): void {
     let field = '';
-    if (equipment === 'ordinateurs') field = 'nbComputers';
-    if (equipment === 'tablettes') field = 'nbTablets';
-    if (equipment === 'scanners') field = 'nbScanners';
-    if (equipment === 'bornesNumeriques') field = 'nbNumericTerminal';
-    if (equipment === 'imprimantes') field = 'nbPrinters';
+    if (equipment === 'scanner') field = 'nbScanners';
+    if (equipment === 'computer') field = 'nbComputers';
+    if (equipment === 'printer') field = 'nbPrinters';
 
     if (value === -1 && this.structureForm.value[field] === 0) return;
     if (this.structureForm.value[field] + value < 0) return;
diff --git a/src/app/form/form-view/structure-form/structure-form.component.html b/src/app/form/form-view/structure-form/structure-form.component.html
index 1d9bcb85a..b246fa3be 100644
--- a/src/app/form/form-view/structure-form/structure-form.component.html
+++ b/src/app/form/form-view/structure-form/structure-form.component.html
@@ -112,7 +112,10 @@
     <app-structure-public-target
       [isEditMode]="isEditMode"
       [structureForm]="structureForm"
-      [publics]="publics"
+      [age]="age"
+      [handicaps]="handicaps"
+      [publicOthers]="publicOthers"
+      [languageAndIlliteracy]="languageAndIlliteracy"
       (validateForm)="setValidationsForm()"
       (updateChoice)="updateChoice($event)"
     >
@@ -122,6 +125,7 @@
     <app-structure-training-type
       [isEditMode]="isEditMode"
       [structureForm]="structureForm"
+      [trainingCategories]="trainingCategories"
       (validateForm)="setValidationsForm()"
     ></app-structure-training-type>
   </div>
@@ -144,7 +148,7 @@
   <div *ngIf="currentStep == structureFormStep.structureEquipments">
     <app-structure-equipments
       [structureForm]="structureForm"
-      [equipmentsAndServices]="equipmentsAndServices"
+      [equipmentsAndServices]="equipments"
       (validateForm)="setValidationsForm($event)"
       [isEditMode]="isEditMode"
       (inArray)="isInArray($event)"
@@ -162,7 +166,7 @@
   <div *ngIf="currentStep == structureFormStep.structureOtherServices">
     <app-structure-other-services
       [structureForm]="structureForm"
-      [equipmentsAndServices]="equipmentsAndServices"
+      [equipmentsAndServices]="equipmentsServices"
       [isEditMode]="isEditMode"
       (validateForm)="setValidationsForm($event)"
       (checkChange)="onCheckChange($event)"
@@ -172,7 +176,7 @@
     <app-structure-digital-helping-accompaniment
       [isEditMode]="isEditMode"
       [structureForm]="structureForm"
-      [proceduresAccompaniment]="proceduresAccompaniment"
+      [onlineProcedures]="onlineProcedures"
       (validateForm)="setValidationsForm($event)"
       (updateChoice)="updateChoice($event)"
     ></app-structure-digital-helping-accompaniment>
diff --git a/src/app/form/form-view/structure-form/structure-form.component.ts b/src/app/form/form-view/structure-form/structure-form.component.ts
index db83cea1a..783a79fbb 100644
--- a/src/app/form/form-view/structure-form/structure-form.component.ts
+++ b/src/app/form/form-view/structure-form/structure-form.component.ts
@@ -5,6 +5,7 @@ import { Address } from '../../../models/address.model';
 import { Structure } from '../../../models/structure.model';
 import { User } from '../../../models/user.model';
 import { ProfileService } from '../../../profile/services/profile.service';
+import { CategoryEnum } from '../../../shared/enum/category.enum';
 import { Category } from '../../../structure-list/models/category.model';
 import { Module } from '../../../structure-list/models/module.model';
 import { SearchService } from '../../../structure-list/services/search.service';
@@ -35,8 +36,6 @@ export class StructureFormComponent implements OnChanges, OnInit {
   // Collapse var
   public showWebsite: boolean = false;
   public showSocialNetwork: boolean = false;
-  public showPublicsAccompaniment: boolean;
-  public showProceduresAccompaniment: boolean;
 
   // Condition form
   public isClaimMode = false;
@@ -44,13 +43,17 @@ export class StructureFormComponent implements OnChanges, OnInit {
   public userAcceptSavedDate = false;
 
   // Form var
-  public equipmentsAndServices: { module: Module; openned: boolean }[] = [];
+  public equipmentsServices: { module: Module; openned: boolean }[] = [];
+  public equipments: { module: Module; openned: boolean }[] = [];
   public trainingCategories: { category: Category; openned: boolean }[] = [];
   public accessModality: Category;
   public labelsQualifications: Category;
-  public proceduresAccompaniment: Category;
+  public onlineProcedures: Category;
   public publicsAccompaniment: Category;
-  public publics: Category;
+  public age: Category;
+  public publicOthers: Category;
+  public handicaps: Category;
+  public languageAndIlliteracy: Category;
 
   constructor(
     private searchService: SearchService,
@@ -138,6 +141,7 @@ export class StructureFormComponent implements OnChanges, OnInit {
   }
 
   public setValidationsForm(): void {
+    console.log(this.structureForm);
     if (this.isClaimMode) {
       //TODO: check claim mode
       //   this.pagesValidation[structureFormStep.structureConsent] = { valid: this.userAcceptSavedDate };
@@ -172,7 +176,7 @@ export class StructureFormComponent implements OnChanges, OnInit {
         valid: this.structureForm.get('structureType').valid,
       };
       this.pagesValidation[structureFormStep.structureAccessModality] = {
-        valid: this.structureForm.get('accessModality').valid,
+        valid: this.structureForm.get('categories').get('accessModality').valid,
       };
       this.pagesValidation[structureFormStep.structureHours] = {
         valid: this.hoursForm.valid && this.structureForm.get('exceptionalClosures').valid,
@@ -189,10 +193,10 @@ export class StructureFormComponent implements OnChanges, OnInit {
             !this.showSocialNetwork),
       };
       this.pagesValidation[structureFormStep.structurePublicTarget] = {
-        valid: this.structureForm.get('publics').valid,
+        valid: this.structureForm.get('categories').get('publicsAccompaniment').valid,
       };
       this.pagesValidation[structureFormStep.structureDigitalHelpingAccompaniment] = {
-        valid: this.structureForm.get('proceduresAccompaniment').valid,
+        valid: this.structureForm.get('categories').get('onlineProcedures').valid,
       };
 
       this.pagesValidation[structureFormStep.structureTrainingType] = {
@@ -202,14 +206,12 @@ export class StructureFormComponent implements OnChanges, OnInit {
         valid: this.structureForm.get('freeWorkShop').valid,
       };
       this.pagesValidation[structureFormStep.structureWifi] = {
-        valid: this.structureForm.get('equipmentsAndServices').valid,
+        valid: this.structureForm.get('categories').get('equipmentsAndServices').valid,
       };
       this.pagesValidation[structureFormStep.structureEquipments] = {
         valid:
           this.structureForm.get('nbComputers').valid &&
           this.structureForm.get('nbPrinters').valid &&
-          this.structureForm.get('nbTablets').valid &&
-          this.structureForm.get('nbNumericTerminal').valid &&
           this.structureForm.get('nbScanners').valid,
         name: 'Equipements mis à disposition',
       };
@@ -217,7 +219,7 @@ export class StructureFormComponent implements OnChanges, OnInit {
         valid: true,
       };
       this.pagesValidation[structureFormStep.structureOtherServices] = {
-        valid: this.structureForm.get('equipmentsAndServices').valid,
+        valid: this.structureForm.get('categories').get('equipmentsAndServices').valid,
       };
       this.pagesValidation[structureFormStep.structureDescription] = {
         valid: true,
@@ -234,37 +236,66 @@ export class StructureFormComponent implements OnChanges, OnInit {
   }
 
   async setCategories(): Promise<void> {
-    //TODO: refactor
-    this.searchService.getCategories().subscribe((categories: Category[]) => {
-      this.proceduresAccompaniment = categories[0];
+    const categories = await this.searchService.getCategories().toPromise();
+    categories.forEach((categ) => {
+      switch (categ.id) {
+        case CategoryEnum.onlineProcedures: {
+          this.onlineProcedures = categ;
+          break;
+        }
+        case CategoryEnum.baseSkills:
+        case CategoryEnum.advancedSkills: {
+          this.trainingCategories.push({ category: categ, openned: false });
+          break;
+        }
+        case CategoryEnum.accessModality: {
+          this.accessModality = categ;
+          break;
+        }
+        case CategoryEnum.selfServiceMaterial: {
+          categ.modules.forEach((c) => {
+            this.equipments.push({ module: c, openned: false });
+          });
+          console.log(this.equipments);
+          break;
+        }
+        case CategoryEnum.equipmentsServices: {
+          categ.modules.forEach((c) => {
+            this.equipmentsServices.push({ module: c, openned: false });
+          });
+          console.log(this.equipmentsServices);
+          console.log(
+            '🚀 ~ file: structure-form.component.ts ~ line 265 ~ StructureFormComponent ~ categories.forEach ~ this.equipmentsServices',
+            this.equipmentsServices
+          );
+          break;
+        }
+        case CategoryEnum.labelsQualifications: {
+          this.labelsQualifications = categ;
+          break;
+        }
+        case CategoryEnum.age: {
+          this.age = categ;
+          break;
+        }
+        case CategoryEnum.languageAndIlliteracy: {
+          this.languageAndIlliteracy = categ;
+          break;
+        }
+        case CategoryEnum.publicOthers: {
+          this.publicOthers = categ;
+          break;
+        }
+        case CategoryEnum.handicaps: {
+          this.handicaps = categ;
+          break;
+        }
+        case CategoryEnum.handicaps: {
+          this.publicsAccompaniment = categ;
+          break;
+        }
+      }
     });
-    // const equipmentsCategs = await this.searchService.getCategoriesOthers().toPromise();
-    // equipmentsCategs.forEach((categ) => {
-    //   switch (categ.id) {
-    //     case CategoryEnum.accessModality: {
-    //       this.accessModality = categ;
-    //       break;
-    //     }
-    //     case CategoryEnum.equipmentsAndServices: {
-    //       categ.modules.forEach((c) => {
-    //         this.equipmentsAndServices.push({ module: c, openned: false });
-    //       });
-    //       break;
-    //     }
-    //     case CategoryEnum.labelsQualifications: {
-    //       this.labelsQualifications = categ;
-    //       break;
-    //     }
-    //     case CategoryEnum.publics: {
-    //       this.publics = categ;
-    //       break;
-    //     }
-    //     case CategoryEnum.publicsAccompaniment: {
-    //       this.publicsAccompaniment = categ;
-    //       break;
-    //     }
-    //   }
-    // });
     // const categs = await this.searchService.getCategoriesTraining().toPromise();
     // categs.forEach((categ) => {
     //   this.trainingCategories.push({ category: categ, openned: false });
diff --git a/src/app/form/form-view/structure-form/structure-labels/structure-labels.component.html b/src/app/form/form-view/structure-form/structure-labels/structure-labels.component.html
index 40530a34d..0e8d8d613 100644
--- a/src/app/form/form-view/structure-form/structure-labels/structure-labels.component.html
+++ b/src/app/form/form-view/structure-form/structure-labels/structure-labels.component.html
@@ -15,11 +15,11 @@
   <div class="labelsQualifications" *ngIf="labelsQualifications" fxLayout="row wrap" fxLayoutAlign="flex-start">
     <app-checkbox-form
       *ngFor="let module of labelsQualifications.modules"
-      [isChecked]="isInArray(module.id, labelsQualifications.id)"
-      [text]="module.text"
+      [isChecked]="isInArray(module.id, 'labelsQualifications')"
+      [text]="module.name"
       [iconSvg]="module.id"
       [iconType]="'labels'"
-      (checkEvent)="onCheckChange($event, labelsQualifications.id, module.id)"
+      (checkEvent)="onCheckChange($event, 'categories.labelsQualifications', module.id)"
     >
     </app-checkbox-form>
   </div>
diff --git a/src/app/form/form-view/structure-form/structure-labels/structure-labels.component.ts b/src/app/form/form-view/structure-form/structure-labels/structure-labels.component.ts
index b5db68fde..98ef48c8c 100644
--- a/src/app/form/form-view/structure-form/structure-labels/structure-labels.component.ts
+++ b/src/app/form/form-view/structure-form/structure-labels/structure-labels.component.ts
@@ -19,8 +19,8 @@ export class StructureLabelsComponent implements OnInit {
   }
   // Check if a FormControl value is in FormArray
   public isInArray(term: string, formControlName: string): boolean {
-    if (this.structureForm.controls[formControlName].value) {
-      return this.structureForm.controls[formControlName].value.includes(term);
+    if (this.structureForm.get('categories').get(formControlName).value) {
+      return this.structureForm.get('categories').get(formControlName).value.includes(term);
     }
     return false;
   }
diff --git a/src/app/form/form-view/structure-form/structure-other-services/structure-other-services.component.html b/src/app/form/form-view/structure-form/structure-other-services/structure-other-services.component.html
index 623537c72..1741d5c21 100644
--- a/src/app/form/form-view/structure-form/structure-other-services/structure-other-services.component.html
+++ b/src/app/form/form-view/structure-form/structure-other-services/structure-other-services.component.html
@@ -13,6 +13,15 @@
     </div>
   </div>
   <div *ngIf="equipmentsAndServices" fxLayout="column wrap" fxLayoutAlign="flex-start" class="otherServices">
+    <!-- Display checkbox conditionning next screen -->
+    <!-- TODO: Us for display this screen -->
+    <app-checkbox-form
+      [isChecked]="isInArray('equipmentsAndServices', 'solidarityMaterial')"
+      [text]="'Vente de matériel numérique à tarif solidaire'"
+      [iconSvg]="'venteMaterielPrixSolidaire'"
+    >
+    </app-checkbox-form>
+    <!-- Regular database info -->
     <ng-container *ngFor="let service of equipmentsAndServices">
       <app-checkbox-form
         *ngIf="
@@ -20,13 +29,12 @@
             'donDeMateriels',
             'reconditionnementsDeMateriel',
             'accesLivresInformatiques',
-            'venteMaterielPrixSolidaire'
           ].includes(service.module.id)
         "
         [isChecked]="isInArray('equipmentsAndServices', service.module.id)"
-        [text]="service.module.text"
+        [text]="service.module.name"
         [iconSvg]="service.module.id"
-        (checkEvent)="onCheckChange($event, 'equipmentsAndServices', service.module.id)"
+        (checkEvent)="onCheckChange($event, 'categories.equipmentsAndServices', service.module.id)"
       >
       </app-checkbox-form>
     </ng-container>
diff --git a/src/app/form/form-view/structure-form/structure-other-services/structure-other-services.component.ts b/src/app/form/form-view/structure-form/structure-other-services/structure-other-services.component.ts
index 2df67bf3f..c5548330b 100644
--- a/src/app/form/form-view/structure-form/structure-other-services/structure-other-services.component.ts
+++ b/src/app/form/form-view/structure-form/structure-other-services/structure-other-services.component.ts
@@ -18,8 +18,8 @@ export class StructureOtherServicesComponent implements OnInit {
   }
 
   public isInArray(formControlName: string, term: string) {
-    if (this.structureForm.controls[formControlName].value) {
-      return this.structureForm.controls[formControlName].value.includes(term);
+    if (this.structureForm.get('categories').get(formControlName).value) {
+      return this.structureForm.get('categories').get(formControlName).value.includes(term);
     }
     return false;
   }
diff --git a/src/app/form/form-view/structure-form/structure-public-target/structure-public-target.component.html b/src/app/form/form-view/structure-form/structure-public-target/structure-public-target.component.html
index 4e2482ff8..9d8a61abf 100644
--- a/src/app/form/form-view/structure-form/structure-public-target/structure-public-target.component.html
+++ b/src/app/form/form-view/structure-form/structure-public-target/structure-public-target.component.html
@@ -16,15 +16,57 @@
     <app-svg-icon [iconClass]="'icon-26'" [type]="'form'" [icon]="'notValidate'" class="validationIcon"></app-svg-icon>
     <span>Il faut renseigner au moins un champ</span>
   </p>
-  <div *ngIf="publics" class="btn-grid">
-    <span *ngFor="let choice of publics.modules">
+  <div *ngIf="publicOthers">
+    <div class="btn-grid">
       <app-button
+        *ngFor="let choice of publicOthers.modules"
         [ngClass]="{ selectedChoice: true }"
-        [extraClass]="isInArray(choice.id) ? 'selected' : ''"
+        [extraClass]="isInArray(choice.id, 'publicOthers') ? 'selected' : ''"
         [style]="buttonTypeEnum.CheckButton"
-        [text]="choice.text"
-        (action)="updateChoicePublic(choice.id)"
+        [text]="choice.name"
+        (action)="updateChoicePublic(choice.id, 'publicOthers')"
       ></app-button>
-    </span>
+    </div>
+  </div>
+  <div *ngIf="age">
+    <h3>Âge</h3>
+    <div class="btn-grid">
+      <app-button
+        *ngFor="let choice of age.modules"
+        [ngClass]="{ selectedChoice: true }"
+        [extraClass]="isInArray(choice.id, 'age') ? 'selected' : ''"
+        [style]="buttonTypeEnum.CheckButton"
+        [text]="choice.name"
+        (action)="updateChoicePublic(choice.id, 'age')"
+      ></app-button>
+    </div>
+  </div>
+
+  <div *ngIf="languageAndIlliteracy">
+    <h3>Langue et illettrisme</h3>
+    <div class="btn-grid">
+      <app-button
+        *ngFor="let choice of languageAndIlliteracy.modules"
+        [ngClass]="{ selectedChoice: true }"
+        [extraClass]="isInArray(choice.id, 'languageAndIlliteracy') ? 'selected' : ''"
+        [style]="buttonTypeEnum.CheckButton"
+        [text]="choice.name"
+        (action)="updateChoicePublic(choice.id, 'languageAndIlliteracy')"
+      ></app-button>
+    </div>
+  </div>
+
+  <div *ngIf="handicaps">
+    <h3>Handicaps</h3>
+    <div class="btn-grid">
+      <app-button
+        *ngFor="let choice of handicaps.modules"
+        [ngClass]="{ selectedChoice: true }"
+        [extraClass]="isInArray(choice.id, 'handicaps') ? 'selected' : ''"
+        [style]="buttonTypeEnum.CheckButton"
+        [text]="choice.name"
+        (action)="updateChoicePublic(choice.id, 'handicaps')"
+      ></app-button>
+    </div>
   </div>
 </form>
diff --git a/src/app/form/form-view/structure-form/structure-public-target/structure-public-target.component.ts b/src/app/form/form-view/structure-form/structure-public-target/structure-public-target.component.ts
index f72179bda..6c6c5b9ae 100644
--- a/src/app/form/form-view/structure-form/structure-public-target/structure-public-target.component.ts
+++ b/src/app/form/form-view/structure-form/structure-public-target/structure-public-target.component.ts
@@ -9,23 +9,51 @@ import { Category } from '../../../../structure-list/models/category.model';
 })
 export class StructurePublicTargetComponent implements OnInit {
   @Input() structureForm: UntypedFormGroup;
-  @Input() publics: Category;
-  @Input() isEditMode: boolean;
+  @Input() age: Category;
+  @Input() languageAndIlliteracy: Category;
+  @Input() handicaps: Category;
+  @Input() publicOthers: Category;
   @Output() updateChoice = new EventEmitter<any>();
   @Output() validateForm = new EventEmitter<any>();
 
   public buttonTypeEnum = ButtonType;
 
   ngOnInit(): void {
+    console.log('TEST: ', this.age);
     this.validateForm.emit();
   }
 
-  public updateChoicePublic(choice: string) {
-    this.updateChoice.emit({ formControlName: 'publics', choice });
+  // private mapCategories() {
+  //   this.publics.forEach((categorie: Category) => {
+  //     switch (categorie.id) {
+  //       case PublicCategorie.age:
+  //         this.age = categorie;
+  //         break;
+  //       case PublicCategorie.languageAndIlliteracy:
+  //         this.languageAndIlliteracy = categorie;
+  //         break;
+  //       case PublicCategorie.handicaps:
+  //         this.handicaps = categorie;
+  //         break;
+  //       case PublicCategorie.other:
+  //         this.others = categorie;
+  //         break;
+  //       default:
+  //         throw new Error(`Unhandled public categorie : ${categorie.id}`);
+  //     }
+  //   });
+  // }
+
+  public updateChoicePublic(choice: string, formControlName: string) {
+    this.updateChoice.emit({ formControlName: `categories.${formControlName}`, choice });
   }
 
-  public isInArray(choice: string) {
-    if (this.structureForm.get('publics') && this.structureForm.get('publics').value.includes(choice)) return true;
+  public isInArray(choice: string, formControlName: string) {
+    if (
+      this.structureForm.get('categories').get(formControlName) &&
+      this.structureForm.get('categories').get(formControlName).value.includes(choice)
+    )
+      return true;
     return false;
   }
   public goBack(): void {
diff --git a/src/app/form/form-view/structure-form/structure-training-type/structure-training-type.component.html b/src/app/form/form-view/structure-form/structure-training-type/structure-training-type.component.html
index accbc729b..24cd96155 100644
--- a/src/app/form/form-view/structure-form/structure-training-type/structure-training-type.component.html
+++ b/src/app/form/form-view/structure-form/structure-training-type/structure-training-type.component.html
@@ -13,11 +13,9 @@
     </div>
   </div>
   <app-training-type-picker
-    [baseSkills]="structureForm.get('baseSkills').value"
-    [accessRight]="structureForm.get('accessRight').value"
-    [digitalCultureSecurity]="structureForm.get('digitalCultureSecurity').value"
-    [socialAndProfessional]="structureForm.get('socialAndProfessional').value"
-    [parentingHelp]="structureForm.get('parentingHelp').value"
+    [baseSkills]="structureForm.get('categories').get('baseSkills').value"
+    [advancedSkills]="structureForm.get('categories').get('advancedSkills').value"
+    [trainingCategories]="trainingCategories"
     (selectedType)="setTrainingsFromCategories($event)"
   ></app-training-type-picker>
 </form>
diff --git a/src/app/form/form-view/structure-form/structure-training-type/structure-training-type.component.ts b/src/app/form/form-view/structure-form/structure-training-type/structure-training-type.component.ts
index 08a6b93e7..4616b175a 100644
--- a/src/app/form/form-view/structure-form/structure-training-type/structure-training-type.component.ts
+++ b/src/app/form/form-view/structure-form/structure-training-type/structure-training-type.component.ts
@@ -8,6 +8,7 @@ import { Category } from '../../../../structure-list/models/category.model';
 })
 export class StructureTrainingTypeComponent {
   @Input() structureForm: UntypedFormGroup;
+  @Input() trainingCategories: { category: Category; openned: boolean }[];
   @Input() isEditMode: boolean;
   @Output() validateForm = new EventEmitter<any>();
 
@@ -18,8 +19,8 @@ export class StructureTrainingTypeComponent {
   public setTrainingsFromCategories(categories: Category[]) {
     for (const categorie of categories) {
       const moduleIds: string[] = categorie.modules.map((module) => module.id);
-      if (this.structureForm.get(categorie.id)) {
-        this.structureForm.get(categorie.id).patchValue(moduleIds);
+      if (this.structureForm.get('categories').get(categorie.id)) {
+        this.structureForm.get('categories').get(categorie.id).patchValue(moduleIds);
       }
     }
   }
diff --git a/src/app/form/form-view/structure-form/structure-wifi/structure-wifi.component.html b/src/app/form/form-view/structure-form/structure-wifi/structure-wifi.component.html
index 8bb5df33d..7e24b6775 100644
--- a/src/app/form/form-view/structure-form/structure-wifi/structure-wifi.component.html
+++ b/src/app/form/form-view/structure-form/structure-wifi/structure-wifi.component.html
@@ -13,7 +13,7 @@
   </div>
   <app-radio-form
     [selectedOption]="isEditMode ? isInArray('equipmentsAndServices', 'wifiEnAccesLibre') : null"
-    (selectedEvent)="onCheckChange($event, 'equipmentsAndServices', 'wifiEnAccesLibre')"
+    (selectedEvent)="onCheckChange($event, 'categories.equipmentsAndServices', 'wifiEnAccesLibre')"
   >
   </app-radio-form>
 </form>
diff --git a/src/app/form/form-view/structure-form/structure-wifi/structure-wifi.component.ts b/src/app/form/form-view/structure-form/structure-wifi/structure-wifi.component.ts
index fd5676282..66e37771e 100644
--- a/src/app/form/form-view/structure-form/structure-wifi/structure-wifi.component.ts
+++ b/src/app/form/form-view/structure-form/structure-wifi/structure-wifi.component.ts
@@ -15,8 +15,8 @@ export class StructureWifiComponent implements OnInit {
     if (this.isEditMode) this.validateForm.emit();
   }
   public isInArray(formControlName: string, term: string): boolean {
-    if (this.structureForm.controls[formControlName].value) {
-      return this.structureForm.controls[formControlName].value.includes(term);
+    if (this.structureForm.get('categories').get(formControlName).value) {
+      return this.structureForm.get('categories').get(formControlName).value.includes(term);
     }
     return false;
   }
diff --git a/src/app/form/orientation-form/component/structure-detail-print/structure-detail-print.component.ts b/src/app/form/orientation-form/component/structure-detail-print/structure-detail-print.component.ts
index d8eb7d96e..7a3ee67cb 100644
--- a/src/app/form/orientation-form/component/structure-detail-print/structure-detail-print.component.ts
+++ b/src/app/form/orientation-form/component/structure-detail-print/structure-detail-print.component.ts
@@ -21,11 +21,6 @@ export class StructureDetailPrintComponent implements OnInit {
   async ngOnInit(): Promise<void> {
     // GetTclStopPoints
     this.getTclStopPoints();
-    //TODO: refactor
-    // const index = this.structure.proceduresAccompaniment.indexOf('autres');
-    // if (index > -1) {
-    //   this.structure.proceduresAccompaniment.splice(index, 1);
-    // }
   }
 
   public keepOriginalOrder = (a, _b) => a.key;
diff --git a/src/app/models/structure.model.ts b/src/app/models/structure.model.ts
index 24ca05241..804b399b2 100644
--- a/src/app/models/structure.model.ts
+++ b/src/app/models/structure.model.ts
@@ -40,8 +40,6 @@ export class Structure {
   // public publics: string[] = [];
   public nbComputers: number = null;
   public nbPrinters: number = null;
-  public nbTablets: number = null;
-  public nbNumericTerminal: number = null;
   public nbScanners: number = null;
   public exceptionalClosures: string = null;
   // public equipmentsAndServices: string[] = [];
@@ -71,6 +69,26 @@ export class Structure {
   constructor(obj?: any) {
     Object.assign(this, obj, {
       hours: obj && obj.hours ? new Week(obj.hours) : new Week(),
+      categories: {
+        accessModality: obj && obj.categories && obj.categories.accessModality ? obj.categories.accessModality : [],
+        labelsQualifications:
+          obj && obj.categories && obj.categories.labelsQualifications ? obj.categories.labelsQualifications : [],
+        onlineProcedures:
+          obj && obj.categories && obj.categories.onlineProcedures ? obj.categories.onlineProcedures : [],
+        selfServiceMaterial:
+          obj && obj.categories && obj.categories.selfServiceMaterial ? obj.categories.selfServiceMaterial : [],
+        solidarityMaterial:
+          obj && obj.categories && obj.categories.solidarityMaterial ? obj.categories.solidarityMaterial : [],
+        equipmentsServices:
+          obj && obj.categories && obj.categories.equipmentsServices ? obj.categories.equipmentsServices : [],
+        baseSkills: obj && obj.categories && obj.categories.baseSkills ? obj.categories.baseSkills : [],
+        advancedSkills: obj && obj.categories && obj.categories.advancedSkills ? obj.categories.advancedSkills : [],
+        age: obj && obj.categories && obj.categories.age ? obj.categories.age : [],
+        languageAndIlliteracy:
+          obj && obj.categories && obj.categories.languageAndIlliteracy ? obj.categories.languageAndIlliteracy : [],
+        handicaps: obj && obj.categories && obj.categories.handicaps ? obj.categories.handicaps : [],
+        publicOthers: obj && obj.categories && obj.categories.publicOthers ? obj.categories.publicOthers : [],
+      },
     });
   }
 
@@ -110,7 +128,7 @@ export class Structure {
    * @returns {Boolean} validation
    */
   public hasNotOnlyEmptyEquipments(): boolean {
-    if (this.nbComputers + this.nbPrinters + this.nbTablets + this.nbNumericTerminal + this.nbScanners > 0) return true;
+    if (this.nbComputers + this.nbPrinters + this.nbScanners > 0) return true;
     return false;
   }
 
@@ -118,9 +136,7 @@ export class Structure {
    * Check if a structure has pass Numeric label
    */
   public hasPassNumeric(): boolean {
-    //TODO: refactor
-    // return this.labelsQualifications.includes('passNumerique');
-    return false;
+    return this.categories.labelsQualifications.includes('passNumerique');
   }
 
   /**
diff --git a/src/app/profile/structure-edition-summary/structure-edition-summary.component.html b/src/app/profile/structure-edition-summary/structure-edition-summary.component.html
index a20813b5a..38aa8080e 100644
--- a/src/app/profile/structure-edition-summary/structure-edition-summary.component.html
+++ b/src/app/profile/structure-edition-summary/structure-edition-summary.component.html
@@ -442,23 +442,17 @@
       <div class="content">
         <app-no-information *ngIf="!hasEquipments(structure)"></app-no-information>
         <!-- TODO: refactor -->
-        <!-- <div *ngIf="!!filterOnlyEquipments(structure.equipmentsAndServices)">
+        <div *ngIf="!!filterOnlyEquipments(structure.categories.selfServiceMaterial)">
           <p *ngIf="structure.nbComputers">
             {{ getEquipmentsLabelAndValue(equipmentEnum.computer, structure.nbComputers) }}
           </p>
-          <p *ngIf="structure.nbTablets">
-            {{ getEquipmentsLabelAndValue(equipmentEnum.tablet, structure.nbTablets) }}
-          </p>
-          <p *ngIf="structure.nbNumericTerminal">
-            {{ getEquipmentsLabelAndValue(equipmentEnum.bornes, structure.nbNumericTerminal) }}
-          </p>
           <p *ngIf="structure.nbPrinters">
             {{ getEquipmentsLabelAndValue(equipmentEnum.printer, structure.nbPrinters) }}
           </p>
           <p *ngIf="structure.nbScanners">
             {{ getEquipmentsLabelAndValue(equipmentEnum.scanner, structure.nbScanners) }}
           </p>
-        </div> -->
+        </div>
       </div>
     </div>
 
diff --git a/src/app/profile/structure-edition-summary/structure-edition-summary.component.ts b/src/app/profile/structure-edition-summary/structure-edition-summary.component.ts
index 1db2503cd..d4389a18b 100644
--- a/src/app/profile/structure-edition-summary/structure-edition-summary.component.ts
+++ b/src/app/profile/structure-edition-summary/structure-edition-summary.component.ts
@@ -253,10 +253,8 @@ export class StructureEditionSummaryComponent implements OnInit {
     return this.utils.hasEquipments(
       structure.categories.selfServiceMaterial,
       structure.nbComputers,
-      structure.nbNumericTerminal,
       structure.nbPrinters,
-      structure.nbScanners,
-      structure.nbTablets
+      structure.nbScanners
     );
   }
 
diff --git a/src/app/services/structure.service.ts b/src/app/services/structure.service.ts
index 662d69955..bfbf33a03 100644
--- a/src/app/services/structure.service.ts
+++ b/src/app/services/structure.service.ts
@@ -27,6 +27,10 @@ export class StructureService {
       .pipe(map((item: Structure) => new Structure(item)));
   }
   public createStructure(structure: Structure, profile: User): Observable<Structure> {
+    console.log(
+      '🚀 ~ file: structure.service.ts ~ line 30 ~ StructureService ~ createStructure ~ structure',
+      structure
+    );
     const idUser = profile.email;
     return this.http.post(`${this.baseUrl}`, { structure, idUser }).pipe(map((item: Structure) => new Structure(item)));
   }
diff --git a/src/app/shared/components/training-type-picker/training-type-picker.component.html b/src/app/shared/components/training-type-picker/training-type-picker.component.html
index 3bdc15456..c32862de6 100644
--- a/src/app/shared/components/training-type-picker/training-type-picker.component.html
+++ b/src/app/shared/components/training-type-picker/training-type-picker.component.html
@@ -25,7 +25,7 @@
             <app-button
               [extraClass]="isModulePicked(categorie, module) ? 'selected' : ''"
               [style]="buttonTypeEnum.CheckButton"
-              [text]="module.text"
+              [text]="module.name"
               (action)="pickChoice(categorie, module)"
             ></app-button>
           </ng-container>
diff --git a/src/app/shared/components/training-type-picker/training-type-picker.component.ts b/src/app/shared/components/training-type-picker/training-type-picker.component.ts
index 3964595f8..7ef78bb4c 100644
--- a/src/app/shared/components/training-type-picker/training-type-picker.component.ts
+++ b/src/app/shared/components/training-type-picker/training-type-picker.component.ts
@@ -1,8 +1,8 @@
 import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
-import { remove } from 'lodash';
+import { cloneDeep, remove } from 'lodash';
 import { Category } from '../../../structure-list/models/category.model';
 import { Module } from '../../../structure-list/models/module.model';
-import { SearchService } from '../../../structure-list/services/search.service';
+import { CategoryEnum } from '../../enum/category.enum';
 import { ButtonType } from '../button/buttonType.enum';
 
 @Component({
@@ -12,10 +12,8 @@ import { ButtonType } from '../button/buttonType.enum';
 })
 export class TrainingTypePickerComponent implements OnInit {
   @Input() public baseSkills: string[];
-  @Input() public accessRight: string[];
-  @Input() public digitalCultureSecurity: string[];
-  @Input() public socialAndProfessional: string[];
-  @Input() public parentingHelp: string[];
+  @Input() public advancedSkills: string[];
+  @Input() public trainingCategories: { category: Category; openned: boolean }[];
   @Output() selectedType: EventEmitter<Category[]> = new EventEmitter<Category[]>();
 
   public buttonTypeEnum = ButtonType;
@@ -23,38 +21,30 @@ export class TrainingTypePickerComponent implements OnInit {
   public categoriesExpanded: string[] = [];
   public selectedChoices: Category[] = [];
 
-  constructor(private searchService: SearchService) {}
+  constructor() {}
 
   ngOnInit(): void {
-    //TODO: refactor
-    // this.searchService.getCategoriesTraining().subscribe((categories) => {
-    //   this.categories = categories;
-    //   this.selectedChoices = cloneDeep(categories);
-    //   this.selectedChoices.forEach((cat) => {
-    //     let selectedModulesId: string[] = [];
-    //     switch (cat.id) {
-    //       case 'accessRight':
-    //         selectedModulesId = this.accessRight;
-    //         break;
-    //       case 'socialAndProfessional':
-    //         selectedModulesId = this.socialAndProfessional;
-    //         break;
-    //       case 'baseSkills':
-    //         selectedModulesId = this.baseSkills;
-    //         break;
-    //       case 'parentingHelp':
-    //         selectedModulesId = this.parentingHelp;
-    //         break;
-    //       case 'digitalCultureSecurity':
-    //         selectedModulesId = this.digitalCultureSecurity;
-    //         break;
-    //     }
-    //     if (selectedModulesId.length) {
-    //       this.categoriesExpanded.push(cat.id);
-    //     }
-    //     cat.modules = cat.modules.filter((module) => selectedModulesId.includes(module.id));
-    //   });
-    // });
+    this.trainingCategories.forEach((data) => {
+      this.categories.push(data.category);
+    });
+    this.selectedChoices = cloneDeep(this.categories);
+    this.selectedChoices.forEach((categorie) => {
+      let selectedModulesId: string[] = [];
+      switch (categorie.id) {
+        case CategoryEnum.baseSkills:
+          selectedModulesId = this.baseSkills;
+          break;
+        case CategoryEnum.advancedSkills:
+          selectedModulesId = this.advancedSkills;
+          break;
+        default:
+          throw new Error(`Unimplemented training type ${categorie.id}`);
+      }
+      if (selectedModulesId.length) {
+        this.categoriesExpanded.push(categorie.id);
+      }
+      categorie.modules = categorie.modules.filter((module) => selectedModulesId.includes(module.id));
+    });
   }
 
   public isCategorieExpanded(id: string): boolean {
diff --git a/src/app/shared/enum/category.enum.ts b/src/app/shared/enum/category.enum.ts
index 6c3c05dd1..189435d39 100644
--- a/src/app/shared/enum/category.enum.ts
+++ b/src/app/shared/enum/category.enum.ts
@@ -1,7 +1,14 @@
 export enum CategoryEnum {
-  publics = 'publics',
-  labelsQualifications = 'labelsQualifications',
+  selfServiceMaterial = 'selfServiceMaterial',
+  solidarityMaterial = 'solidarityMaterial',
+  equipmentsServices = 'equipmentsServices',
+  onlineProcedures = 'onlineProcedures',
+  baseSkills = 'baseSkills',
+  advancedSkills = 'advancedSkills',
   accessModality = 'accessModality',
-  publicsAccompaniment = 'publicsAccompaniment',
-  equipmentsAndServices = 'equipmentsAndServices',
+  labelsQualifications = 'labelsQualifications',
+  age = 'age',
+  languageAndIlliteracy = 'languageAndIlliteracy',
+  handicaps = 'handicaps',
+  publicOthers = 'publicOthers',
 }
diff --git a/src/app/shared/enum/demarches.enum.ts b/src/app/shared/enum/demarches.enum.ts
index 0f5a27ea9..bd4f27a9e 100644
--- a/src/app/shared/enum/demarches.enum.ts
+++ b/src/app/shared/enum/demarches.enum.ts
@@ -15,13 +15,3 @@ export enum Demarches {
   work = 'Travail (Pôle emploi, CESU…)',
   autres = 'Autres',
 }
-
-// caf = 'CAF',
-// cpam = 'CPAM',
-// autres = 'Autres',
-// carsat = 'CARSAT',
-// demarcheMetropolitaine = 'Démarches Métropolitaines',
-// espacePublicNumeriqueepn = 'Espace public Numérique',
-// impots = 'Impôts',
-// logement = 'Logements',
-// poleEmploi = 'Pôle Emploi',
diff --git a/src/app/structure-list/components/modal-filter/modal-filter.component.ts b/src/app/structure-list/components/modal-filter/modal-filter.component.ts
index c85f3cde7..b3786ee5c 100644
--- a/src/app/structure-list/components/modal-filter/modal-filter.component.ts
+++ b/src/app/structure-list/components/modal-filter/modal-filter.component.ts
@@ -27,7 +27,6 @@ export class ModalFilterComponent implements OnInit, OnChanges {
   ngOnInit(): void {
     // Manage checkbox
     this.checkedModules = this.modules.slice();
-    console.log(this.categories);
   }
 
   ngOnChanges(changes: SimpleChanges): void {
diff --git a/src/app/structure-list/components/structure-details/structure-details.component.html b/src/app/structure-list/components/structure-details/structure-details.component.html
index 4b5e69ef7..dab28afe1 100644
--- a/src/app/structure-list/components/structure-details/structure-details.component.html
+++ b/src/app/structure-list/components/structure-details/structure-details.component.html
@@ -174,13 +174,15 @@
       </div>
 
       <div
-        *ngIf="structure.accessModality.length > 0 || structure.hours.hasData() || structure.remoteAccompaniment"
+        *ngIf="
+          structure.categories.accessModality.length > 0 || structure.hours.hasData() || structure.remoteAccompaniment
+        "
         class="structure-details-block"
         fxLayout="column"
       >
         <div class="hours-services-block">
           <!-- Opening Hours -->
-          <div *ngIf="structure.hours.hasData()" fxLayout="column">
+          <div fxLayout="column" *ngIf="structure.hours.hasData()">
             <h2>Horaires</h2>
             <div fxLayout="column" class="opening-hours">
               <div *ngFor="let day of structure.hours | keyvalue: keepOriginalOrder">
@@ -198,7 +200,10 @@
             </div>
           </div>
           <!-- services -->
-          <div *ngIf="structure.accessModality.length > 0" fxLayout="column">
+          <div
+            *ngIf="structure.categoriesDisplay.accessModality && structure.categoriesDisplay.accessModality.length > 0"
+            fxLayout="column"
+          >
             <h2>Modalités d'accès</h2>
             <div fxLayout="column" fxLayoutGap="10px" class="services-block">
               <div fxLayout="column" fxLayoutGap="8px">
@@ -206,9 +211,9 @@
                   fxLayout="row"
                   fxLayoutAlign="none flex-end"
                   fxLayoutGap="8px"
-                  *ngFor="let acces of structure.accessModality"
+                  *ngFor="let acces of structure.categoriesDisplay.accessModality"
                 >
-                  <p>{{ getAccessLabel(acces) }}</p>
+                  <p>{{ acces }}</p>
                 </div>
                 <p *ngIf="structure.pmrAccess">Accessible aux personnes à mobilité réduite</p>
                 <p *ngIf="structure.remoteAccompaniment">Accompagnement à distance</p>
@@ -223,24 +228,17 @@
 
       <!-- Publics -->
       <div
-        *ngIf="
-          structure.categoriesDisplay &&
-          ((structure.categoriesDisplay.age && structure.categoriesDisplay.age.length) ||
-            (structure.categoriesDisplay.languageAndIlliteracy &&
-              structure.categoriesDisplay.languageAndIlliteracy.length) ||
-            (structure.categoriesDisplay.handicaps && structure.categoriesDisplay.handicaps.length) ||
-            (structure.categoriesDisplay.publicOther && structure.categoriesDisplay.publicOther.length))
-        "
+        *ngIf="displayTrainings()"
         fxLayout="column"
         class="structure-details-block"
         fxLayoutAlign="baseline baseline"
         fxLayoutGap="8px"
       >
         <h2>Publics Accueillis</h2>
-        <div fxLayout="column">
+        <div fxLayout="column" fxLayoutGap="8px" class="services-block">
           <div *ngIf="structure.categoriesDisplay.age && structure.categoriesDisplay.age.length">
             <p *ngFor="let label of structure.categoriesDisplay.age.sort()" class="no-margin-bottom">
-              <span>{{ label }}</span>
+              {{ label }}
             </p>
           </div>
           <div
@@ -250,27 +248,27 @@
             "
           >
             <p *ngFor="let label of structure.categoriesDisplay.languageAndIlliteracy.sort()" class="no-margin-bottom">
-              <span>{{ label }}</span>
+              {{ label }}
             </p>
           </div>
 
           <div *ngIf="structure.categoriesDisplay.handicaps && structure.categoriesDisplay.handicaps.length">
             <p *ngFor="let label of structure.categoriesDisplay.handicaps.sort()" class="no-margin-bottom">
-              <span>{{ label }}</span>
+              {{ label }}
             </p>
           </div>
 
           <div *ngIf="structure.categoriesDisplay.publicOther && structure.categoriesDisplay.publicOther.length">
-            <p *ngFor="let label of structure.categoriesDisplay.publicOther.sort()" class="no-margin-bottom">
-              <span>{{ label }}</span>
-            </p>
+            <li *ngFor="let label of structure.categoriesDisplay.publicOther.sort()" class="no-margin-bottom">
+              {{ label }}
+            </li>
           </div>
         </div>
       </div>
 
       <!-- Labellisation -->
       <div
-        *ngIf="structure.labelsQualifications.length"
+        *ngIf="structure.categories.labelsQualifications.length"
         fxLayout="column"
         class="structure-details-block"
         fxLayoutAlign="baseline baseline"
@@ -278,8 +276,8 @@
       >
         <h2>Labellisations</h2>
         <div class="wrapper">
-          <div *ngFor="let labels of structure.categories.labelsQualifications.sort()">
-            <app-logo-card [name]="labels"></app-logo-card>
+          <div *ngFor="let label of structure.categories.labelsQualifications.sort()">
+            <app-logo-card [name]="label"></app-logo-card>
           </div>
         </div>
       </div>
@@ -339,6 +337,7 @@
         fxLayout="column"
         class="structure-details-block noSeparator"
         fxLayoutAlign="baseline baseline"
+        fxLayoutGap="8px"
       >
         <h2>Compétences numériques</h2>
         <div *ngIf="structure.freeWorkShop">
@@ -444,6 +443,21 @@
         </div>
       </div>
 
+      <!-- Autres services -->
+      <div
+        *ngIf="structure.categories.equipmentsServices && structure.categories.equipmentsServices.length"
+        fxLayout="column"
+        class="structure-details-block"
+        fxLayoutAlign="baseline baseline"
+      >
+        <h2>Autres services</h2>
+        <div fxLayout="column">
+          <p *ngFor="let equipement of structure.categoriesDisplay.equipmentsServices" class="no-margin-bottom">
+            <span>{{ equipement }}</span>
+          </p>
+        </div>
+      </div>
+
       <!-- Transport -->
       <div
         *ngIf="tclStopPoints.length"
diff --git a/src/app/structure-list/components/structure-details/structure-details.component.scss b/src/app/structure-list/components/structure-details/structure-details.component.scss
index 79b7b871a..e1012414e 100644
--- a/src/app/structure-list/components/structure-details/structure-details.component.scss
+++ b/src/app/structure-list/components/structure-details/structure-details.component.scss
@@ -31,6 +31,9 @@ h3 {
   margin: 0 0 8px 0;
 }
 
+ul {
+  margin: 5px 0;
+}
 .structure-details-container {
   position: absolute;
   z-index: $structure-details-z-index;
diff --git a/src/app/structure-list/components/structure-details/structure-details.component.ts b/src/app/structure-list/components/structure-details/structure-details.component.ts
index 612a1ab6b..aed341d73 100644
--- a/src/app/structure-list/components/structure-details/structure-details.component.ts
+++ b/src/app/structure-list/components/structure-details/structure-details.component.ts
@@ -15,7 +15,6 @@ import { PrintService } from '../../../shared/service/print.service';
 import { Utils } from '../../../utils/utils';
 import { AccessModality } from '../../enum/access-modality.enum';
 import { Equipment } from '../../enum/equipment.enum';
-import { PublicCategorie } from '../../enum/public.enum';
 import { Category } from '../../models/category.model';
 import { Module } from '../../models/module.model';
 import { SearchService } from '../../services/search.service';
@@ -243,40 +242,20 @@ export class StructureDetailsComponent implements OnInit {
     }
   }
 
-  public getAccessLabel(accessModality: AccessModality): string {
-    switch (accessModality) {
-      case AccessModality.free:
-        return 'Accès libre';
-      case AccessModality.meeting:
-        return 'Sur rendez-vous';
-      case AccessModality.meetingOnly:
-        return 'Uniquement sur RDV';
-      case AccessModality.numeric:
-        return 'Téléphone / Visio';
-      default:
-        return null;
-    }
-  }
-
-  public getPublicLabel(tagetPublic: PublicCategorie): string {
-    switch (tagetPublic) {
-      case PublicCategorie.young:
-        return 'Jeunes (16 - 25 ans)';
-      case PublicCategorie.adult:
-        return 'Adultes';
-      case PublicCategorie.elderly:
-        return 'Séniors (+ de 65 ans)';
-      case PublicCategorie.all:
-        return 'Tout public';
-      case PublicCategorie.under16Years:
-        return 'Moins de 16 ans';
-      case PublicCategorie.women:
-        return 'Uniquement femmes';
-      default:
-        return null;
-    }
-  }
-
+  // public getAccessLabel(accessModality: AccessModality): string {
+  //   switch (accessModality) {
+  //     case AccessModality.free:
+  //       return 'Accès libre';
+  //     case AccessModality.meeting:
+  //       return 'Sur rendez-vous';
+  //     case AccessModality.meetingOnly:
+  //       return 'Uniquement sur RDV';
+  //     case AccessModality.numeric:
+  //       return 'Téléphone / Visio';
+  //     default:
+  //       return null;
+  //   }
+  // }
   /**
    * Map categories ids to there real names
    */
@@ -316,10 +295,6 @@ export class StructureDetailsComponent implements OnInit {
     });
   }
 
-  // public filterOnlyEquipments(equipmentsAndServices: string[]): string[] {
-  //   return equipmentsAndServices.filter((eqpt) => ['ordinateurs', 'imprimantes', 'scanners', 'wifi'].includes(eqpt));
-  // }
-
   public displayModalError(): void {
     this.structureErrorModalOpenned = !this.structureErrorModalOpenned;
   }
@@ -332,17 +307,9 @@ export class StructureDetailsComponent implements OnInit {
   }
 
   public multipleWorkshop(): boolean {
-    //TODO: refactor
-    // if (
-    //   this.structure.baseSkills.length +
-    //     this.structure.accessRight.length +
-    //     this.structure.parentingHelp.length +
-    //     this.structure.socialAndProfessional.length +
-    //     this.structure.digitalCultureSecurity.length >
-    //   1
-    // ) {
-    //   return true;
-    // }
+    if (this.structure.categories.baseSkills.length + this.structure.categories.advancedSkills.length > 1) {
+      return true;
+    }
     return false;
   }
 
@@ -361,4 +328,16 @@ export class StructureDetailsComponent implements OnInit {
   public displayJobEmployer(profile: User): string {
     return new Utils().getJobEmployer(profile);
   }
+
+  public displayTrainings(): boolean {
+    if (this.structure.categoriesDisplay === undefined) return false;
+
+    return (
+      (this.structure.categoriesDisplay.age && this.structure.categoriesDisplay.age.length !== 0) ||
+      (this.structure.categoriesDisplay.languageAndIlliteracy &&
+        this.structure.categoriesDisplay.languageAndIlliteracy.length !== 0) ||
+      (this.structure.categoriesDisplay.handicaps && this.structure.categoriesDisplay.handicaps.length !== 0) ||
+      (this.structure.categoriesDisplay.publicOther && this.structure.categoriesDisplay.publicOther.length !== 0)
+    );
+  }
 }
diff --git a/src/app/structure-list/components/structure-list-search/structure-list-search.component.ts b/src/app/structure-list/components/structure-list-search/structure-list-search.component.ts
index a706c5157..4388bfbaf 100644
--- a/src/app/structure-list/components/structure-list-search/structure-list-search.component.ts
+++ b/src/app/structure-list/components/structure-list-search/structure-list-search.component.ts
@@ -61,7 +61,7 @@ export class StructureListSearchComponent implements OnInit {
   }
   ngOnInit(): void {
     // Will store the different categories
-    this.getData();
+    this.getModalCategories();
     this.queryString = this.activatedRoute.snapshot.queryParamMap.get('search');
     this.checkedModulesFilter = new Array();
     if (this.queryString) {
@@ -201,8 +201,7 @@ export class StructureListSearchComponent implements OnInit {
   }
 
   // Get the categories for each modal type
-  //TODO: refactor
-  private getData(): void {
+  private getModalCategories(): void {
     this.searchService.getCategories().subscribe((res) => {
       const categories: Category[] = res;
       categories.forEach((category: Category) => {
diff --git a/src/app/structure-list/enum/public.enum.ts b/src/app/structure-list/enum/public.enum.ts
index 905f79748..6ee5e79fd 100644
--- a/src/app/structure-list/enum/public.enum.ts
+++ b/src/app/structure-list/enum/public.enum.ts
@@ -1,8 +1,6 @@
 export enum PublicCategorie {
-  under16Years = 'moinsDe16Ans',
-  young = 'jeunes1625Ans',
-  adult = 'adultes',
-  elderly = 'seniorsPlusDe65Ans',
-  all = 'toutPublic',
-  women = 'uniquementFemmes',
+  age = 'age',
+  handicaps = 'handicaps',
+  languageAndIlliteracy = 'languageAndIlliteracy',
+  other = 'publicOthers',
 }
diff --git a/src/app/utils/formUtils.ts b/src/app/utils/formUtils.ts
index 400789f03..707fab6a1 100644
--- a/src/app/utils/formUtils.ts
+++ b/src/app/utils/formUtils.ts
@@ -33,7 +33,7 @@ export class formUtils {
     {
       step: structureFormStep.structureDigitalHelpingAccompaniment,
       name: 'Aides au numérique',
-      inputs: ['proceduresAccompaniment'],
+      inputs: ['onlineProcedures'],
     },
     { step: structureFormStep.structureTrainingType, name: 'Ateliers au numérique proposés', inputs: null },
     { step: structureFormStep.structureTrainingPrice, name: 'Gratuité des ateliers', inputs: ['freeWorkShop'] },
@@ -118,66 +118,55 @@ export class formUtils {
       choiceCompletion: new UntypedFormControl(structure.choiceCompletion, !isEditMode && Validators.required),
       exceptionalClosures: new UntypedFormControl(structure.exceptionalClosures),
       //TODO: refactor
-      // labelsQualifications: this.loadArrayForCheckbox(structure.labelsQualifications, false),
-      // accessModality: this.loadArrayForCheckbox(structure.accessModality, true),
-      // publicsAccompaniment: this.loadArrayForCheckbox(structure.publicsAccompaniment, false),
-      // proceduresAccompaniment: this.loadArrayForCheckbox(structure.proceduresAccompaniment, false),
-      // publics: this.loadArrayForCheckbox(structure.publics, true),
+      categories: new UntypedFormGroup({
+        labelsQualifications: this.loadArrayForCheckbox(structure.categories?.labelsQualifications, false),
+        accessModality: this.loadArrayForCheckbox(structure.categories.accessModality, true),
+        publicsAccompaniment: this.loadArrayForCheckbox(structure.categories.age, false), //TODO: add other categ ?
+        onlineProcedures: this.loadArrayForCheckbox(structure.categories.onlineProcedures, false),
+        handicaps: this.loadArrayForCheckbox(structure.categories.handicaps, true),
+        age: this.loadArrayForCheckbox(structure.categories.age, true),
+        languageAndIlliteracy: this.loadArrayForCheckbox(structure.categories.languageAndIlliteracy, true),
+        publicOthers: this.loadArrayForCheckbox(structure.categories.publicOthers, true),
+        equipmentsAndServices: this.loadArrayForCheckbox(structure.categories.equipmentsServices, false),
+        baseSkills: new UntypedFormControl(structure.categories.baseSkills),
+        solidarityMaterial: this.loadArrayForCheckbox(structure.categories.solidarityMaterial, false),
+        advancedSkills: new UntypedFormControl(structure.categories.advancedSkills),
+      }),
       //TODO: remettre ou migrer les données de accompagnements à distance
       remoteAccompaniment: new UntypedFormControl(false),
       otherDescription: new UntypedFormControl(structure.otherDescription),
-      // equipmentsAndServices: this.loadArrayForCheckbox(structure.equipmentsAndServices, false),
       //TODO: refactor
-      // baseSkills: new UntypedFormControl(structure.baseSkills),
       // accessRight: new UntypedFormControl(structure.accessRight),
       // parentingHelp: new UntypedFormControl(structure.parentingHelp),
       // socialAndProfessional: new UntypedFormControl(structure.socialAndProfessional),
       // digitalCultureSecurity: new UntypedFormControl(structure.digitalCultureSecurity),
-      // nbComputers: new UntypedFormControl(
-      //   structure.equipmentsAndServices.includes('ordinateurs') ? structure.nbComputers : 0,
-      //   [
-      //     Validators.required,
-      //     Validators.pattern(CustomRegExp.NO_NEGATIVE_NUMBER),
-      //     Validators.min(0),
-      //     Validators.max(1000),
-      //   ]
-      // ),
-      // nbPrinters: new UntypedFormControl(
-      //   structure.equipmentsAndServices.includes('imprimantes') ? structure.nbPrinters : 0,
-      //   [
-      //     Validators.required,
-      //     Validators.pattern(CustomRegExp.NO_NEGATIVE_NUMBER),
-      //     Validators.min(0),
-      //     Validators.max(1000),
-      //   ]
-      // ),
-      // nbTablets: new UntypedFormControl(
-      //   structure.equipmentsAndServices.includes('tablettes') ? structure.nbTablets : 0,
-      //   [
-      //     Validators.required,
-      //     Validators.pattern(CustomRegExp.NO_NEGATIVE_NUMBER),
-      //     Validators.min(0),
-      //     Validators.max(1000),
-      //   ]
-      // ),
-      // nbNumericTerminal: new UntypedFormControl(
-      //   structure.equipmentsAndServices.includes('bornesNumeriques') ? structure.nbNumericTerminal : 0,
-      //   [
-      //     Validators.required,
-      //     Validators.pattern(CustomRegExp.NO_NEGATIVE_NUMBER),
-      //     Validators.min(0),
-      //     Validators.max(1000),
-      //   ]
-      // ),
-      // nbScanners: new UntypedFormControl(
-      //   structure.equipmentsAndServices.includes('scanners') ? structure.nbScanners : 0,
-      //   [
-      //     Validators.required,
-      //     Validators.pattern(CustomRegExp.NO_NEGATIVE_NUMBER),
-      //     Validators.min(0),
-      //     Validators.max(1000),
-      //   ]
-      // ),
+      nbComputers: new UntypedFormControl(
+        structure.categories.selfServiceMaterial.includes('computer') ? structure.nbComputers : 0,
+        [
+          Validators.required,
+          Validators.pattern(CustomRegExp.NO_NEGATIVE_NUMBER),
+          Validators.min(0),
+          Validators.max(1000),
+        ]
+      ),
+      nbPrinters: new UntypedFormControl(
+        structure.categories.selfServiceMaterial.includes('wifi') ? structure.nbPrinters : 0,
+        [
+          Validators.required,
+          Validators.pattern(CustomRegExp.NO_NEGATIVE_NUMBER),
+          Validators.min(0),
+          Validators.max(1000),
+        ]
+      ),
+      nbScanners: new UntypedFormControl(
+        structure.categories.selfServiceMaterial.includes('scanner') ? structure.nbScanners : 0,
+        [
+          Validators.required,
+          Validators.pattern(CustomRegExp.NO_NEGATIVE_NUMBER),
+          Validators.min(0),
+          Validators.max(1000),
+        ]
+      ),
       freeWorkShop: new UntypedFormControl(structure.freeWorkShop, [Validators.required]),
       dataShareConsentDate: new UntypedFormControl(structure.dataShareConsentDate),
       personalOffers: new UntypedFormControl(structure.personalOffers),
diff --git a/src/app/utils/utils.ts b/src/app/utils/utils.ts
index 22c6edfee..1010947a0 100644
--- a/src/app/utils/utils.ts
+++ b/src/app/utils/utils.ts
@@ -71,20 +71,17 @@ export class Utils {
     return structure.website !== null && structure.website !== '';
   }
 
+  //TODO: refactor: remove ?
   public getPublicLabel(tagetPublic: PublicCategorie): string {
     switch (tagetPublic) {
-      case PublicCategorie.young:
+      case PublicCategorie.age:
         return 'Jeunes (16 - 25 ans)';
-      case PublicCategorie.adult:
+      case PublicCategorie.handicaps:
         return 'Adultes';
-      case PublicCategorie.elderly:
+      case PublicCategorie.languageAndIlliteracy:
         return 'Séniors (+ de 65 ans)';
-      case PublicCategorie.all:
+      case PublicCategorie.other:
         return 'Tout public';
-      case PublicCategorie.under16Years:
-        return 'Moins de 16 ans';
-      case PublicCategorie.women:
-        return 'Uniquement femmes';
       default:
         return null;
     }
@@ -106,14 +103,12 @@ export class Utils {
    * Verify that a structure has equipments and checks that their value is > 0
    */
   public hasEquipments(
-    equipmentsAndServices: string[],
+    equipmentsServices: string[],
     nbComputers: number,
-    nbNumericTerminal: number,
     nbPrinters: number,
-    nbScanners: number,
-    nbTablets: number
+    nbScanners: number
   ): boolean {
-    return equipmentsAndServices.length && nbComputers + nbPrinters + nbTablets + nbNumericTerminal + nbScanners > 0;
+    return equipmentsServices.length && nbComputers + nbPrinters + nbScanners > 0;
   }
 
   public filterOnlyEquipments(equipmentsAndServices: string[]): string[] {
diff --git a/src/assets/form/sprite.svg b/src/assets/form/sprite.svg
index d6791b417..1d5970678 100644
--- a/src/assets/form/sprite.svg
+++ b/src/assets/form/sprite.svg
@@ -252,44 +252,6 @@
     <path d="M6 10L12.5 17L19 10" stroke="black" stroke-linecap="round" stroke-linejoin="round" />
   </symbol>
 
-  <symbol id="pix" width="44" height="44" viewBox="0 0 44 44" fill="none" stroke="none"
-    xmlns="http://www.w3.org/2000/svg">
-    <path fill-rule="evenodd" clip-rule="evenodd"
-      d="M32.9277 24.9876L33.444 24.3612C33.9033 23.8316 34.2297 23.3201 34.4232 22.8163L38.3527 27.614C39.0659 28.5278 39.0319 28.6971 37.8433 28.6971H37.4357C36.2471 28.6971 35.8056 28.4602 35.0923 27.614L32.9277 24.9876ZM32.9277 18.461L35.0923 15.8346C35.8056 14.9884 36.2471 14.7515 37.4357 14.7515H37.8433C39.0319 14.7515 39.0659 14.9207 38.3527 15.8346L34.4232 20.6322C34.2297 20.1285 33.9033 19.617 33.444 19.0874L32.9277 18.461Z"
-      fill="url(#paint0_linear_6046_4294)" />
-    <path fill-rule="evenodd" clip-rule="evenodd"
-      d="M26.9261 28.6971C25.7375 28.6971 25.7035 28.5278 26.4167 27.614L30.4921 22.6382C30.7978 22.2659 30.9676 21.9612 30.9676 21.7243C30.9676 21.4535 30.7978 21.1488 30.4921 20.8104L26.4167 15.8346C25.7035 14.9207 25.7375 14.7515 26.9261 14.7515H27.3337C28.5223 14.7515 28.9638 14.9884 29.677 15.8346L32.8015 19.6257C34.1261 21.1488 34.1261 22.2997 32.8015 23.8229L29.677 27.614C28.9638 28.4602 28.5223 28.6971 27.3337 28.6971H26.9261Z"
-      fill="url(#paint1_linear_6046_4294)" />
-    <path fill-rule="evenodd" clip-rule="evenodd"
-      d="M4.83398 33.0362C4.83398 34.0468 5.08748 34.2995 6.10145 34.2995H6.43941C7.45339 34.2995 7.70688 34.0468 7.70688 33.0362V27.1692C8.46736 28.3763 9.8475 28.9939 11.8472 28.9939C15.7623 28.9939 17.7057 26.9446 17.7057 22.8742V20.4319C17.7057 16.3615 15.6214 14.4526 11.2557 14.4526C7.19989 14.4526 4.83398 16.4177 4.83398 20.4319V33.0362ZM14.8047 22.9303C14.8047 25.2884 14.016 26.2709 11.2839 26.2709C8.49552 26.2709 7.70688 25.2603 7.70688 22.9303V20.5161C7.70688 18.1581 8.55187 17.1475 11.2839 17.1475C14.0723 17.1475 14.8047 18.1581 14.8047 20.5161V22.9303Z"
-      fill="url(#paint2_linear_6046_4294)" />
-    <path fill-rule="evenodd" clip-rule="evenodd"
-      d="M20.4149 27.4C20.4149 28.4106 20.6684 28.6633 21.6824 28.6633H22.0485C23.0625 28.6633 23.316 28.4106 23.316 27.4V16.0029C23.316 14.9923 23.0625 14.7396 22.0485 14.7396H21.6824C20.6684 14.7396 20.4149 14.9923 20.4149 16.0029V27.4ZM20.6121 11.7079C21.3162 12.3816 22.4428 12.3816 23.1189 11.7079C23.823 11.006 23.823 9.88319 23.1189 9.20947C22.4428 8.50765 21.3162 8.50765 20.6121 9.20947C19.908 9.88319 19.908 11.006 20.6121 11.7079Z"
-      fill="url(#paint3_linear_6046_4294)" />
-    <defs>
-      <linearGradient id="paint0_linear_6046_4294" x1="35.8768" y1="14.7515" x2="35.8768" y2="28.6971"
-        gradientUnits="userSpaceOnUse">
-        <stop stop-color="#12A3FF" />
-        <stop offset="1" stop-color="#3D68FF" />
-      </linearGradient>
-      <linearGradient id="paint1_linear_6046_4294" x1="28.4055" y1="14.7515" x2="28.4055" y2="28.6971"
-        gradientUnits="userSpaceOnUse">
-        <stop stop-color="#FFBE00" />
-        <stop offset="1" stop-color="#FF9F00" />
-      </linearGradient>
-      <linearGradient id="paint2_linear_6046_4294" x1="11.2698" y1="14.4526" x2="11.2698" y2="28.9506"
-        gradientUnits="userSpaceOnUse">
-        <stop stop-color="#12A3FF" />
-        <stop offset="1" stop-color="#3D68FF" />
-      </linearGradient>
-      <linearGradient id="paint3_linear_6046_4294" x1="21.8655" y1="14.3499" x2="21.8655" y2="28.6633"
-        gradientUnits="userSpaceOnUse">
-        <stop stop-color="#12A3FF" />
-        <stop offset="1" stop-color="#3D68FF" />
-      </linearGradient>
-    </defs>
-  </symbol>
-
   <symbol id="conseillerNumFranceServices" width="44" height="44" viewBox="0 0 44 44" fill="none" stroke="none"
     xmlns="http://www.w3.org/2000/svg">
     <g clip-path="url(#clip0_6046_4268)">
@@ -320,7 +282,6 @@
     </defs>
   </symbol>
 
-
   <symbol id="maisonFranceService" width="44" height="44" viewBox="0 0 44 44" fill="none" stroke="none"
     xmlns="http://www.w3.org/2000/svg">
     <path
@@ -646,10 +607,13 @@
     <path d="M13.25 20.6066L13.25 20" stroke="white" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" />
   </symbol>
 
-    <symbol id="notValidateWithBorder" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
-        <circle cx="12" cy="12" r="11.5" fill="#DA6C2E" stroke="white"/>
-        <path fill-rule="evenodd" clip-rule="evenodd" d="M11.0835 7.00067C11.0835 6.49441 11.4939 6.084 12.0001 6.08398C12.5064 6.08397 12.9168 6.49437 12.9168 7.00063L12.917 14.0006C12.917 14.5069 12.5066 14.9173 12.0003 14.9173C11.4941 14.9173 11.0837 14.5069 11.0836 14.0007L11.0835 7.00067ZM11.0837 17.6896C11.0837 17.1833 11.4941 16.7729 12.0004 16.7729C12.5066 16.7729 12.917 17.1833 12.917 17.6896L12.917 18.0318C12.917 18.5381 12.5066 18.9485 12.0004 18.9485C11.4941 18.9485 11.0837 18.5381 11.0837 18.0318L11.0837 17.6896Z" fill="white"/>
-</symbol>
+  <symbol id="notValidateWithBorder" width="24" height="24" viewBox="0 0 24 24" fill="none"
+    xmlns="http://www.w3.org/2000/svg">
+    <circle cx="12" cy="12" r="11.5" fill="#DA6C2E" stroke="white" />
+    <path fill-rule="evenodd" clip-rule="evenodd"
+      d="M11.0835 7.00067C11.0835 6.49441 11.4939 6.084 12.0001 6.08398C12.5064 6.08397 12.9168 6.49437 12.9168 7.00063L12.917 14.0006C12.917 14.5069 12.5066 14.9173 12.0003 14.9173C11.4941 14.9173 11.0837 14.5069 11.0836 14.0007L11.0835 7.00067ZM11.0837 17.6896C11.0837 17.1833 11.4941 16.7729 12.0004 16.7729C12.5066 16.7729 12.917 17.1833 12.917 17.6896L12.917 18.0318C12.917 18.5381 12.5066 18.9485 12.0004 18.9485C11.4941 18.9485 11.0837 18.5381 11.0837 18.0318L11.0837 17.6896Z"
+      fill="white" />
+  </symbol>
 
 
   <symbol id="validate" viewBox="0 0 26 26" fill="none" xmlns="http://www.w3.org/2000/svg">
@@ -730,27 +694,64 @@
       fill="#DA3635" />
   </symbol>
 
-  <symbol id="metropoleGrandLyon" width="104" height="41" viewBox="0 0 104 41" fill="none" xmlns="http://www.w3.org/2000/svg">
-    <path d="M38.9881 28.5058C39.0252 28.5058 39.0564 28.5355 39.0564 28.5734V29.0312C39.0564 31.1822 38.0638 32.1048 36.5089 32.1048C34.9541 32.1048 33.9219 31.1822 33.9219 29.0312V28.2082C33.9219 26.0073 34.9648 25.0859 36.5089 25.0859C37.8864 25.0859 38.7723 25.8306 39.0133 27.2169C39.0204 27.2584 38.9881 27.2963 38.9461 27.2963H37.9571C37.9259 27.2963 37.8984 27.2738 37.8912 27.2441C37.7125 26.4852 37.2738 26.0868 36.5089 26.0868C35.5858 26.0868 35.0847 26.682 35.0847 28.1584V29.0312C35.0847 30.5087 35.5858 31.1028 36.5089 31.1028C37.432 31.1028 37.8276 30.5929 37.9115 29.5256C37.9115 29.5162 37.9043 29.5067 37.8948 29.5067H36.6072C36.5701 29.5067 36.5389 29.477 36.5389 29.4391V28.5722C36.5389 28.5355 36.5689 28.5046 36.6072 28.5046H38.9881V28.5058Z" fill="#FF0032"/>
-    <path d="M42.5533 28.2489C43.5339 28.2489 44.0134 27.9916 44.0134 27.2208C44.0134 26.45 43.5339 26.1832 42.5533 26.1832H41.46C41.4504 26.1832 41.4432 26.1904 41.4432 26.1998V28.2323C41.4432 28.2418 41.4504 28.2489 41.46 28.2489H42.5533ZM44.095 31.9677L42.7882 29.2474C42.7882 29.2474 42.7799 29.2379 42.7727 29.2379H41.46C41.4504 29.2379 41.4432 29.245 41.4432 29.2545V31.938C41.4432 31.9748 41.4132 32.0056 41.3748 32.0056H40.351C40.3139 32.0056 40.2827 31.976 40.2827 31.938V25.2512C40.2827 25.2144 40.3127 25.1836 40.351 25.1836H42.6336C44.2232 25.1836 45.1739 25.8654 45.1739 27.2196C45.1739 28.1517 44.7303 28.7529 43.9415 29.0422C43.9319 29.0458 43.9271 29.0565 43.9319 29.0648L45.3453 31.9072C45.3681 31.9522 45.3345 32.0044 45.2842 32.0044H44.1561C44.1297 32.0044 44.1057 31.989 44.095 31.9665" fill="#FF0032"/>
-    <path d="M48.1074 29.6031H49.9008C49.9128 29.6031 49.92 29.5925 49.9164 29.5806L49.0197 26.8924C49.0149 26.8769 48.9921 26.8769 48.9873 26.8924L48.0906 29.5806C48.087 29.5913 48.0954 29.6031 48.1062 29.6031M46.0838 31.9155L48.4371 25.2287C48.4467 25.2014 48.4718 25.1836 48.5018 25.1836H49.5052C49.534 25.1836 49.5604 25.2014 49.57 25.2287L51.9232 31.9155C51.9388 31.9594 51.9053 32.0044 51.8585 32.0044H50.7736C50.7448 32.0044 50.7184 31.9854 50.7088 31.9582L50.2581 30.6028C50.2557 30.5957 50.2497 30.5909 50.2425 30.5909H47.7765C47.7693 30.5909 47.7621 30.5957 47.7609 30.6028L47.3102 31.9582C47.3006 31.9854 47.2754 32.0044 47.2454 32.0044H46.1497C46.103 32.0044 46.0706 31.9594 46.085 31.9155" fill="#FF0032"/>
-    <path d="M57.614 25.2512V31.938C57.614 31.9748 57.5841 32.0056 57.5457 32.0056H56.6226C56.5986 32.0056 56.577 31.9937 56.5639 31.9724L53.8054 27.4212C53.797 27.407 53.7742 27.4129 53.7742 27.4295V31.938C53.7742 31.9748 53.7442 32.0056 53.7059 32.0056H52.7217C52.6845 32.0056 52.6533 31.976 52.6533 31.938V25.2512C52.6533 25.2144 52.6833 25.1836 52.7217 25.1836H53.6148C53.6387 25.1836 53.6603 25.1955 53.6735 25.2168L56.462 29.8273C56.4704 29.8415 56.4931 29.8356 56.4931 29.819V25.2512C56.4931 25.2144 56.5231 25.1836 56.5615 25.1836H57.5457C57.5829 25.1836 57.614 25.2132 57.614 25.2512Z" fill="#FF0032"/>
-    <path d="M62.6277 29.0007V28.1896C62.6277 26.7856 62.1877 26.1832 61.1975 26.1832H60.0442C60.0346 26.1832 60.0274 26.1904 60.0274 26.1998V31C60.0274 31.0095 60.0346 31.0166 60.0442 31.0166H61.1975C62.1877 31.0166 62.6277 30.4036 62.6277 28.9996M58.8682 31.938V25.2512C58.8682 25.2144 58.8981 25.1836 58.9365 25.1836H61.1987C62.7487 25.1836 63.7881 26.0042 63.7881 28.1885V28.9996C63.7881 31.1838 62.7475 32.0044 61.1987 32.0044H58.9365C58.8993 32.0044 58.8682 31.9748 58.8682 31.9368" fill="#FF0032"/>
-    <path d="M100.101 20.0293H67.9849V37.1727H100.101V20.0293Z" fill="#FF0032"/>
-    <path d="M74.8791 30.6466H77.4925C77.5297 30.6466 77.5608 30.6762 77.5608 30.7142V31.9439C77.5608 31.9806 77.5309 32.0115 77.4925 32.0115H73.2715C73.2343 32.0115 73.2031 31.9818 73.2031 31.9439V25.257C73.2031 25.2203 73.2331 25.1895 73.2715 25.1895H74.794C74.8311 25.1895 74.8623 25.2191 74.8623 25.257V30.63C74.8623 30.6395 74.8695 30.6466 74.8791 30.6466Z" fill="white"/>
-    <path d="M78.6877 25.2286L79.7235 27.4982C79.7295 27.5113 79.7487 27.5113 79.7547 27.4982L80.7905 25.2286C80.8012 25.2049 80.8252 25.1895 80.8528 25.1895H82.6055C82.657 25.1895 82.6894 25.2428 82.6654 25.2879L80.5699 29.2782C80.5699 29.2782 80.5675 29.2829 80.5675 29.2865V31.9439C80.5675 31.9806 80.5375 32.0115 80.4991 32.0115H78.9754C78.9383 32.0115 78.9071 31.9818 78.9071 31.9439V29.2865C78.9071 29.2865 78.9071 29.2805 78.9047 29.2782L76.8092 25.2879C76.7852 25.2428 76.8188 25.1895 76.8691 25.1895H78.6218C78.6482 25.1895 78.6733 25.2049 78.6841 25.2286H78.6877Z" fill="white"/>
-    <path d="M85.7043 32.1095C84.135 32.1095 82.9854 31.1703 82.9854 29.1342V28.067C82.9854 26.0108 84.135 25.0918 85.7043 25.0918C87.2735 25.0918 88.4232 26.0108 88.4232 28.067V29.1342C88.4232 31.1703 87.2735 32.1095 85.7043 32.1095ZM84.6445 29.1342C84.6445 30.2513 85.0137 30.7458 85.7043 30.7458C86.3948 30.7458 86.764 30.2513 86.764 29.1342V28.067C86.764 26.95 86.3948 26.4555 85.7043 26.4555C85.0137 26.4555 84.6445 26.95 84.6445 28.067V29.1342Z" fill="white"/>
-    <path d="M94.8836 25.257V31.9439C94.8836 31.9806 94.8537 32.0115 94.8153 32.0115H93.5805C93.5577 32.0115 93.5362 32.0008 93.5242 31.9818L91.0366 28.2821C91.027 28.2678 91.0055 28.275 91.0055 28.2916V31.9451C91.0055 31.9818 90.9755 32.0126 90.9371 32.0126H89.5141C89.477 32.0126 89.4458 31.983 89.4458 31.9451V25.2582C89.4458 25.2215 89.4758 25.1906 89.5141 25.1906H90.7285C90.7513 25.1906 90.7729 25.2025 90.7849 25.2203L93.2916 28.9698C93.3012 28.9841 93.3228 28.977 93.3228 28.9604V25.257C93.3228 25.2203 93.3527 25.1895 93.3911 25.1895H94.8141C94.8513 25.1895 94.8824 25.2191 94.8824 25.257H94.8836Z" fill="white"/>
-    <path d="M69.005 3.89453H3.89844V21.0379H69.005V3.89453Z" fill="#FF0032"/>
-    <path d="M12.5383 12.4884L14.3629 9.09221C14.3749 9.06968 14.3977 9.05664 14.4228 9.05664H15.8626C15.8998 9.05664 15.931 9.08629 15.931 9.12423V15.8111C15.931 15.8478 15.901 15.8786 15.8626 15.8786H14.4396C14.4025 15.8786 14.3713 15.849 14.3713 15.8111V12.0923C14.3713 12.0745 14.3473 12.0686 14.3389 12.0852L12.9711 14.7154C12.9591 14.7379 12.9363 14.7521 12.9111 14.7521H12.1043C12.0792 14.7521 12.0552 14.7379 12.0432 14.7154L10.7053 12.116C10.6969 12.1006 10.6729 12.1066 10.6729 12.1232V15.8122C10.6729 15.849 10.643 15.8798 10.6046 15.8798H9.18161C9.14445 15.8798 9.11328 15.8502 9.11328 15.8122V9.12542C9.11328 9.08866 9.14325 9.05783 9.18161 9.05783H10.6118C10.637 9.05783 10.6598 9.07206 10.6717 9.0934L12.5059 12.4896C12.5119 12.5014 12.5299 12.5014 12.5359 12.4896L12.5383 12.4884Z" fill="white"/>
-    <path d="M18.6416 10.436V11.6479C18.6416 11.6574 18.6488 11.6645 18.6584 11.6645H20.9721C21.0093 11.6645 21.0392 11.6942 21.0392 11.7309V12.9618C21.0392 12.9986 21.008 13.0294 20.9709 13.0294H18.6584C18.6488 13.0294 18.6416 13.0365 18.6416 13.046V14.4951C18.6416 14.5046 18.6488 14.5117 18.6584 14.5117H21.2718C21.309 14.5117 21.3389 14.5413 21.3389 14.5781V15.809C21.3389 15.8457 21.3078 15.8765 21.2706 15.8765H17.0496C17.0124 15.8765 16.9824 15.8469 16.9824 15.8101V9.12213C16.9824 9.08537 17.0136 9.05454 17.0508 9.05454H17.9451C17.9511 9.05454 17.9571 9.05098 17.9595 9.04624L18.6068 7.96833C18.62 7.94936 18.6416 7.9375 18.6656 7.9375H20.3463C20.4038 7.9375 20.435 8.00272 20.4003 8.0466L19.6774 9.02727C19.669 9.03794 19.6774 9.05454 19.6906 9.05454H21.2706C21.3078 9.05454 21.3377 9.08419 21.3377 9.12095V10.3518C21.3377 10.3886 21.3066 10.4194 21.2694 10.4194H18.6572C18.6476 10.4194 18.6404 10.4265 18.6404 10.436H18.6416Z" fill="white"/>
-    <path d="M27.6433 9.12423V10.3539C27.6433 10.3907 27.6133 10.4215 27.5749 10.4215H25.8606C25.851 10.4215 25.8438 10.4286 25.8438 10.4381V15.8111C25.8438 15.8478 25.8139 15.8786 25.7755 15.8786H24.253C24.2158 15.8786 24.1847 15.849 24.1847 15.8111V10.4381C24.1847 10.4286 24.1775 10.4215 24.1679 10.4215H22.4536C22.4164 10.4215 22.3853 10.3919 22.3853 10.3539V9.12423C22.3853 9.08747 22.4152 9.05664 22.4536 9.05664H27.5749C27.6121 9.05664 27.6433 9.08629 27.6433 9.12423Z" fill="white"/>
-    <path d="M32.3477 15.8364L31.2208 13.3058C31.2184 13.2999 31.2124 13.2964 31.2052 13.2964H30.3732C30.3636 13.2964 30.3564 13.3035 30.3564 13.313V15.8091C30.3564 15.8459 30.3265 15.8767 30.2881 15.8767H28.7656C28.7284 15.8767 28.6973 15.8471 28.6973 15.8091V9.12228C28.6973 9.08552 28.7272 9.05469 28.7656 9.05469H31.2963C32.8859 9.05469 33.9049 9.77685 33.9049 11.1998C33.9049 12.0833 33.5105 12.6833 32.8212 13.0023C32.8128 13.0058 32.8092 13.0165 32.8128 13.0248L34.1387 15.7806C34.1603 15.8257 34.1267 15.8767 34.0776 15.8767H32.41C32.3836 15.8767 32.3585 15.8613 32.3477 15.8364ZM31.0961 11.9327C31.7662 11.9327 32.2458 11.8437 32.2458 11.201C32.2458 10.5583 31.7662 10.4196 31.0961 10.4196H30.3732C30.3636 10.4196 30.3564 10.4267 30.3564 10.4362V11.9149C30.3564 11.9244 30.3636 11.9315 30.3732 11.9315H31.0961V11.9327Z" fill="white"/>
-    <path d="M37.6188 15.9747C36.0496 15.9747 34.8999 15.0355 34.8999 12.9995V11.9322C34.8999 9.87604 36.0496 8.95703 37.6188 8.95703C39.1881 8.95703 40.3377 9.87604 40.3377 11.9322V12.9995C40.3377 15.0355 39.1881 15.9747 37.6188 15.9747ZM36.5591 12.9995C36.5591 14.1165 36.9283 14.611 37.6188 14.611C38.3093 14.611 38.6786 14.1165 38.6786 12.9995V11.9322C38.6786 10.8152 38.3093 10.3207 37.6188 10.3207C36.9283 10.3207 36.5591 10.8152 36.5591 11.9322V12.9995Z" fill="white"/>
-    <path d="M43.0205 13.5912V15.8111C43.0205 15.8478 42.9905 15.8786 42.9522 15.8786H41.4297C41.3925 15.8786 41.3613 15.849 41.3613 15.8111V9.12423C41.3613 9.08747 41.3913 9.05664 41.4297 9.05664H43.9604C45.55 9.05664 46.569 9.74916 46.569 11.2706C46.569 12.792 45.5596 13.5734 43.9604 13.5734H43.0385C43.0289 13.5734 43.0217 13.5805 43.0217 13.59L43.0205 13.5912ZM43.6607 12.2097C44.5298 12.2097 44.9098 11.9524 44.9098 11.2706C44.9098 10.7168 44.5298 10.4203 43.6607 10.4203H43.0385C43.0289 10.4203 43.0217 10.4274 43.0217 10.4369V12.1931C43.0217 12.2026 43.0289 12.2097 43.0385 12.2097H43.6607Z" fill="white"/>
-    <path d="M50.2521 15.9747C48.6829 15.9747 47.5332 15.0355 47.5332 12.9995V11.9322C47.5332 9.87604 48.6829 8.95703 50.2521 8.95703C51.8214 8.95703 52.971 9.87604 52.971 11.9322V12.9995C52.971 15.0355 51.8214 15.9747 50.2521 15.9747ZM49.1924 12.9995C49.1924 14.1165 49.5616 14.611 50.2521 14.611C50.9426 14.611 51.3119 14.1165 51.3119 12.9995V11.9322C51.3119 10.8152 50.9426 10.3207 50.2521 10.3207C49.5616 10.3207 49.1924 10.8152 49.1924 11.9322V12.9995Z" fill="white"/>
-    <path d="M55.6911 14.5138H58.3045C58.3417 14.5138 58.3728 14.5434 58.3728 14.5814V15.8111C58.3728 15.8478 58.3429 15.8786 58.3045 15.8786H54.0835C54.0463 15.8786 54.0151 15.849 54.0151 15.8111V9.12423C54.0151 9.08747 54.0451 9.05664 54.0835 9.05664H55.606C55.6431 9.05664 55.6743 9.08629 55.6743 9.12423V14.4972C55.6743 14.5067 55.6815 14.5138 55.6911 14.5138Z" fill="white"/>
-    <path d="M63.7864 9.12423V10.3539C63.7864 10.3907 63.7564 10.4215 63.7181 10.4215H61.1047C61.0951 10.4215 61.0879 10.4286 61.0879 10.4381V11.65C61.0879 11.6595 61.0951 11.6666 61.1047 11.6666H63.4184C63.4555 11.6666 63.4867 11.6963 63.4867 11.7342V12.9639C63.4867 13.0007 63.4567 13.0315 63.4184 13.0315H61.1047C61.0951 13.0315 61.0879 13.0386 61.0879 13.0481V14.4972C61.0879 14.5067 61.0951 14.5138 61.1047 14.5138H63.7181C63.7552 14.5138 63.7864 14.5434 63.7864 14.5814V15.8111C63.7864 15.8478 63.7564 15.8786 63.7181 15.8786H59.497C59.4599 15.8786 59.4287 15.849 59.4287 15.8111V9.12423C59.4287 9.08747 59.4587 9.05664 59.497 9.05664H63.7181C63.7552 9.05664 63.7864 9.08629 63.7864 9.12423Z" fill="white"/>
+  <symbol id="metropoleGrandLyon" width="104" height="41" viewBox="0 0 104 41" fill="none"
+    xmlns="http://www.w3.org/2000/svg">
+    <path
+      d="M38.9881 28.5058C39.0252 28.5058 39.0564 28.5355 39.0564 28.5734V29.0312C39.0564 31.1822 38.0638 32.1048 36.5089 32.1048C34.9541 32.1048 33.9219 31.1822 33.9219 29.0312V28.2082C33.9219 26.0073 34.9648 25.0859 36.5089 25.0859C37.8864 25.0859 38.7723 25.8306 39.0133 27.2169C39.0204 27.2584 38.9881 27.2963 38.9461 27.2963H37.9571C37.9259 27.2963 37.8984 27.2738 37.8912 27.2441C37.7125 26.4852 37.2738 26.0868 36.5089 26.0868C35.5858 26.0868 35.0847 26.682 35.0847 28.1584V29.0312C35.0847 30.5087 35.5858 31.1028 36.5089 31.1028C37.432 31.1028 37.8276 30.5929 37.9115 29.5256C37.9115 29.5162 37.9043 29.5067 37.8948 29.5067H36.6072C36.5701 29.5067 36.5389 29.477 36.5389 29.4391V28.5722C36.5389 28.5355 36.5689 28.5046 36.6072 28.5046H38.9881V28.5058Z"
+      fill="#FF0032" />
+    <path
+      d="M42.5533 28.2489C43.5339 28.2489 44.0134 27.9916 44.0134 27.2208C44.0134 26.45 43.5339 26.1832 42.5533 26.1832H41.46C41.4504 26.1832 41.4432 26.1904 41.4432 26.1998V28.2323C41.4432 28.2418 41.4504 28.2489 41.46 28.2489H42.5533ZM44.095 31.9677L42.7882 29.2474C42.7882 29.2474 42.7799 29.2379 42.7727 29.2379H41.46C41.4504 29.2379 41.4432 29.245 41.4432 29.2545V31.938C41.4432 31.9748 41.4132 32.0056 41.3748 32.0056H40.351C40.3139 32.0056 40.2827 31.976 40.2827 31.938V25.2512C40.2827 25.2144 40.3127 25.1836 40.351 25.1836H42.6336C44.2232 25.1836 45.1739 25.8654 45.1739 27.2196C45.1739 28.1517 44.7303 28.7529 43.9415 29.0422C43.9319 29.0458 43.9271 29.0565 43.9319 29.0648L45.3453 31.9072C45.3681 31.9522 45.3345 32.0044 45.2842 32.0044H44.1561C44.1297 32.0044 44.1057 31.989 44.095 31.9665"
+      fill="#FF0032" />
+    <path
+      d="M48.1074 29.6031H49.9008C49.9128 29.6031 49.92 29.5925 49.9164 29.5806L49.0197 26.8924C49.0149 26.8769 48.9921 26.8769 48.9873 26.8924L48.0906 29.5806C48.087 29.5913 48.0954 29.6031 48.1062 29.6031M46.0838 31.9155L48.4371 25.2287C48.4467 25.2014 48.4718 25.1836 48.5018 25.1836H49.5052C49.534 25.1836 49.5604 25.2014 49.57 25.2287L51.9232 31.9155C51.9388 31.9594 51.9053 32.0044 51.8585 32.0044H50.7736C50.7448 32.0044 50.7184 31.9854 50.7088 31.9582L50.2581 30.6028C50.2557 30.5957 50.2497 30.5909 50.2425 30.5909H47.7765C47.7693 30.5909 47.7621 30.5957 47.7609 30.6028L47.3102 31.9582C47.3006 31.9854 47.2754 32.0044 47.2454 32.0044H46.1497C46.103 32.0044 46.0706 31.9594 46.085 31.9155"
+      fill="#FF0032" />
+    <path
+      d="M57.614 25.2512V31.938C57.614 31.9748 57.5841 32.0056 57.5457 32.0056H56.6226C56.5986 32.0056 56.577 31.9937 56.5639 31.9724L53.8054 27.4212C53.797 27.407 53.7742 27.4129 53.7742 27.4295V31.938C53.7742 31.9748 53.7442 32.0056 53.7059 32.0056H52.7217C52.6845 32.0056 52.6533 31.976 52.6533 31.938V25.2512C52.6533 25.2144 52.6833 25.1836 52.7217 25.1836H53.6148C53.6387 25.1836 53.6603 25.1955 53.6735 25.2168L56.462 29.8273C56.4704 29.8415 56.4931 29.8356 56.4931 29.819V25.2512C56.4931 25.2144 56.5231 25.1836 56.5615 25.1836H57.5457C57.5829 25.1836 57.614 25.2132 57.614 25.2512Z"
+      fill="#FF0032" />
+    <path
+      d="M62.6277 29.0007V28.1896C62.6277 26.7856 62.1877 26.1832 61.1975 26.1832H60.0442C60.0346 26.1832 60.0274 26.1904 60.0274 26.1998V31C60.0274 31.0095 60.0346 31.0166 60.0442 31.0166H61.1975C62.1877 31.0166 62.6277 30.4036 62.6277 28.9996M58.8682 31.938V25.2512C58.8682 25.2144 58.8981 25.1836 58.9365 25.1836H61.1987C62.7487 25.1836 63.7881 26.0042 63.7881 28.1885V28.9996C63.7881 31.1838 62.7475 32.0044 61.1987 32.0044H58.9365C58.8993 32.0044 58.8682 31.9748 58.8682 31.9368"
+      fill="#FF0032" />
+    <path d="M100.101 20.0293H67.9849V37.1727H100.101V20.0293Z" fill="#FF0032" />
+    <path
+      d="M74.8791 30.6466H77.4925C77.5297 30.6466 77.5608 30.6762 77.5608 30.7142V31.9439C77.5608 31.9806 77.5309 32.0115 77.4925 32.0115H73.2715C73.2343 32.0115 73.2031 31.9818 73.2031 31.9439V25.257C73.2031 25.2203 73.2331 25.1895 73.2715 25.1895H74.794C74.8311 25.1895 74.8623 25.2191 74.8623 25.257V30.63C74.8623 30.6395 74.8695 30.6466 74.8791 30.6466Z"
+      fill="white" />
+    <path
+      d="M78.6877 25.2286L79.7235 27.4982C79.7295 27.5113 79.7487 27.5113 79.7547 27.4982L80.7905 25.2286C80.8012 25.2049 80.8252 25.1895 80.8528 25.1895H82.6055C82.657 25.1895 82.6894 25.2428 82.6654 25.2879L80.5699 29.2782C80.5699 29.2782 80.5675 29.2829 80.5675 29.2865V31.9439C80.5675 31.9806 80.5375 32.0115 80.4991 32.0115H78.9754C78.9383 32.0115 78.9071 31.9818 78.9071 31.9439V29.2865C78.9071 29.2865 78.9071 29.2805 78.9047 29.2782L76.8092 25.2879C76.7852 25.2428 76.8188 25.1895 76.8691 25.1895H78.6218C78.6482 25.1895 78.6733 25.2049 78.6841 25.2286H78.6877Z"
+      fill="white" />
+    <path
+      d="M85.7043 32.1095C84.135 32.1095 82.9854 31.1703 82.9854 29.1342V28.067C82.9854 26.0108 84.135 25.0918 85.7043 25.0918C87.2735 25.0918 88.4232 26.0108 88.4232 28.067V29.1342C88.4232 31.1703 87.2735 32.1095 85.7043 32.1095ZM84.6445 29.1342C84.6445 30.2513 85.0137 30.7458 85.7043 30.7458C86.3948 30.7458 86.764 30.2513 86.764 29.1342V28.067C86.764 26.95 86.3948 26.4555 85.7043 26.4555C85.0137 26.4555 84.6445 26.95 84.6445 28.067V29.1342Z"
+      fill="white" />
+    <path
+      d="M94.8836 25.257V31.9439C94.8836 31.9806 94.8537 32.0115 94.8153 32.0115H93.5805C93.5577 32.0115 93.5362 32.0008 93.5242 31.9818L91.0366 28.2821C91.027 28.2678 91.0055 28.275 91.0055 28.2916V31.9451C91.0055 31.9818 90.9755 32.0126 90.9371 32.0126H89.5141C89.477 32.0126 89.4458 31.983 89.4458 31.9451V25.2582C89.4458 25.2215 89.4758 25.1906 89.5141 25.1906H90.7285C90.7513 25.1906 90.7729 25.2025 90.7849 25.2203L93.2916 28.9698C93.3012 28.9841 93.3228 28.977 93.3228 28.9604V25.257C93.3228 25.2203 93.3527 25.1895 93.3911 25.1895H94.8141C94.8513 25.1895 94.8824 25.2191 94.8824 25.257H94.8836Z"
+      fill="white" />
+    <path d="M69.005 3.89453H3.89844V21.0379H69.005V3.89453Z" fill="#FF0032" />
+    <path
+      d="M12.5383 12.4884L14.3629 9.09221C14.3749 9.06968 14.3977 9.05664 14.4228 9.05664H15.8626C15.8998 9.05664 15.931 9.08629 15.931 9.12423V15.8111C15.931 15.8478 15.901 15.8786 15.8626 15.8786H14.4396C14.4025 15.8786 14.3713 15.849 14.3713 15.8111V12.0923C14.3713 12.0745 14.3473 12.0686 14.3389 12.0852L12.9711 14.7154C12.9591 14.7379 12.9363 14.7521 12.9111 14.7521H12.1043C12.0792 14.7521 12.0552 14.7379 12.0432 14.7154L10.7053 12.116C10.6969 12.1006 10.6729 12.1066 10.6729 12.1232V15.8122C10.6729 15.849 10.643 15.8798 10.6046 15.8798H9.18161C9.14445 15.8798 9.11328 15.8502 9.11328 15.8122V9.12542C9.11328 9.08866 9.14325 9.05783 9.18161 9.05783H10.6118C10.637 9.05783 10.6598 9.07206 10.6717 9.0934L12.5059 12.4896C12.5119 12.5014 12.5299 12.5014 12.5359 12.4896L12.5383 12.4884Z"
+      fill="white" />
+    <path
+      d="M18.6416 10.436V11.6479C18.6416 11.6574 18.6488 11.6645 18.6584 11.6645H20.9721C21.0093 11.6645 21.0392 11.6942 21.0392 11.7309V12.9618C21.0392 12.9986 21.008 13.0294 20.9709 13.0294H18.6584C18.6488 13.0294 18.6416 13.0365 18.6416 13.046V14.4951C18.6416 14.5046 18.6488 14.5117 18.6584 14.5117H21.2718C21.309 14.5117 21.3389 14.5413 21.3389 14.5781V15.809C21.3389 15.8457 21.3078 15.8765 21.2706 15.8765H17.0496C17.0124 15.8765 16.9824 15.8469 16.9824 15.8101V9.12213C16.9824 9.08537 17.0136 9.05454 17.0508 9.05454H17.9451C17.9511 9.05454 17.9571 9.05098 17.9595 9.04624L18.6068 7.96833C18.62 7.94936 18.6416 7.9375 18.6656 7.9375H20.3463C20.4038 7.9375 20.435 8.00272 20.4003 8.0466L19.6774 9.02727C19.669 9.03794 19.6774 9.05454 19.6906 9.05454H21.2706C21.3078 9.05454 21.3377 9.08419 21.3377 9.12095V10.3518C21.3377 10.3886 21.3066 10.4194 21.2694 10.4194H18.6572C18.6476 10.4194 18.6404 10.4265 18.6404 10.436H18.6416Z"
+      fill="white" />
+    <path
+      d="M27.6433 9.12423V10.3539C27.6433 10.3907 27.6133 10.4215 27.5749 10.4215H25.8606C25.851 10.4215 25.8438 10.4286 25.8438 10.4381V15.8111C25.8438 15.8478 25.8139 15.8786 25.7755 15.8786H24.253C24.2158 15.8786 24.1847 15.849 24.1847 15.8111V10.4381C24.1847 10.4286 24.1775 10.4215 24.1679 10.4215H22.4536C22.4164 10.4215 22.3853 10.3919 22.3853 10.3539V9.12423C22.3853 9.08747 22.4152 9.05664 22.4536 9.05664H27.5749C27.6121 9.05664 27.6433 9.08629 27.6433 9.12423Z"
+      fill="white" />
+    <path
+      d="M32.3477 15.8364L31.2208 13.3058C31.2184 13.2999 31.2124 13.2964 31.2052 13.2964H30.3732C30.3636 13.2964 30.3564 13.3035 30.3564 13.313V15.8091C30.3564 15.8459 30.3265 15.8767 30.2881 15.8767H28.7656C28.7284 15.8767 28.6973 15.8471 28.6973 15.8091V9.12228C28.6973 9.08552 28.7272 9.05469 28.7656 9.05469H31.2963C32.8859 9.05469 33.9049 9.77685 33.9049 11.1998C33.9049 12.0833 33.5105 12.6833 32.8212 13.0023C32.8128 13.0058 32.8092 13.0165 32.8128 13.0248L34.1387 15.7806C34.1603 15.8257 34.1267 15.8767 34.0776 15.8767H32.41C32.3836 15.8767 32.3585 15.8613 32.3477 15.8364ZM31.0961 11.9327C31.7662 11.9327 32.2458 11.8437 32.2458 11.201C32.2458 10.5583 31.7662 10.4196 31.0961 10.4196H30.3732C30.3636 10.4196 30.3564 10.4267 30.3564 10.4362V11.9149C30.3564 11.9244 30.3636 11.9315 30.3732 11.9315H31.0961V11.9327Z"
+      fill="white" />
+    <path
+      d="M37.6188 15.9747C36.0496 15.9747 34.8999 15.0355 34.8999 12.9995V11.9322C34.8999 9.87604 36.0496 8.95703 37.6188 8.95703C39.1881 8.95703 40.3377 9.87604 40.3377 11.9322V12.9995C40.3377 15.0355 39.1881 15.9747 37.6188 15.9747ZM36.5591 12.9995C36.5591 14.1165 36.9283 14.611 37.6188 14.611C38.3093 14.611 38.6786 14.1165 38.6786 12.9995V11.9322C38.6786 10.8152 38.3093 10.3207 37.6188 10.3207C36.9283 10.3207 36.5591 10.8152 36.5591 11.9322V12.9995Z"
+      fill="white" />
+    <path
+      d="M43.0205 13.5912V15.8111C43.0205 15.8478 42.9905 15.8786 42.9522 15.8786H41.4297C41.3925 15.8786 41.3613 15.849 41.3613 15.8111V9.12423C41.3613 9.08747 41.3913 9.05664 41.4297 9.05664H43.9604C45.55 9.05664 46.569 9.74916 46.569 11.2706C46.569 12.792 45.5596 13.5734 43.9604 13.5734H43.0385C43.0289 13.5734 43.0217 13.5805 43.0217 13.59L43.0205 13.5912ZM43.6607 12.2097C44.5298 12.2097 44.9098 11.9524 44.9098 11.2706C44.9098 10.7168 44.5298 10.4203 43.6607 10.4203H43.0385C43.0289 10.4203 43.0217 10.4274 43.0217 10.4369V12.1931C43.0217 12.2026 43.0289 12.2097 43.0385 12.2097H43.6607Z"
+      fill="white" />
+    <path
+      d="M50.2521 15.9747C48.6829 15.9747 47.5332 15.0355 47.5332 12.9995V11.9322C47.5332 9.87604 48.6829 8.95703 50.2521 8.95703C51.8214 8.95703 52.971 9.87604 52.971 11.9322V12.9995C52.971 15.0355 51.8214 15.9747 50.2521 15.9747ZM49.1924 12.9995C49.1924 14.1165 49.5616 14.611 50.2521 14.611C50.9426 14.611 51.3119 14.1165 51.3119 12.9995V11.9322C51.3119 10.8152 50.9426 10.3207 50.2521 10.3207C49.5616 10.3207 49.1924 10.8152 49.1924 11.9322V12.9995Z"
+      fill="white" />
+    <path
+      d="M55.6911 14.5138H58.3045C58.3417 14.5138 58.3728 14.5434 58.3728 14.5814V15.8111C58.3728 15.8478 58.3429 15.8786 58.3045 15.8786H54.0835C54.0463 15.8786 54.0151 15.849 54.0151 15.8111V9.12423C54.0151 9.08747 54.0451 9.05664 54.0835 9.05664H55.606C55.6431 9.05664 55.6743 9.08629 55.6743 9.12423V14.4972C55.6743 14.5067 55.6815 14.5138 55.6911 14.5138Z"
+      fill="white" />
+    <path
+      d="M63.7864 9.12423V10.3539C63.7864 10.3907 63.7564 10.4215 63.7181 10.4215H61.1047C61.0951 10.4215 61.0879 10.4286 61.0879 10.4381V11.65C61.0879 11.6595 61.0951 11.6666 61.1047 11.6666H63.4184C63.4555 11.6666 63.4867 11.6963 63.4867 11.7342V12.9639C63.4867 13.0007 63.4567 13.0315 63.4184 13.0315H61.1047C61.0951 13.0315 61.0879 13.0386 61.0879 13.0481V14.4972C61.0879 14.5067 61.0951 14.5138 61.1047 14.5138H63.7181C63.7552 14.5138 63.7864 14.5434 63.7864 14.5814V15.8111C63.7864 15.8478 63.7564 15.8786 63.7181 15.8786H59.497C59.4599 15.8786 59.4287 15.849 59.4287 15.8111V9.12423C59.4287 9.08747 59.4587 9.05664 59.497 9.05664H63.7181C63.7552 9.05664 63.7864 9.08629 63.7864 9.12423Z"
+      fill="white" />
   </symbol>
 
   <symbol id="close" width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
@@ -792,5 +793,217 @@
       fill="#47C562" stroke="white" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" />
   </symbol>
 
+  <symbol id="numRelay" width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
+    <path d="M12.3909 9.14148L11.5059 9.19706V14.3656L14.1058 14.1989V13.3652L12.3909 13.5319V9.14148Z"
+      fill="#009CDE" />
+    <path d="M19.1951 14.4211L18.3101 14.4767V19.6452L20.91 19.4785V18.6449L19.1951 18.8116V14.4211Z" fill="#009CDE" />
+    <path
+      d="M19.8035 9.0859C20.4673 8.90806 20.6701 9.60461 20.6886 9.97511L21.463 9.80839C21.463 8.58573 20.5226 8.14112 19.5269 8.419C18.5312 8.69688 18.2546 9.36378 18.31 10.1974C18.3653 11.0311 19.1397 11.3089 19.5822 11.3645C20.0248 11.4201 20.578 11.5868 20.7992 11.8647C21.0205 12.1426 20.8545 13.0873 19.8588 13.0318C19.0622 12.9873 18.9 12.2722 18.9184 11.9203L18.0887 12.1426C18.0333 12.9762 18.6971 13.8098 19.8588 13.8098C21.0205 13.8098 21.6843 13.1429 21.7396 12.1426C21.7949 11.1422 20.9651 10.8087 20.1354 10.642C19.3056 10.4753 19.195 10.1974 19.1397 10.0307C19.0844 9.86396 18.9738 9.30821 19.8035 9.0859Z"
+      fill="#009CDE" />
+    <path
+      d="M28.8787 14.5008C29.5425 14.323 29.7453 15.0195 29.7638 15.39L30.5382 15.2233C30.5382 14.0006 29.5978 13.556 28.6021 13.8339C27.6064 14.1118 27.3298 14.7787 27.3852 15.6123C27.4405 16.446 28.2149 16.7238 28.6574 16.7794C29.1 16.835 29.6531 17.0017 29.8744 17.2796C30.0957 17.5575 29.9297 18.5023 28.934 18.4467C28.1374 18.4022 27.9752 17.6872 27.9936 17.3352L27.1638 17.5575C27.1085 18.3911 27.7723 19.2247 28.934 19.2247C30.0956 19.2247 30.7595 18.5578 30.8148 17.5575C30.8701 16.5571 30.0403 16.2237 29.2106 16.0569C28.3808 15.8902 28.2702 15.6123 28.2149 15.4456C28.1596 15.2789 28.0489 14.7231 28.8787 14.5008Z"
+      fill="#009CDE" />
+    <path
+      d="M38.0613 19.5027C38.7251 19.3248 38.928 20.0214 38.9464 20.3919L39.7208 20.2251C39.7208 19.0025 38.7804 18.5579 37.7847 18.8357C36.789 19.1136 36.5125 19.7805 36.5678 20.6142C36.6231 21.4478 37.3975 21.7257 37.8401 21.7813C38.2826 21.8368 38.8358 22.0036 39.057 22.2814C39.2783 22.5593 39.1124 23.5041 38.1166 23.4485C37.32 23.4041 37.1578 22.689 37.1763 22.337L36.3465 22.5593C36.2911 23.3929 36.955 24.2266 38.1166 24.2266C39.2783 24.2266 39.9421 23.5597 39.9974 22.5593C40.0527 21.5589 39.2229 21.2255 38.3932 21.0588C37.5634 20.892 37.4528 20.6142 37.3975 20.4474C37.3422 20.2807 37.2316 19.725 38.0613 19.5027Z"
+      fill="#009CDE" />
+    <path
+      d="M0.829755 27.3702L0 27.4258V22.2572L1.21697 22.2017L2.82117 26.0364V22.0349L3.65092 21.9794V27.0923L2.48926 27.2035L0.829755 23.2576V27.3702Z"
+      fill="#009CDE" />
+    <path
+      d="M9.5695 26.6477L8.73975 26.7033V21.5904L9.9014 21.4792L11.2843 25.4806L12.5566 21.2569L13.7736 21.1458V26.3143L12.9438 26.3699V22.3684L11.6715 26.481L10.8418 26.5366L9.5695 22.7574V26.6477Z"
+      fill="#009CDE" />
+    <path fill-rule="evenodd" clip-rule="evenodd"
+      d="M21.187 19.7007L22.0721 19.6452L22.404 18.4225L24.1741 18.3113L24.506 19.4229L25.3911 19.3673L23.8422 14.3655L22.7359 14.4211L21.187 19.7007ZM22.5699 17.7556L23.2891 15.088L24.0635 17.6444L22.5699 17.7556Z"
+      fill="#009CDE" />
+    <path
+      d="M26.5175 14.4703C26.3316 14.714 26.0041 14.7753 25.7858 14.6073C25.5676 14.4393 25.5413 14.1056 25.7271 13.8619C25.9129 13.6183 26.2404 13.557 26.4587 13.725C26.6769 13.893 26.7033 14.2267 26.5175 14.4703Z"
+      fill="#009CDE" />
+    <path
+      d="M23.4193 20.9172C23.2335 21.1609 22.9059 21.2222 22.6877 21.0542C22.4694 20.8862 22.4431 20.5525 22.6289 20.3088C22.8147 20.0652 23.1423 20.0039 23.3605 20.1719C23.5788 20.3399 23.6051 20.6736 23.4193 20.9172Z"
+      fill="#009CDE" />
+    <path d="M26.5518 18.9783L25.7773 19.0339V15.3103L26.5518 15.2548V18.9783Z" fill="#009CDE" />
+    <path d="M23.4546 25.425L22.6802 25.4806V21.757L23.4546 21.7014V25.425Z" fill="#009CDE" />
+    <path fill-rule="evenodd" clip-rule="evenodd"
+      d="M10.4551 20.5899V15.4769L12.7231 15.3102C13.0734 15.3102 13.8709 15.5947 13.9954 16.5328C14.1003 17.3233 13.542 17.7473 13.2167 17.9945C13.1989 18.0079 13.1818 18.0209 13.1656 18.0334C13.3869 18.0704 13.8294 18.2557 13.8294 18.7003V20.312L12.9443 20.3676V18.9773C12.9443 18.9039 12.9396 18.8301 12.9177 18.7601C12.8522 18.5504 12.69 18.2737 12.3912 18.3113L11.2848 18.4224V20.5343L10.4551 20.5899ZM11.2295 17.6444V16.0327L12.0203 15.9981C12.3396 15.9842 12.6918 15.9873 12.9104 16.2215C13.11 16.4353 13.1979 16.7458 13.055 17.033C12.9812 17.1813 12.8792 17.2961 12.7746 17.3823C12.5493 17.5679 12.2446 17.5958 11.9535 17.6097L11.2295 17.6444Z"
+      fill="#009CDE" />
+    <path fill-rule="evenodd" clip-rule="evenodd"
+      d="M18.3101 26.1475V21.0345L20.5781 20.8678C20.9284 20.8678 21.7258 21.1523 21.8503 22.0905C21.9553 22.8809 21.397 23.305 21.0717 23.5521C21.0539 23.5656 21.0368 23.5785 21.0206 23.591C21.2419 23.6281 21.6844 23.8133 21.6844 24.2579V25.8696L20.7993 25.9252V24.5349C20.7993 24.4615 20.7946 24.3877 20.7727 24.3178C20.7072 24.108 20.545 23.8313 20.2462 23.8689L19.1398 23.98V26.0919L18.3101 26.1475ZM19.0845 23.202V21.5903L19.8752 21.5557C20.1946 21.5418 20.5467 21.5449 20.7654 21.7791C20.965 21.9929 21.0529 22.3034 20.91 22.5906C20.8361 22.7389 20.7341 22.8538 20.6296 22.9399C20.4042 23.1256 20.0995 23.1534 19.8085 23.1673L19.0845 23.202Z"
+      fill="#009CDE" />
+    <path
+      d="M5.25484 22.4241L4.31445 22.4797V26.2446C4.31445 26.291 4.31776 26.3378 4.32641 26.3834C4.51728 27.3896 5.33946 27.8088 6.63777 27.537C7.69985 27.3147 7.96537 26.407 7.96537 25.9809V22.2018L7.13562 22.2574V25.703C7.13562 26.0921 7.0803 26.6478 6.19523 26.759C5.48717 26.8479 5.27328 26.4626 5.25484 26.2032V22.4241Z"
+      fill="#009CDE" />
+    <path
+      d="M29.6499 19.6454L28.7095 19.701V23.4659C28.7095 23.5124 28.7128 23.5591 28.7214 23.6047C28.9123 24.6109 29.7345 25.0301 31.0328 24.7583C32.0949 24.536 32.3604 23.6283 32.3604 23.2022V19.4231L31.5306 19.4787V22.9244C31.5306 23.3134 31.4753 23.8691 30.5903 23.9803C29.8822 24.0692 29.6683 23.6839 29.6499 23.4245V19.6454Z"
+      fill="#009CDE" />
+    <path
+      d="M33.0796 24.758L35.9561 24.4801V23.7577L33.9093 23.9244V22.3683L35.6242 22.2015V21.5346L33.9093 21.7014V20.312L35.9008 20.0897V19.3672L33.0796 19.6451V24.758Z"
+      fill="#009CDE" />
+    <path d="M14.7139 25.7031V26.5368L17.535 26.3145V25.4808L14.7139 25.7031Z" fill="#009CDE" />
+    <path d="M14.7139 19.0339V19.8676L17.535 19.6453V18.8116L14.7139 19.0339Z" fill="#009CDE" />
+    <path d="M14.7139 12.3649V13.1985L17.535 12.9762V12.1426L14.7139 12.3649Z" fill="#009CDE" />
+    <path d="M14.7139 23.4245V24.2581L17.535 24.0358V23.2021L14.7139 23.4245Z" fill="#009CDE" />
+    <path d="M14.7139 16.7554V17.589L17.535 17.3667V16.5331L14.7139 16.7554Z" fill="#009CDE" />
+    <path d="M14.7139 10.0862V10.9198L17.535 10.6975V9.86389L14.7139 10.0862Z" fill="#009CDE" />
+    <path d="M14.7139 21.3124V22.146L17.535 21.9237V21.0901L14.7139 21.3124Z" fill="#009CDE" />
+    <path d="M14.7139 14.6434V15.4771L17.535 15.2548V14.4211L14.7139 14.6434Z" fill="#009CDE" />
+    <path d="M14.7139 7.97438V8.80801L17.535 8.58571V7.75208L14.7139 7.97438Z" fill="#009CDE" />
+    <path fill-rule="evenodd" clip-rule="evenodd"
+      d="M25.6674 25.0692C25.5877 25.0567 25.5082 25.0386 25.4292 25.0146C24.3535 24.6874 23.7913 23.3935 24.1736 22.1246C24.5559 20.8556 25.7379 20.0921 26.8137 20.4192C27.8894 20.7463 28.4516 22.0402 28.0693 23.3092C27.82 24.1367 27.2306 24.7492 26.5525 24.9846V25.1494C26.5525 25.2205 26.5734 25.2899 26.6126 25.349C26.7471 25.5517 27.039 25.5644 27.1904 25.3742L27.3269 25.2028L27.6588 25.703C27.6537 25.7087 27.6485 25.7147 27.643 25.7209C27.492 25.8924 27.2185 26.2031 26.6631 26.2031C26.3235 26.2031 26.0507 26.0482 25.8766 25.8756C25.6858 25.6863 25.6674 25.4009 25.6674 25.1315V25.0692ZM27.3192 22.8787C27.193 23.8339 26.5508 24.5362 25.8848 24.4474C25.2188 24.3586 24.7811 23.5123 24.9073 22.5572C25.0335 21.602 25.6757 20.8997 26.3417 20.9885C27.0077 21.0773 27.4453 21.9236 27.3192 22.8787Z"
+      fill="#009CDE" />
+    <path
+      d="M5.34914 30.7058C5.25711 30.7932 5.16797 30.8567 5.0817 30.8965C4.99636 30.9362 4.90422 30.96 4.80527 30.9678C4.64192 30.9807 4.5157 30.9507 4.42664 30.8777C4.33756 30.8037 4.29198 30.7042 4.28992 30.5791C4.28871 30.5057 4.30394 30.4376 4.33562 30.3749C4.36822 30.3111 4.41081 30.2587 4.46342 30.2178C4.51695 30.1769 4.57717 30.1443 4.64407 30.1202C4.69333 30.1031 4.76779 30.0845 4.86747 30.0644C5.07057 30.0238 5.21991 29.9828 5.31549 29.9414C5.31585 29.9065 5.31596 29.8844 5.3158 29.875C5.31409 29.7715 5.28909 29.7005 5.24078 29.6619C5.17542 29.6096 5.07927 29.5885 4.95232 29.5985C4.83377 29.6079 4.74637 29.636 4.69013 29.6828C4.6348 29.7287 4.59448 29.8058 4.56917 29.9142L4.32217 29.8998C4.34282 29.7918 4.37828 29.7033 4.42855 29.6343C4.4788 29.5644 4.55218 29.5082 4.64869 29.4657C4.74518 29.4223 4.85737 29.3955 4.98525 29.3854C5.11221 29.3754 5.2156 29.3823 5.29544 29.4061C5.37529 29.4299 5.43426 29.4634 5.47236 29.5066C5.51044 29.5488 5.53752 29.6041 5.55361 29.6725C5.56272 29.7151 5.56821 29.7928 5.57007 29.9057L5.57566 30.2443C5.57956 30.4804 5.58716 30.6296 5.59847 30.6918C5.6107 30.753 5.63315 30.811 5.66584 30.8659L5.4026 30.8867C5.37559 30.8361 5.35777 30.7758 5.34914 30.7058ZM5.31878 30.1403C5.22792 30.1852 5.09123 30.228 4.9087 30.2688C4.80533 30.292 4.73234 30.3148 4.68971 30.337C4.64708 30.3592 4.6144 30.3896 4.59167 30.4281C4.56892 30.4657 4.55791 30.5066 4.55864 30.5508C4.55976 30.6185 4.58589 30.6729 4.63705 30.7141C4.68913 30.7552 4.76418 30.7719 4.8622 30.7641C4.95928 30.7564 5.04527 30.7284 5.12019 30.6801C5.19508 30.6309 5.24965 30.5677 5.2839 30.4906C5.31002 30.4311 5.32216 30.3454 5.32031 30.2334L5.31878 30.1403Z"
+      fill="#231952" />
+    <path
+      d="M6.39114 30.8085L5.80073 29.3549L6.06677 29.3338L6.40083 30.2059C6.43696 30.3001 6.47036 30.3982 6.50102 30.5003C6.52212 30.4195 6.55183 30.3221 6.59013 30.2079L6.90549 29.2675L7.16453 29.247L6.62638 30.7899L6.39114 30.8085Z"
+      fill="#231952" />
+    <path
+      d="M8.42187 30.1648L8.68285 30.1766C8.64431 30.3332 8.57019 30.4582 8.46051 30.5516C8.35082 30.6451 8.20963 30.6986 8.03694 30.7123C7.81944 30.7295 7.64564 30.6759 7.51554 30.5515C7.38635 30.4261 7.31974 30.2416 7.31572 29.998C7.31156 29.7459 7.37274 29.5451 7.49926 29.3957C7.62578 29.2463 7.79173 29.1635 7.99709 29.1473C8.19592 29.1316 8.35947 29.1869 8.48774 29.3133C8.61601 29.4398 8.68218 29.6267 8.68627 29.874C8.68651 29.8891 8.68642 29.9117 8.68598 29.9419L7.57702 30.0296C7.58907 30.1934 7.63736 30.3158 7.72188 30.3967C7.80641 30.4776 7.91074 30.5132 8.03489 30.5034C8.12731 30.4961 8.20578 30.4654 8.27032 30.4113C8.33485 30.3572 8.38537 30.275 8.42187 30.1648ZM7.58758 29.8196L8.4179 29.754C8.40462 29.6288 8.37132 29.5368 8.318 29.4779C8.23611 29.3865 8.13122 29.3458 8.00334 29.3559C7.88759 29.365 7.79068 29.4118 7.71263 29.4961C7.6355 29.5804 7.59382 29.6882 7.58758 29.8196Z"
+      fill="#231952" />
+    <path
+      d="M9.9694 29.976L10.2178 29.9889C10.1935 30.1631 10.1262 30.3036 10.0158 30.4103C9.90635 30.516 9.77039 30.5752 9.60797 30.5881C9.40447 30.6042 9.23955 30.5503 9.11319 30.4266C8.98775 30.3018 8.92297 30.1143 8.91884 29.8641C8.91617 29.7023 8.94044 29.5587 8.99164 29.4331C9.04285 29.3076 9.12209 29.2104 9.22938 29.1417C9.33759 29.0719 9.45563 29.032 9.58352 29.0219C9.74501 29.0091 9.87778 29.04 9.98183 29.1147C10.0859 29.1884 10.1536 29.2998 10.185 29.449L9.94062 29.5064C9.91563 29.4076 9.87284 29.3352 9.81226 29.2891C9.75261 29.243 9.68078 29.2232 9.59677 29.2299C9.46982 29.2399 9.36743 29.2942 9.2896 29.3926C9.21177 29.4901 9.17448 29.6381 9.17776 29.8366C9.18108 30.0379 9.22177 30.1811 9.29982 30.2663C9.37787 30.3515 9.4785 30.3892 9.60172 30.3795C9.70067 30.3717 9.78278 30.3345 9.84804 30.2682C9.91331 30.2018 9.95376 30.1044 9.9694 29.976Z"
+      fill="#231952" />
+    <path
+      d="M11.2596 30.4236L11.2255 28.3552L12.7475 28.2348L12.7533 28.5847L11.6457 28.6723L11.6533 29.1309L12.6839 29.0494L12.6896 29.3979L11.6591 29.4793L11.6684 30.0423L12.8151 29.9516L12.8209 30.3001L11.2596 30.4236Z"
+      fill="#231952" />
+    <path
+      d="M13.1154 28.7765L13.478 28.7478L13.4814 28.9524C13.6085 28.7832 13.7617 28.6915 13.941 28.6773C14.0362 28.6698 14.1191 28.683 14.1898 28.717C14.2604 28.7509 14.3188 28.8061 14.3649 28.8825C14.429 28.7974 14.4985 28.7321 14.5734 28.6866C14.6484 28.6412 14.7288 28.615 14.8147 28.6082C14.9239 28.5996 15.0167 28.6149 15.093 28.654C15.1694 28.6923 15.2269 28.7532 15.2657 28.8367C15.2938 28.8986 15.3091 29.001 15.3114 29.1439L15.3272 30.1019L14.9338 30.1331L14.9196 29.2766C14.9172 29.128 14.9021 29.0331 14.8743 28.992C14.837 28.9385 14.7805 28.9147 14.7049 28.9206C14.6498 28.925 14.5983 28.946 14.5503 28.9837C14.5023 29.0214 14.4681 29.0741 14.4477 29.1416C14.4273 29.2082 14.4183 29.312 14.4206 29.4531L14.4325 30.1727L14.0391 30.2038L14.0255 29.3827C14.0231 29.2369 14.0145 29.1434 13.9998 29.1021C13.9851 29.0609 13.9627 29.0311 13.9325 29.0128C13.9032 28.9944 13.8633 28.9872 13.8129 28.9912C13.7523 28.996 13.6979 29.0168 13.6499 29.0535C13.6019 29.0903 13.5677 29.1405 13.5473 29.2043C13.5278 29.268 13.5192 29.3718 13.5216 29.5157L13.5336 30.2438L13.1401 30.2749L13.1154 28.7765Z"
+      fill="#231952" />
+    <path
+      d="M15.6666 28.5748L16.0292 28.5461L16.0326 28.7507C16.1597 28.5815 16.3129 28.4898 16.4921 28.4756C16.5873 28.4681 16.6703 28.4813 16.7409 28.5153C16.8116 28.5492 16.87 28.6044 16.9161 28.6808C16.9801 28.5957 17.0496 28.5304 17.1246 28.4849C17.1995 28.4394 17.28 28.4133 17.3658 28.4065C17.4751 28.3979 17.5678 28.4131 17.6442 28.4523C17.7205 28.4905 17.7781 28.5514 17.8169 28.635C17.845 28.6968 17.8602 28.7992 17.8626 28.9422L17.8784 29.9002L17.485 29.9313L17.4708 29.0749C17.4684 28.9263 17.4532 28.8314 17.4255 28.7903C17.3881 28.7367 17.3316 28.713 17.256 28.7189C17.201 28.7233 17.1494 28.7443 17.1015 28.782C17.0535 28.8197 17.0193 28.8723 16.9989 28.9399C16.9785 29.0065 16.9695 29.1103 16.9718 29.2514L16.9837 29.971L16.5902 30.0021L16.5767 29.1809C16.5743 29.0351 16.5657 28.9416 16.551 28.9004C16.5363 28.8592 16.5139 28.8294 16.4836 28.8111C16.4544 28.7927 16.4145 28.7855 16.3641 28.7895C16.3034 28.7943 16.2491 28.815 16.2011 28.8518C16.1531 28.8885 16.1189 28.9388 16.0984 29.0026C16.0789 29.0663 16.0704 29.1701 16.0727 29.314L16.0847 30.042L15.6913 30.0732L15.6666 28.5748Z"
+      fill="#231952" />
+    <path
+      d="M18.5487 28.8046L18.1906 28.7679C18.2283 28.6199 18.2957 28.5072 18.3925 28.4299C18.4894 28.3525 18.6344 28.3062 18.8277 28.2909C19.0032 28.277 19.1342 28.2879 19.2208 28.3234C19.3073 28.358 19.3684 28.4064 19.404 28.4686C19.4405 28.5297 19.4602 28.6464 19.4631 28.8185L19.4665 29.2816C19.4687 29.4133 19.4764 29.5102 19.4895 29.5722C19.5036 29.6333 19.5285 29.6982 19.5643 29.7669L19.175 29.7977C19.1643 29.7722 19.151 29.7341 19.1353 29.6836C19.1283 29.6606 19.1234 29.6454 19.1205 29.6381C19.0544 29.7093 18.9833 29.7644 18.9073 29.8033C18.8313 29.8423 18.7499 29.8652 18.6631 29.8721C18.51 29.8842 18.3884 29.8519 18.2984 29.7752C18.2092 29.6984 18.1636 29.5961 18.1615 29.4681C18.1601 29.3835 18.1789 29.3067 18.218 29.2376C18.257 29.1677 18.3122 29.1125 18.3835 29.072C18.4557 29.0305 18.5597 28.9912 18.6956 28.9541C18.8789 28.9047 19.0058 28.8622 19.0762 28.8265L19.0756 28.787C19.0743 28.7108 19.0548 28.6582 19.0169 28.6291C18.979 28.5992 18.9083 28.5883 18.8047 28.5965C18.7347 28.602 18.6803 28.6204 18.6415 28.6518C18.6028 28.6821 18.5718 28.7331 18.5487 28.8046ZM19.0805 29.0847C19.0304 29.1056 18.9509 29.1321 18.8421 29.1643C18.7332 29.1964 18.6622 29.2251 18.629 29.2503C18.5782 29.2911 18.5533 29.3397 18.5543 29.3961C18.5552 29.4516 18.5765 29.498 18.6183 29.5352C18.66 29.5724 18.7126 29.5884 18.7761 29.5834C18.847 29.5778 18.9143 29.5489 18.978 29.4968C19.025 29.4573 19.0555 29.4111 19.0696 29.3582C19.0793 29.3235 19.0834 29.2587 19.0818 29.1637L19.0805 29.0847Z"
+      fill="#231952" />
+    <path
+      d="M20.8468 29.6655L20.8431 29.4412C20.7903 29.5254 20.7199 29.5941 20.632 29.6472C20.545 29.7002 20.4525 29.7306 20.3545 29.7383C20.2546 29.7462 20.1647 29.7312 20.0846 29.6933C20.0045 29.6554 19.9461 29.5978 19.9093 29.5207C19.8725 29.4435 19.8529 29.3344 19.8506 29.1933L19.835 28.2452L20.2284 28.2141L20.2398 28.9026C20.2433 29.1133 20.2524 29.2421 20.2672 29.2889C20.2829 29.3348 20.3101 29.3703 20.3489 29.3955C20.3876 29.4197 20.4364 29.4295 20.4952 29.4249C20.5624 29.4196 20.6223 29.3965 20.6749 29.3556C20.7275 29.3138 20.7631 29.2648 20.7818 29.2087C20.8005 29.1516 20.8081 29.0159 20.8045 28.8014L20.7941 28.1693L21.1876 28.1382L21.2123 29.6366L20.8468 29.6655Z"
+      fill="#231952" />
+    <path
+      d="M21.4755 29.1877L21.8693 29.0959C21.8874 29.1717 21.9224 29.2277 21.9745 29.2641C22.0264 29.2996 22.0987 29.3136 22.1911 29.3063C22.2928 29.2983 22.369 29.2734 22.4198 29.2317C22.4539 29.2027 22.4706 29.166 22.4698 29.1218C22.4693 29.0917 22.4596 29.0675 22.4406 29.0493C22.4207 29.032 22.3765 29.0181 22.3081 29.0075C21.9896 28.962 21.7873 28.9135 21.7014 28.8619C21.5825 28.7903 21.5218 28.6826 21.5194 28.5386C21.5173 28.4088 21.5664 28.2957 21.6667 28.1992C21.7669 28.1028 21.924 28.0461 22.1377 28.0292C22.3412 28.0131 22.493 28.0345 22.5931 28.0935C22.6931 28.1525 22.7629 28.2458 22.8024 28.3736L22.4325 28.4721C22.4156 28.415 22.3846 28.3728 22.3392 28.3453C22.2949 28.3177 22.2316 28.3071 22.1494 28.3136C22.0458 28.3218 21.9719 28.3423 21.9275 28.375C21.898 28.398 21.8835 28.426 21.8841 28.459C21.8845 28.4872 21.898 28.5101 21.9244 28.5278C21.9604 28.5513 22.0833 28.5788 22.2931 28.6103C22.504 28.6416 22.6515 28.6888 22.7357 28.7519C22.819 28.8159 22.8617 28.911 22.8638 29.037C22.8661 29.1743 22.8111 29.2969 22.6988 29.4046C22.5866 29.5124 22.4189 29.5751 22.1958 29.5928C21.9932 29.6088 21.832 29.5801 21.7121 29.5067C21.5931 29.4332 21.5142 29.3269 21.4755 29.1877Z"
+      fill="#231952" />
+    <path
+      d="M25.3191 28.5504L25.7231 28.647C25.6652 28.8776 25.5653 29.0537 25.4234 29.1751C25.2824 29.2955 25.1017 29.3644 24.8814 29.3818C24.6088 29.4034 24.3833 29.3275 24.2047 29.1542C24.0261 28.9799 23.9341 28.7301 23.9287 28.4046C23.923 28.0604 24.0068 27.7863 24.1801 27.5823C24.3534 27.3774 24.5838 27.2636 24.8713 27.2409C25.1224 27.221 25.3276 27.2797 25.4869 27.4168C25.5817 27.4979 25.6538 27.6193 25.7032 27.7812L25.2946 27.9124C25.2685 27.8071 25.2163 27.7264 25.1378 27.6705C25.0602 27.6145 24.9663 27.5908 24.8562 27.5995C24.704 27.6115 24.5813 27.6763 24.4879 27.7939C24.3954 27.9114 24.3512 28.0934 24.3553 28.3398C24.3596 28.6013 24.4093 28.7839 24.5045 28.8875C24.5997 28.9911 24.722 29.037 24.8713 29.0252C24.9815 29.0165 25.0756 28.9737 25.1538 28.8969C25.232 28.8201 25.2871 28.7046 25.3191 28.5504Z"
+      fill="#231952" />
+    <path
+      d="M25.9841 28.488C25.9819 28.3563 26.012 28.2263 26.0744 28.098C26.1367 27.9696 26.2262 27.8684 26.3428 27.7942C26.4602 27.7199 26.5918 27.677 26.7374 27.6655C26.9624 27.6477 27.1479 27.707 27.2941 27.8433C27.4403 27.9786 27.5153 28.1587 27.519 28.3835C27.5227 28.6102 27.453 28.8041 27.3099 28.9652C27.1676 29.1252 26.9864 29.214 26.7661 29.2314C26.6298 29.2422 26.499 29.2214 26.3739 29.1692C26.2496 29.1168 26.1543 29.0335 26.0879 28.9191C26.0215 28.8038 25.9869 28.6601 25.9841 28.488ZM26.3877 28.4772C26.3901 28.6258 26.427 28.7369 26.4983 28.8104C26.5696 28.8838 26.6566 28.9165 26.7593 28.9084C26.862 28.9003 26.9472 28.854 27.015 28.7695C27.0837 28.685 27.1168 28.5674 27.1143 28.4169C27.1119 28.2702 27.075 28.1601 27.0037 28.0866C26.9333 28.0131 26.8468 27.9804 26.7441 27.9885C26.6415 27.9966 26.5558 28.0429 26.4871 28.1275C26.4184 28.212 26.3852 28.3286 26.3877 28.4772Z"
+      fill="#231952" />
+    <path
+      d="M29.1934 29.0055L28.8 29.0367L28.7874 28.2719C28.7847 28.1102 28.7746 28.0064 28.757 27.9607C28.7394 27.9141 28.7113 27.8791 28.6725 27.8558C28.6348 27.8324 28.5893 27.8228 28.5361 27.827C28.4679 27.8324 28.4071 27.8561 28.3536 27.898C28.3001 27.9399 28.2635 27.9927 28.244 28.0564C28.2255 28.12 28.2175 28.2355 28.2203 28.403L28.2315 29.0816L27.8381 29.1127L27.8133 27.6143L28.1788 27.5854L28.1824 27.8055C28.3094 27.626 28.4713 27.5284 28.6683 27.5128C28.7551 27.506 28.8347 27.5157 28.9071 27.542C28.9795 27.5673 29.0343 27.603 29.0715 27.6491C29.1097 27.695 29.1362 27.7485 29.1513 27.8095C29.1672 27.8704 29.1762 27.9587 29.1781 28.0743L29.1934 29.0055Z"
+      fill="#231952" />
+    <path
+      d="M30.9465 28.8669L30.553 28.898L30.5404 28.1333C30.5378 27.9715 30.5276 27.8678 30.51 27.8221C30.4925 27.7755 30.4643 27.7405 30.4256 27.7172C30.3878 27.6938 30.3423 27.6842 30.2891 27.6884C30.221 27.6938 30.1602 27.7174 30.1066 27.7593C30.0531 27.8013 30.0166 27.8541 29.9971 27.9178C29.9785 27.9814 29.9706 28.0969 29.9734 28.2643L29.9846 28.943L29.5911 28.9741L29.5664 27.4757L29.9318 27.4468L29.9355 27.6669C30.0624 27.4874 30.2244 27.3898 30.4213 27.3742C30.5082 27.3674 30.5878 27.3771 30.6602 27.4034C30.7326 27.4287 30.7874 27.4644 30.8246 27.5104C30.8627 27.5564 30.8893 27.6099 30.9043 27.6708C30.9203 27.7317 30.9292 27.82 30.9311 27.9357L30.9465 28.8669Z"
+      fill="#231952" />
+    <path
+      d="M32.2002 28.2903L32.5934 28.3256C32.5453 28.4744 32.4674 28.5913 32.3594 28.6761C32.2524 28.7599 32.1172 28.8083 31.9538 28.8212C31.6952 28.8416 31.5025 28.7716 31.3755 28.6112C31.2752 28.4826 31.2234 28.3143 31.22 28.1064C31.2159 27.8581 31.2771 27.6588 31.4036 27.5085C31.5301 27.3572 31.6918 27.2738 31.8888 27.2582C32.11 27.2407 32.2858 27.3007 32.4161 27.4383C32.5464 27.5749 32.6113 27.7954 32.6107 28.0996L31.6249 28.1776C31.6297 28.2949 31.6629 28.3841 31.7247 28.4452C31.7864 28.5053 31.8626 28.5317 31.9531 28.5246C32.0147 28.5197 32.0663 28.4987 32.1077 28.4615C32.1491 28.4243 32.18 28.3672 32.2002 28.2903ZM32.216 27.8878C32.2113 27.7733 32.1805 27.6886 32.1235 27.6338C32.0665 27.578 31.9978 27.5533 31.9176 27.5596C31.8317 27.5664 31.7613 27.6036 31.7063 27.671C31.6513 27.7385 31.6252 27.8262 31.6279 27.9343L32.216 27.8878Z"
+      fill="#231952" />
+    <path
+      d="M34.2224 27.5512L33.8357 27.6524C33.8213 27.5754 33.7905 27.5189 33.7431 27.4831C33.6968 27.4472 33.6367 27.4322 33.5629 27.438C33.4649 27.4458 33.3871 27.4863 33.3294 27.5596C33.2726 27.6319 33.2456 27.748 33.2482 27.9079C33.2512 28.0857 33.2826 28.2089 33.3427 28.2777C33.4036 28.3463 33.484 28.3767 33.5839 28.3688C33.6586 28.3629 33.7194 28.3369 33.7663 28.2908C33.8132 28.2438 33.8456 28.1673 33.8634 28.0613L34.251 28.0971C34.2138 28.2789 34.139 28.42 34.0266 28.5203C33.9143 28.6205 33.7624 28.6782 33.571 28.6933C33.3535 28.7105 33.1788 28.6551 33.0467 28.5271C32.9156 28.399 32.8481 28.2127 32.844 27.9681C32.84 27.7208 32.9017 27.5233 33.0291 27.3757C33.1566 27.2272 33.331 27.1442 33.5522 27.1267C33.7333 27.1123 33.8777 27.1405 33.9854 27.2111C34.094 27.2807 34.173 27.394 34.2224 27.5512Z"
+      fill="#231952" />
+    <path
+      d="M35.1966 27.0305L35.2018 27.3466L34.933 27.3678L34.9429 27.9717C34.945 28.094 34.9485 28.1653 34.9535 28.1856C34.9594 28.2049 34.9713 28.2205 34.9893 28.2322C35.0082 28.2439 35.0307 28.2487 35.0568 28.2467C35.0932 28.2438 35.1458 28.2269 35.2144 28.1961L35.2531 28.501C35.1623 28.5477 35.059 28.5757 34.9432 28.5848C34.8723 28.5904 34.8082 28.5837 34.7508 28.5647C34.6935 28.5448 34.651 28.517 34.6233 28.4816C34.5965 28.4451 34.5774 28.3948 34.5661 28.3307C34.5569 28.2852 34.5512 28.1925 34.5489 28.0523L34.5381 27.3991L34.3575 27.4133L34.3523 27.0973L34.5329 27.083L34.528 26.7853L34.919 26.5227L34.9278 27.0518L35.1966 27.0305Z"
+      fill="#231952" />
+    <circle cx="20.0498" cy="27.75" r="0.25" fill="#FF454C" />
+    <circle cx="20.9399" cy="27.65" r="0.25" fill="#FF454C" />
+  </symbol>
+
+  <symbol id="monEspaceSante" width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
+    <path
+      d="M36.8181 24.6159L37.1508 24.1342H36.0482L35.7303 24.6159H33.9224V31.1375H37.9853V30.308H34.7767V27.5961H38.0002V26.7666H34.7767V25.4454H38.0002V24.6159H36.8181Z"
+      fill="#E83182" />
+    <path d="M28.1162 25.4454H30.2669V31.1375H31.141V25.4454H33.3414V24.616H28.1162V25.4454Z" fill="#E83182" />
+    <path
+      d="M25.3146 24.447C23.7947 24.447 22.5083 25.7632 22.5083 27.3179V31.1374H23.3626V27.3179C23.3626 26.1805 24.2169 25.2914 25.3096 25.2914C26.4123 25.2914 27.207 26.1755 27.207 27.3924V31.1374H28.0712V27.3924C28.0812 25.7682 26.8394 24.447 25.3146 24.447Z"
+      fill="#E83182" />
+    <path
+      d="M18.7238 24.447C17.2039 24.447 15.9175 25.7632 15.9175 27.3179V31.1374H16.7718V28.6689H20.6211V31.1374H21.4854V27.3924C21.4854 25.7682 20.2436 24.447 18.7238 24.447ZM20.6211 27.8444H16.7718V27.3179C16.7718 26.1805 17.6261 25.2914 18.7188 25.2914C19.8215 25.2914 20.6162 26.1755 20.6162 27.3924V27.8444H20.6211Z"
+      fill="#E83182" />
+    <path
+      d="M15.0478 29.1556C15.0478 28.202 14.5114 27.4967 13.4534 27.0646C12.2614 26.5579 12.162 26.3791 12.162 25.9718C12.162 25.6788 12.2813 25.3261 12.8624 25.3261C13.3293 25.3261 13.5329 25.505 13.6074 25.9917L13.6422 26.2301L14.4766 26.0761L14.4369 25.8477C14.2829 24.9785 13.7117 24.4768 12.8723 24.4768C11.9584 24.4768 11.3177 25.1175 11.3177 26.0364C11.3177 26.4735 11.4816 26.8758 11.7746 27.1689C12.018 27.4073 12.2663 27.5513 12.8673 27.8295C13.3988 28.0629 13.6322 28.197 13.8309 28.3808C14.0693 28.6242 14.1885 28.9023 14.1885 29.2351C14.1885 29.9454 13.6322 30.4768 12.8922 30.4768C12.167 30.4768 11.6207 30.0099 11.6207 29.394V28.6838H10.7812V29.399C10.7812 30.447 11.7399 31.3311 12.8723 31.3311C14.0743 31.3311 15.0478 30.3576 15.0478 29.1556Z"
+      fill="#E83182" />
+    <path
+      d="M36.0429 22.5149H32.8343V19.798H36.0628V18.9685H32.8343V17.6473H36.0429V16.8179H31.98V23.3444H36.0429V22.5149Z"
+      fill="#E83182" />
+    <path
+      d="M30.5747 21.9537C29.8049 22.505 29.3728 22.6838 28.7817 22.6838C27.6641 22.6838 26.7403 21.9835 26.3976 20.9851C26.3877 20.9503 26.3728 20.9205 26.3628 20.8858V20.8808C26.2933 20.6424 26.2536 20.3841 26.2536 20.1209C26.2536 19.8527 26.2933 19.5993 26.3628 19.3609V19.356C26.3728 19.3212 26.3877 19.2864 26.3976 19.2517C26.7403 18.2533 27.6641 17.558 28.7817 17.558C29.3728 17.558 29.8098 17.7368 30.5747 18.2881L30.7685 18.4272L31.2403 17.7268L31.0565 17.5927C30.1675 16.947 29.5516 16.7086 28.7767 16.7086C28.7718 16.7086 28.7718 16.7086 28.7668 16.7086C27.8777 16.7086 27.0383 17.0662 26.3976 17.7169C25.7569 18.3626 25.4092 19.2169 25.4092 20.1109C25.4092 20.1159 25.4092 20.1209 25.4092 20.1258C25.4092 20.1308 25.4092 20.1358 25.4092 20.1407C25.4092 21.0348 25.7618 21.8841 26.3976 22.5348C27.0383 23.1854 27.8777 23.5431 28.7668 23.5431C28.7718 23.5431 28.7718 23.5431 28.7767 23.5431C29.5516 23.5431 30.1675 23.3046 31.0565 22.659L31.2403 22.5248L30.7685 21.8245L30.5747 21.9537Z"
+      fill="#E83182" />
+    <path
+      d="M21.9865 16.649C20.4666 16.649 19.1802 17.9653 19.1802 19.5199V23.3394H20.0345V20.8709H23.8838V23.3394H24.7481V19.5944C24.7481 17.9702 23.5113 16.649 21.9865 16.649ZM20.0345 20.0514V19.5249C20.0345 18.3875 20.8888 17.4984 21.9815 17.4984C23.0842 17.4984 23.8789 18.3825 23.8789 19.5994V20.0514H20.0345Z"
+      fill="#E83182" />
+    <path
+      d="M14.8095 21.4173H16.3293C17.5264 21.4173 18.6538 20.3196 18.6538 19.1574C18.6538 18.611 18.3608 17.9603 17.9237 17.5332C17.7101 17.3295 17.4568 17.1656 17.1687 17.0415C16.836 16.8875 16.528 16.813 16.2499 16.813H13.9502V23.3395H14.8045V21.4173H14.8095ZM14.8095 17.6474H16.2399C17.124 17.6474 17.7946 18.2931 17.7946 19.1524C17.7946 19.9719 17.1588 20.5878 16.3144 20.5878H14.8095V17.6474Z"
+      fill="#E83182" />
+    <path
+      d="M13.0761 21.3626C13.0761 20.409 12.5397 19.7037 11.4818 19.2716C10.2897 18.765 10.1904 18.5862 10.1904 18.1789C10.1904 17.8858 10.3096 17.5332 10.8907 17.5332C11.3576 17.5332 11.5612 17.712 11.6357 18.1987L11.6705 18.4371L12.5049 18.2832L12.4652 18.0547C12.3112 17.1855 11.74 16.6838 10.9006 16.6838C9.98672 16.6838 9.34599 17.3246 9.34599 18.2434C9.34599 18.6805 9.5099 19.0828 9.80295 19.3759C10.0463 19.6143 10.2947 19.7583 10.8957 20.0365C11.4271 20.2699 11.6606 20.404 11.8592 20.5878C12.0977 20.8312 12.2169 21.1093 12.2169 21.4421C12.2169 22.1524 11.6606 22.6838 10.9205 22.6838C10.1953 22.6838 9.64897 22.217 9.64897 21.6011V20.8908H8.80957V21.6011C8.80957 22.6491 9.76818 23.5332 10.9006 23.5332C12.0977 23.5381 13.0761 22.5597 13.0761 21.3626Z"
+      fill="#E83182" />
+    <path
+      d="M4.95538 17.697H8.16399V16.8676H4.10107V23.394H8.16399V22.5646H4.95538V19.8477H8.18386V19.0182H4.95538V17.697Z"
+      fill="#E83182" />
+    <path
+      d="M37.9946 16.654C37.9946 15.6904 37.2098 14.9007 36.2413 14.9007L24.5939 14.8808V11.9504C24.5939 10.3262 22.8853 9.005 21.3605 9.005C19.8406 9.005 18.5542 10.3212 18.5542 11.8759V15.6954H19.4085V11.8759C19.4085 10.7384 20.2628 9.84938 21.3555 9.84938C22.4582 9.84938 23.7247 10.7335 23.7247 11.9504V15.7153L36.2363 15.7053C36.738 15.7053 37.1304 16.1524 37.1304 16.654V23.3444H37.9847V16.654H37.9946Z"
+      fill="#0C419A" />
+    <path
+      d="M14.4125 15.909C15.3115 15.909 16.1609 15.5464 16.8065 14.8958C17.4522 14.2451 17.8049 13.3858 17.8049 12.4769C17.8049 11.5779 17.4473 10.7286 16.8016 10.0829C16.1509 9.4322 15.2966 9.07458 14.3877 9.07458C12.545 9.07458 10.9854 10.6491 10.9854 12.5117C10.9903 14.3494 12.5599 15.909 14.4125 15.909ZM14.3976 9.91896C15.838 9.91896 16.9705 11.0464 16.9705 12.4819C16.9705 13.9322 15.8479 15.0696 14.4175 15.0696C12.9721 15.0696 11.8397 13.9421 11.8397 12.5067C11.8347 11.0564 12.9622 9.91896 14.3976 9.91896Z"
+      fill="#0C419A" />
+    <path
+      d="M3.74338 30.3129C3.24172 30.3129 2.84934 29.8907 2.84934 29.3891V11.2152C2.84934 10.4205 3.39073 9.86424 4.1606 9.86424C5.02484 9.86424 5.6755 10.5 5.6755 11.3444V15.7053H6.53974V11.3394C6.53974 10.8079 6.62914 10.5596 6.92219 10.2765C7.21027 10.0033 7.59272 9.85431 7.99504 9.85431C8.79471 9.85431 9.40067 10.495 9.40067 11.3394V15.7053H10.255V11.2649C10.255 10.0579 9.20199 9 8.00497 9C7.41888 9 6.80298 9.25828 6.3659 9.68543C6.25166 9.7947 6.17219 9.88907 6.09272 10.0132C6.02815 9.92384 5.96358 9.84934 5.87417 9.75497L5.86424 9.74503C5.65066 9.54139 5.41225 9.36755 5.17384 9.24338L5.16391 9.23841C4.8659 9.1043 4.53311 9.03477 4.18543 9.03477C2.93874 9.03477 2 10.0331 2 11.3593V21.9387V29.399C2 30.3626 2.78477 31.1523 3.75331 31.1523H10.255V30.3229L3.74338 30.3129Z"
+      fill="#0C419A" />
+  </symbol>
+
+  <symbol id="pix" width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
+    <path
+      d="M36.8181 24.6159L37.1508 24.1342H36.0482L35.7303 24.6159H33.9224V31.1375H37.9853V30.308H34.7767V27.5961H38.0002V26.7666H34.7767V25.4454H38.0002V24.6159H36.8181Z"
+      fill="#E83182" />
+    <path d="M28.1162 25.4454H30.2669V31.1375H31.141V25.4454H33.3414V24.616H28.1162V25.4454Z" fill="#E83182" />
+    <path
+      d="M25.3146 24.447C23.7947 24.447 22.5083 25.7632 22.5083 27.3179V31.1374H23.3626V27.3179C23.3626 26.1805 24.2169 25.2914 25.3096 25.2914C26.4123 25.2914 27.207 26.1755 27.207 27.3924V31.1374H28.0712V27.3924C28.0812 25.7682 26.8394 24.447 25.3146 24.447Z"
+      fill="#E83182" />
+    <path
+      d="M18.7238 24.447C17.2039 24.447 15.9175 25.7632 15.9175 27.3179V31.1374H16.7718V28.6689H20.6211V31.1374H21.4854V27.3924C21.4854 25.7682 20.2436 24.447 18.7238 24.447ZM20.6211 27.8444H16.7718V27.3179C16.7718 26.1805 17.6261 25.2914 18.7188 25.2914C19.8215 25.2914 20.6162 26.1755 20.6162 27.3924V27.8444H20.6211Z"
+      fill="#E83182" />
+    <path
+      d="M15.0478 29.1556C15.0478 28.202 14.5114 27.4967 13.4534 27.0646C12.2614 26.5579 12.162 26.3791 12.162 25.9718C12.162 25.6788 12.2813 25.3261 12.8624 25.3261C13.3293 25.3261 13.5329 25.505 13.6074 25.9917L13.6422 26.2301L14.4766 26.0761L14.4369 25.8477C14.2829 24.9785 13.7117 24.4768 12.8723 24.4768C11.9584 24.4768 11.3177 25.1175 11.3177 26.0364C11.3177 26.4735 11.4816 26.8758 11.7746 27.1689C12.018 27.4073 12.2663 27.5513 12.8673 27.8295C13.3988 28.0629 13.6322 28.197 13.8309 28.3808C14.0693 28.6242 14.1885 28.9023 14.1885 29.2351C14.1885 29.9454 13.6322 30.4768 12.8922 30.4768C12.167 30.4768 11.6207 30.0099 11.6207 29.394V28.6838H10.7812V29.399C10.7812 30.447 11.7399 31.3311 12.8723 31.3311C14.0743 31.3311 15.0478 30.3576 15.0478 29.1556Z"
+      fill="#E83182" />
+    <path
+      d="M36.0429 22.5149H32.8343V19.798H36.0628V18.9685H32.8343V17.6473H36.0429V16.8179H31.98V23.3444H36.0429V22.5149Z"
+      fill="#E83182" />
+    <path
+      d="M30.5747 21.9537C29.8049 22.505 29.3728 22.6838 28.7817 22.6838C27.6641 22.6838 26.7403 21.9835 26.3976 20.9851C26.3877 20.9503 26.3728 20.9205 26.3628 20.8858V20.8808C26.2933 20.6424 26.2536 20.3841 26.2536 20.1209C26.2536 19.8527 26.2933 19.5993 26.3628 19.3609V19.356C26.3728 19.3212 26.3877 19.2864 26.3976 19.2517C26.7403 18.2533 27.6641 17.558 28.7817 17.558C29.3728 17.558 29.8098 17.7368 30.5747 18.2881L30.7685 18.4272L31.2403 17.7268L31.0565 17.5927C30.1675 16.947 29.5516 16.7086 28.7767 16.7086C28.7718 16.7086 28.7718 16.7086 28.7668 16.7086C27.8777 16.7086 27.0383 17.0662 26.3976 17.7169C25.7569 18.3626 25.4092 19.2169 25.4092 20.1109C25.4092 20.1159 25.4092 20.1209 25.4092 20.1258C25.4092 20.1308 25.4092 20.1358 25.4092 20.1407C25.4092 21.0348 25.7618 21.8841 26.3976 22.5348C27.0383 23.1854 27.8777 23.5431 28.7668 23.5431C28.7718 23.5431 28.7718 23.5431 28.7767 23.5431C29.5516 23.5431 30.1675 23.3046 31.0565 22.659L31.2403 22.5248L30.7685 21.8245L30.5747 21.9537Z"
+      fill="#E83182" />
+    <path
+      d="M21.9865 16.649C20.4666 16.649 19.1802 17.9653 19.1802 19.5199V23.3394H20.0345V20.8709H23.8838V23.3394H24.7481V19.5944C24.7481 17.9702 23.5113 16.649 21.9865 16.649ZM20.0345 20.0514V19.5249C20.0345 18.3875 20.8888 17.4984 21.9815 17.4984C23.0842 17.4984 23.8789 18.3825 23.8789 19.5994V20.0514H20.0345Z"
+      fill="#E83182" />
+    <path
+      d="M14.8095 21.4173H16.3293C17.5264 21.4173 18.6538 20.3196 18.6538 19.1574C18.6538 18.611 18.3608 17.9603 17.9237 17.5332C17.7101 17.3295 17.4568 17.1656 17.1687 17.0415C16.836 16.8875 16.528 16.813 16.2499 16.813H13.9502V23.3395H14.8045V21.4173H14.8095ZM14.8095 17.6474H16.2399C17.124 17.6474 17.7946 18.2931 17.7946 19.1524C17.7946 19.9719 17.1588 20.5878 16.3144 20.5878H14.8095V17.6474Z"
+      fill="#E83182" />
+    <path
+      d="M13.0761 21.3626C13.0761 20.409 12.5397 19.7037 11.4818 19.2716C10.2897 18.765 10.1904 18.5862 10.1904 18.1789C10.1904 17.8858 10.3096 17.5332 10.8907 17.5332C11.3576 17.5332 11.5612 17.712 11.6357 18.1987L11.6705 18.4371L12.5049 18.2832L12.4652 18.0547C12.3112 17.1855 11.74 16.6838 10.9006 16.6838C9.98672 16.6838 9.34599 17.3246 9.34599 18.2434C9.34599 18.6805 9.5099 19.0828 9.80295 19.3759C10.0463 19.6143 10.2947 19.7583 10.8957 20.0365C11.4271 20.2699 11.6606 20.404 11.8592 20.5878C12.0977 20.8312 12.2169 21.1093 12.2169 21.4421C12.2169 22.1524 11.6606 22.6838 10.9205 22.6838C10.1953 22.6838 9.64897 22.217 9.64897 21.6011V20.8908H8.80957V21.6011C8.80957 22.6491 9.76818 23.5332 10.9006 23.5332C12.0977 23.5381 13.0761 22.5597 13.0761 21.3626Z"
+      fill="#E83182" />
+    <path
+      d="M4.95538 17.697H8.16399V16.8676H4.10107V23.394H8.16399V22.5646H4.95538V19.8477H8.18386V19.0182H4.95538V17.697Z"
+      fill="#E83182" />
+    <path
+      d="M37.9946 16.654C37.9946 15.6904 37.2098 14.9007 36.2413 14.9007L24.5939 14.8808V11.9504C24.5939 10.3262 22.8853 9.005 21.3605 9.005C19.8406 9.005 18.5542 10.3212 18.5542 11.8759V15.6954H19.4085V11.8759C19.4085 10.7384 20.2628 9.84938 21.3555 9.84938C22.4582 9.84938 23.7247 10.7335 23.7247 11.9504V15.7153L36.2363 15.7053C36.738 15.7053 37.1304 16.1524 37.1304 16.654V23.3444H37.9847V16.654H37.9946Z"
+      fill="#0C419A" />
+    <path
+      d="M14.4125 15.909C15.3115 15.909 16.1609 15.5464 16.8065 14.8958C17.4522 14.2451 17.8049 13.3858 17.8049 12.4769C17.8049 11.5779 17.4473 10.7286 16.8016 10.0829C16.1509 9.4322 15.2966 9.07458 14.3877 9.07458C12.545 9.07458 10.9854 10.6491 10.9854 12.5117C10.9903 14.3494 12.5599 15.909 14.4125 15.909ZM14.3976 9.91896C15.838 9.91896 16.9705 11.0464 16.9705 12.4819C16.9705 13.9322 15.8479 15.0696 14.4175 15.0696C12.9721 15.0696 11.8397 13.9421 11.8397 12.5067C11.8347 11.0564 12.9622 9.91896 14.3976 9.91896Z"
+      fill="#0C419A" />
+    <path
+      d="M3.74338 30.3129C3.24172 30.3129 2.84934 29.8907 2.84934 29.3891V11.2152C2.84934 10.4205 3.39073 9.86424 4.1606 9.86424C5.02484 9.86424 5.6755 10.5 5.6755 11.3444V15.7053H6.53974V11.3394C6.53974 10.8079 6.62914 10.5596 6.92219 10.2765C7.21027 10.0033 7.59272 9.85431 7.99504 9.85431C8.79471 9.85431 9.40067 10.495 9.40067 11.3394V15.7053H10.255V11.2649C10.255 10.0579 9.20199 9 8.00497 9C7.41888 9 6.80298 9.25828 6.3659 9.68543C6.25166 9.7947 6.17219 9.88907 6.09272 10.0132C6.02815 9.92384 5.96358 9.84934 5.87417 9.75497L5.86424 9.74503C5.65066 9.54139 5.41225 9.36755 5.17384 9.24338L5.16391 9.23841C4.8659 9.1043 4.53311 9.03477 4.18543 9.03477C2.93874 9.03477 2 10.0331 2 11.3593V21.9387V29.399C2 30.3626 2.78477 31.1523 3.75331 31.1523H10.255V30.3229L3.74338 30.3129Z"
+      fill="#0C419A" />
+  </symbol>
+  <!-- <symbol id="pix" width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
+    <path fill-rule="evenodd" clip-rule="evenodd"
+      d="M30.9263 22.9877L31.4425 22.3613C31.9018 21.8317 32.2282 21.3202 32.4217 20.8165L36.3512 25.6141C37.0644 26.528 37.0304 26.6972 35.8418 26.6972H35.4342C34.2456 26.6972 33.8041 26.4603 33.0909 25.6141L30.9263 22.9877ZM30.9263 16.4611L33.0909 13.8347C33.8041 12.9885 34.2456 12.7516 35.4342 12.7516H35.8418C37.0304 12.7516 37.0644 12.9208 36.3512 13.8347L32.4217 18.6324C32.2282 18.1286 31.9018 17.6171 31.4425 17.0875L30.9263 16.4611Z"
+      fill="#3D68FF" />
+    <path fill-rule="evenodd" clip-rule="evenodd"
+      d="M24.9252 26.6972C23.7365 26.6972 23.7025 26.528 24.4157 25.6141L28.4911 20.6383C28.7968 20.266 28.9666 19.9613 28.9666 19.7244C28.9666 19.4536 28.7968 19.149 28.4911 18.8105L24.4157 13.8347C23.7025 12.9208 23.7365 12.7516 24.9252 12.7516H25.3327C26.5213 12.7516 26.9629 12.9885 27.6761 13.8347L30.8005 17.6258C32.1251 19.149 32.1251 20.2998 30.8005 21.823L27.6761 25.6141C26.9629 26.4603 26.5213 26.6972 25.3327 26.6972H24.9252Z"
+      fill="#FF9F00" />
+    <path fill-rule="evenodd" clip-rule="evenodd"
+      d="M2.8335 31.0366C2.8335 32.0472 3.08699 32.2998 4.10096 32.2998H4.43892C5.4529 32.2998 5.70639 32.0472 5.70639 31.0366V25.1696C6.46687 26.3766 7.84701 26.9942 9.84676 26.9942C13.7618 26.9942 15.7052 24.945 15.7052 20.8746V18.4323C15.7052 14.3619 13.621 12.453 9.25525 12.453C5.1994 12.453 2.8335 14.418 2.8335 18.4323V31.0366ZM12.8042 20.9307C12.8042 23.2887 12.0155 24.2713 9.28346 24.2713C6.49503 24.2713 5.70639 23.2607 5.70639 20.9307V18.5165C5.70639 16.1585 6.55139 15.1479 9.28346 15.1479C12.0718 15.1479 12.8042 16.1585 12.8042 18.5165V20.9307Z"
+      fill="#3D68FF" />
+    <path fill-rule="evenodd" clip-rule="evenodd"
+      d="M18.4145 25.4003C18.4145 26.4109 18.6679 26.6635 19.6819 26.6635H20.048C21.062 26.6635 21.3155 26.4109 21.3155 25.4003V14.0031C21.3155 12.9925 21.062 12.7399 20.048 12.7399H19.6819C18.6679 12.7399 18.4145 12.9925 18.4145 14.0031V25.4003ZM18.6116 9.7081C19.3158 10.3818 20.4424 10.3818 21.1184 9.7081C21.8225 9.00628 21.8225 7.88343 21.1184 7.20972C20.4424 6.50789 19.3158 6.50789 18.6116 7.20972C17.9075 7.88343 17.9075 9.00628 18.6116 9.7081Z"
+      fill="#3D68FF" />
+  </symbol> -->
+
 
-</svg>
+</svg>
\ No newline at end of file
diff --git a/src/assets/logos/demarcheMetropolitaine.svg b/src/assets/logos/demarcheMetropolitaine.svg
index 3ac37a898..8aee5e8db 100644
--- a/src/assets/logos/demarcheMetropolitaine.svg
+++ b/src/assets/logos/demarcheMetropolitaine.svg
@@ -1,22 +1,42 @@
-<svg id="lyon" width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path d="M3.09413 20.5586C2.75675 20.9278 2.26844 21.1405 1.7511 21.1405C1.27064 21.1405 0.811351 20.9564 0.473971 20.6221C0.0075125 20.1608 0 19.7135 0 18.5705C0 17.4273 0.0075125 16.9799 0.473971 16.5183C0.811351 16.1843 1.27064 16.0002 1.7511 16.0002C2.6485 16.0002 3.3376 16.5818 3.49571 17.4768H3.10847C2.95754 16.7809 2.44088 16.3404 1.7511 16.3404C1.38503 16.3404 1.04082 16.4756 0.783008 16.7313C0.416944 17.0933 0.387919 17.484 0.387919 18.5705C0.387919 19.6568 0.416603 20.0471 0.782667 20.4094C1.04048 20.6648 1.38503 20.7997 1.75076 20.7997C2.15336 20.7997 2.54776 20.6297 2.81378 20.31C3.03642 20.0403 3.12247 19.7418 3.12247 19.3085V18.854H1.7511V18.5132H3.51005V19.3372C3.51005 19.8627 3.39531 20.2387 3.09413 20.5586" fill="#E30613"/>
-<path d="M6.76769 16.3834H5.26006V18.4282H6.76769C7.42127 18.4282 7.89422 18.1017 7.89422 17.4058C7.89422 16.7095 7.42093 16.3834 6.76769 16.3834V16.3834ZM7.88739 21.0982L6.66763 18.7693H5.26006V21.0982H4.87317V16.043H6.81788C7.65075 16.043 8.28248 16.5183 8.28248 17.399C8.28248 18.1513 7.82251 18.6416 7.10541 18.7622L8.33951 21.0982H7.88739Z" fill="#E30613"/>
-<path d="M10.959 16.5538L9.88983 19.5288H12.0285L10.959 16.5538ZM12.5957 21.0982L12.1508 19.8696H9.76758L9.32229 21.0982H8.90637L10.7872 16.043H11.1318L13.012 21.0982H12.5957Z" fill="#E30613"/>
-<path d="M17.2454 21.0982L14.296 16.7034V21.0982H13.9084V16.043H14.296L17.2454 20.4234V16.043H17.6336V21.0982H17.2454Z" fill="#E30613"/>
-<path d="M21.9307 16.7742C21.6367 16.4761 21.2416 16.3839 20.8328 16.3839H19.5977V20.7575H20.8328C21.2416 20.7575 21.6367 20.6653 21.9307 20.3662C22.3394 19.9547 22.3114 19.0604 22.3114 18.4993C22.3114 17.9383 22.3394 17.186 21.9307 16.7742V16.7742ZM22.2035 20.6366C21.902 20.9344 21.4574 21.098 20.9257 21.098H19.2108V16.0427H20.9257C21.4577 16.0427 21.902 16.2063 22.2035 16.5041C22.7205 17.0156 22.699 17.8177 22.699 18.4997C22.699 19.1806 22.7205 20.1254 22.2035 20.6366Z" fill="#E30613"/>
-<path d="M23.8826 21.0982V16.043H24.8807V20.2182H27.199V21.0982H23.8826Z" fill="#020203"/>
-<path d="M29.3876 19.0242V21.0983H28.3969V19.0242L26.861 16.0427H27.9445L28.8989 18.081L29.8393 16.0427H30.9225L29.3876 19.0242Z" fill="#020203"/>
-<path d="M33.822 17.1501C33.6775 16.9865 33.4562 16.8803 33.1827 16.8803C32.9095 16.8803 32.6797 16.9869 32.5363 17.1501C32.3423 17.3632 32.2921 17.5981 32.2921 18.5703C32.2921 19.5425 32.342 19.7774 32.5363 19.9902C32.6797 20.1534 32.9095 20.2603 33.1827 20.2603C33.4562 20.2603 33.6775 20.1534 33.822 19.9902C34.0149 19.7774 34.0723 19.5425 34.0723 18.5703C34.0723 17.5981 34.0152 17.3632 33.822 17.1501ZM34.5606 20.5874C34.202 20.9422 33.7643 21.1406 33.1827 21.1406C32.6012 21.1406 32.1559 20.9422 31.7973 20.5874C31.2807 20.0759 31.2943 19.4435 31.2943 18.5706C31.2943 17.6965 31.2807 17.0654 31.7973 16.5542C32.1559 16.1987 32.6012 16 33.1827 16C33.7643 16 34.202 16.1987 34.5606 16.5539C35.0776 17.0651 35.0704 17.6965 35.0704 18.5703C35.0707 19.4435 35.0776 20.0759 34.5606 20.5874Z" fill="#020203"/>
-<path d="M39.1101 21.0982L37.0859 17.9955V21.0982H36.0887V16.043H36.9786L39.0022 19.1381V16.043H40V21.0982H39.1101Z" fill="#020203"/>
-<path d="M33.9138 22.6936H33.9193C33.9821 22.5887 34.0606 22.5378 34.1808 22.5378C34.3635 22.5378 34.5486 22.6092 34.5486 23.104C34.5486 23.3854 34.5394 23.7088 34.1716 23.7088C34.0637 23.7088 33.9841 23.6616 33.9213 23.5732H33.9141V24.1127H33.7297V22.56H33.9141V22.6936H33.9138ZM34.3546 23.104C34.3546 22.9346 34.3546 22.6871 34.1218 22.6871C33.894 22.6871 33.9138 22.9988 33.9138 23.1709C33.9138 23.3205 33.9237 23.5595 34.1286 23.5595C34.3273 23.5595 34.3546 23.4055 34.3546 23.104Z" fill="black"/>
-<path d="M21.1631 23.5238H21.1583C21.1023 23.6532 21.0135 23.7085 20.8715 23.7085C20.6301 23.7085 20.5601 23.5552 20.5601 23.3384C20.5601 22.9969 20.8988 22.9815 21.1583 22.9883C21.1631 22.8388 21.1652 22.6756 20.9664 22.6756C20.8428 22.6756 20.7769 22.7585 20.7885 22.877H20.5874C20.5969 22.6247 20.7318 22.5376 20.9739 22.5376C21.2673 22.5376 21.3438 22.6872 21.3438 22.877V23.419C21.3438 23.5084 21.3526 23.5999 21.3663 23.6863H21.1631V23.5238ZM20.7455 23.3517C20.7455 23.4613 20.7994 23.5593 20.9234 23.5593C21.0361 23.5593 21.1761 23.49 21.1583 23.126C20.9825 23.1287 20.7455 23.113 20.7455 23.3517Z" fill="black"/>
-<path d="M24.4922 23.6867V22.9057C24.4922 22.7917 24.4608 22.6872 24.3119 22.6872C24.2552 22.6872 24.1784 22.7203 24.1517 22.7626C24.1179 22.8186 24.1087 22.8856 24.1087 22.9279V23.6867H23.9236V22.794C23.9236 22.7158 23.9188 22.638 23.9124 22.5601H24.1087V22.7001H24.1135C24.1678 22.5793 24.2644 22.5376 24.3973 22.5376C24.5017 22.5376 24.6213 22.5793 24.6633 22.6824C24.7271 22.5618 24.8306 22.5376 24.9347 22.5376C25.0546 22.5376 25.2462 22.5639 25.2462 22.8296V23.6863H25.0611V22.9054C25.0611 22.7913 25.0293 22.6868 24.8801 22.6868C24.8104 22.6868 24.7906 22.6889 24.7408 22.7292C24.6861 22.7739 24.6773 22.8852 24.6773 22.9276V23.6863H24.4922V23.6867Z" fill="black"/>
-<path d="M26.5946 23.1819C26.5946 23.4968 26.6803 23.5589 26.8248 23.5589C26.9508 23.5589 27.0167 23.4589 27.0232 23.3448H27.2263C27.224 23.5948 27.0682 23.7085 26.8296 23.7085C26.5881 23.7085 26.3959 23.6371 26.3959 23.1392C26.3959 22.809 26.4338 22.5369 26.8296 22.5369C27.154 22.5369 27.2356 22.7134 27.2356 23.0853V23.1812H26.5946V23.1819ZM27.0389 23.0436C27.0389 22.7158 26.9467 22.6755 26.8111 22.6755C26.6933 22.6755 26.5967 22.7319 26.5946 23.0436H27.0389ZM27.084 22.0752L26.7886 22.3897H26.6376L26.8384 22.0752H27.084Z" fill="black"/>
-<path d="M28.4868 22.5599V22.343L28.6719 22.2607V22.5599H28.9201V22.6978H28.6719V23.388C28.6719 23.4593 28.6719 23.5512 28.8412 23.5512C28.8542 23.5512 28.8836 23.5461 28.9242 23.542V23.6827C28.8634 23.6871 28.8027 23.7008 28.7415 23.7008C28.5653 23.7008 28.4868 23.629 28.4868 23.4993V22.6982H28.2993V22.5599H28.4868Z" fill="black"/>
-<path d="M30.3044 22.7295H30.3089C30.3854 22.5571 30.4803 22.5376 30.6613 22.5376V22.7271C30.6449 22.7244 30.6268 22.7223 30.6114 22.7199C30.5954 22.7179 30.5797 22.7155 30.5619 22.7155C30.3563 22.7155 30.3044 22.8699 30.3044 23.0211V23.6863H30.119V22.5598H30.3044V22.7295Z" fill="black"/>
-<path d="M31.7151 23.1394C31.7151 22.8099 31.7533 22.5374 32.1484 22.5374C32.5435 22.5374 32.5821 22.8099 32.5821 23.1394C32.5821 23.6376 32.3902 23.7086 32.1484 23.7086C31.9067 23.7086 31.7151 23.6376 31.7151 23.1394ZM32.3878 23.0619C32.3878 22.7542 32.2905 22.6869 32.1484 22.6869C32.0064 22.6869 31.9097 22.7538 31.9097 23.0619C31.9097 23.4276 31.9572 23.5597 32.1484 23.5597C32.3407 23.5597 32.3878 23.4276 32.3878 23.0619Z" fill="black"/>
-<path d="M35.6803 23.1394C35.6803 22.8099 35.7182 22.5374 36.1136 22.5374C36.5084 22.5374 36.547 22.8099 36.547 23.1394C36.547 23.6376 36.3551 23.7086 36.1136 23.7086C35.8722 23.7086 35.6803 23.6376 35.6803 23.1394ZM36.353 23.0619C36.353 22.7542 36.2557 22.6869 36.1136 22.6869C35.9716 22.6869 35.8746 22.7538 35.8746 23.0619C35.8746 23.4276 35.9221 23.5597 36.1136 23.5597C36.3055 23.5597 36.353 23.4276 36.353 23.0619Z" fill="black"/>
-<path d="M37.931 22.0752H37.7456V23.6866H37.931V22.0752Z" fill="black"/>
-<path d="M39.2969 23.1821C39.2969 23.4969 39.383 23.5594 39.5271 23.5594C39.6534 23.5594 39.719 23.459 39.7258 23.3449H39.9286C39.9266 23.5952 39.7709 23.7086 39.5318 23.7086C39.2904 23.7086 39.0985 23.6373 39.0985 23.1394C39.0985 22.8092 39.1361 22.5374 39.5318 22.5374C39.8566 22.5374 39.9379 22.7132 39.9379 23.0854V23.1814H39.2969V23.1821ZM39.7408 23.0438C39.7408 22.7159 39.6486 22.6757 39.5131 22.6757C39.3956 22.6757 39.299 22.732 39.2966 23.0438H39.7408Z" fill="black"/>
-<path d="M19.497 22.0752H19.3119V23.6866H19.497V22.0752Z" fill="black"/>
-</svg>
\ No newline at end of file
+<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
+  <path
+    d="M36.8181 24.6159L37.1508 24.1342H36.0482L35.7303 24.6159H33.9224V31.1375H37.9853V30.308H34.7767V27.5961H38.0002V26.7666H34.7767V25.4454H38.0002V24.6159H36.8181Z"
+    fill="#E83182" />
+  <path d="M28.1162 25.4454H30.2669V31.1375H31.141V25.4454H33.3414V24.616H28.1162V25.4454Z" fill="#E83182" />
+  <path
+    d="M25.3146 24.447C23.7947 24.447 22.5083 25.7632 22.5083 27.3179V31.1374H23.3626V27.3179C23.3626 26.1805 24.2169 25.2914 25.3096 25.2914C26.4123 25.2914 27.207 26.1755 27.207 27.3924V31.1374H28.0712V27.3924C28.0812 25.7682 26.8394 24.447 25.3146 24.447Z"
+    fill="#E83182" />
+  <path
+    d="M18.7238 24.447C17.2039 24.447 15.9175 25.7632 15.9175 27.3179V31.1374H16.7718V28.6689H20.6211V31.1374H21.4854V27.3924C21.4854 25.7682 20.2436 24.447 18.7238 24.447ZM20.6211 27.8444H16.7718V27.3179C16.7718 26.1805 17.6261 25.2914 18.7188 25.2914C19.8215 25.2914 20.6162 26.1755 20.6162 27.3924V27.8444H20.6211Z"
+    fill="#E83182" />
+  <path
+    d="M15.0478 29.1556C15.0478 28.202 14.5114 27.4967 13.4534 27.0646C12.2614 26.5579 12.162 26.3791 12.162 25.9718C12.162 25.6788 12.2813 25.3261 12.8624 25.3261C13.3293 25.3261 13.5329 25.505 13.6074 25.9917L13.6422 26.2301L14.4766 26.0761L14.4369 25.8477C14.2829 24.9785 13.7117 24.4768 12.8723 24.4768C11.9584 24.4768 11.3177 25.1175 11.3177 26.0364C11.3177 26.4735 11.4816 26.8758 11.7746 27.1689C12.018 27.4073 12.2663 27.5513 12.8673 27.8295C13.3988 28.0629 13.6322 28.197 13.8309 28.3808C14.0693 28.6242 14.1885 28.9023 14.1885 29.2351C14.1885 29.9454 13.6322 30.4768 12.8922 30.4768C12.167 30.4768 11.6207 30.0099 11.6207 29.394V28.6838H10.7812V29.399C10.7812 30.447 11.7399 31.3311 12.8723 31.3311C14.0743 31.3311 15.0478 30.3576 15.0478 29.1556Z"
+    fill="#E83182" />
+  <path
+    d="M36.0429 22.5149H32.8343V19.798H36.0628V18.9685H32.8343V17.6473H36.0429V16.8179H31.98V23.3444H36.0429V22.5149Z"
+    fill="#E83182" />
+  <path
+    d="M30.5747 21.9537C29.8049 22.505 29.3728 22.6838 28.7817 22.6838C27.6641 22.6838 26.7403 21.9835 26.3976 20.9851C26.3877 20.9503 26.3728 20.9205 26.3628 20.8858V20.8808C26.2933 20.6424 26.2536 20.3841 26.2536 20.1209C26.2536 19.8527 26.2933 19.5993 26.3628 19.3609V19.356C26.3728 19.3212 26.3877 19.2864 26.3976 19.2517C26.7403 18.2533 27.6641 17.558 28.7817 17.558C29.3728 17.558 29.8098 17.7368 30.5747 18.2881L30.7685 18.4272L31.2403 17.7268L31.0565 17.5927C30.1675 16.947 29.5516 16.7086 28.7767 16.7086C28.7718 16.7086 28.7718 16.7086 28.7668 16.7086C27.8777 16.7086 27.0383 17.0662 26.3976 17.7169C25.7569 18.3626 25.4092 19.2169 25.4092 20.1109C25.4092 20.1159 25.4092 20.1209 25.4092 20.1258C25.4092 20.1308 25.4092 20.1358 25.4092 20.1407C25.4092 21.0348 25.7618 21.8841 26.3976 22.5348C27.0383 23.1854 27.8777 23.5431 28.7668 23.5431C28.7718 23.5431 28.7718 23.5431 28.7767 23.5431C29.5516 23.5431 30.1675 23.3046 31.0565 22.659L31.2403 22.5248L30.7685 21.8245L30.5747 21.9537Z"
+    fill="#E83182" />
+  <path
+    d="M21.9865 16.649C20.4666 16.649 19.1802 17.9653 19.1802 19.5199V23.3394H20.0345V20.8709H23.8838V23.3394H24.7481V19.5944C24.7481 17.9702 23.5113 16.649 21.9865 16.649ZM20.0345 20.0514V19.5249C20.0345 18.3875 20.8888 17.4984 21.9815 17.4984C23.0842 17.4984 23.8789 18.3825 23.8789 19.5994V20.0514H20.0345Z"
+    fill="#E83182" />
+  <path
+    d="M14.8095 21.4173H16.3293C17.5264 21.4173 18.6538 20.3196 18.6538 19.1574C18.6538 18.611 18.3608 17.9603 17.9237 17.5332C17.7101 17.3295 17.4568 17.1656 17.1687 17.0415C16.836 16.8875 16.528 16.813 16.2499 16.813H13.9502V23.3395H14.8045V21.4173H14.8095ZM14.8095 17.6474H16.2399C17.124 17.6474 17.7946 18.2931 17.7946 19.1524C17.7946 19.9719 17.1588 20.5878 16.3144 20.5878H14.8095V17.6474Z"
+    fill="#E83182" />
+  <path
+    d="M13.0761 21.3626C13.0761 20.409 12.5397 19.7037 11.4818 19.2716C10.2897 18.765 10.1904 18.5862 10.1904 18.1789C10.1904 17.8858 10.3096 17.5332 10.8907 17.5332C11.3576 17.5332 11.5612 17.712 11.6357 18.1987L11.6705 18.4371L12.5049 18.2832L12.4652 18.0547C12.3112 17.1855 11.74 16.6838 10.9006 16.6838C9.98672 16.6838 9.34599 17.3246 9.34599 18.2434C9.34599 18.6805 9.5099 19.0828 9.80295 19.3759C10.0463 19.6143 10.2947 19.7583 10.8957 20.0365C11.4271 20.2699 11.6606 20.404 11.8592 20.5878C12.0977 20.8312 12.2169 21.1093 12.2169 21.4421C12.2169 22.1524 11.6606 22.6838 10.9205 22.6838C10.1953 22.6838 9.64898 22.217 9.64898 21.6011V20.8908H8.80957V21.6011C8.80957 22.6491 9.76818 23.5332 10.9006 23.5332C12.0977 23.5381 13.0761 22.5597 13.0761 21.3626Z"
+    fill="#E83182" />
+  <path
+    d="M4.95538 17.697H8.16399V16.8676H4.10107V23.394H8.16399V22.5646H4.95538V19.8477H8.18386V19.0182H4.95538V17.697Z"
+    fill="#E83182" />
+  <path
+    d="M37.9946 16.654C37.9946 15.6904 37.2098 14.9007 36.2413 14.9007L24.5939 14.8808V11.9504C24.5939 10.3262 22.8853 9.005 21.3605 9.005C19.8406 9.005 18.5542 10.3212 18.5542 11.8759V15.6954H19.4085V11.8759C19.4085 10.7384 20.2628 9.84938 21.3555 9.84938C22.4582 9.84938 23.7247 10.7335 23.7247 11.9504V15.7153L36.2363 15.7053C36.738 15.7053 37.1304 16.1524 37.1304 16.654V23.3444H37.9847V16.654H37.9946Z"
+    fill="#0C419A" />
+  <path
+    d="M14.4125 15.909C15.3115 15.909 16.1609 15.5464 16.8065 14.8958C17.4522 14.2451 17.8049 13.3858 17.8049 12.4769C17.8049 11.5779 17.4473 10.7286 16.8016 10.0829C16.1509 9.4322 15.2966 9.07458 14.3877 9.07458C12.545 9.07458 10.9854 10.6491 10.9854 12.5117C10.9903 14.3494 12.5599 15.909 14.4125 15.909ZM14.3976 9.91896C15.838 9.91896 16.9705 11.0464 16.9705 12.4819C16.9705 13.9322 15.8479 15.0696 14.4175 15.0696C12.9721 15.0696 11.8397 13.9421 11.8397 12.5067C11.8347 11.0564 12.9622 9.91896 14.3976 9.91896Z"
+    fill="#0C419A" />
+  <path
+    d="M3.74338 30.3129C3.24172 30.3129 2.84934 29.8907 2.84934 29.3891V11.2152C2.84934 10.4205 3.39073 9.86424 4.1606 9.86424C5.02484 9.86424 5.6755 10.5 5.6755 11.3444V15.7053H6.53974V11.3394C6.53974 10.8079 6.62914 10.5596 6.92219 10.2765C7.21027 10.0033 7.59272 9.85431 7.99504 9.85431C8.79471 9.85431 9.40067 10.495 9.40067 11.3394V15.7053H10.255V11.2649C10.255 10.0579 9.20199 9 8.00497 9C7.41888 9 6.80298 9.25828 6.3659 9.68543C6.25166 9.7947 6.17219 9.88907 6.09272 10.0132C6.02815 9.92384 5.96358 9.84934 5.87417 9.75497L5.86424 9.74503C5.65067 9.54139 5.41225 9.36755 5.17384 9.24338L5.16391 9.23841C4.8659 9.1043 4.53311 9.03477 4.18543 9.03477C2.93874 9.03477 2 10.0331 2 11.3593V21.9387V29.399C2 30.3626 2.78477 31.1523 3.75331 31.1523H10.255V30.3229L3.74338 30.3129Z"
+    fill="#0C419A" />
+</svg>
diff --git a/src/assets/logos/monEspaceSante.svg b/src/assets/logos/monEspaceSante.svg
new file mode 100644
index 000000000..d3572ea61
--- /dev/null
+++ b/src/assets/logos/monEspaceSante.svg
@@ -0,0 +1,42 @@
+<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
+  <path
+    d="M36.8181 24.6159L37.1508 24.1342H36.0482L35.7303 24.6159H33.9224V31.1375H37.9853V30.308H34.7767V27.5961H38.0002V26.7666H34.7767V25.4454H38.0002V24.6159H36.8181Z"
+    fill="#E83182" />
+  <path d="M28.1162 25.4454H30.2669V31.1375H31.141V25.4454H33.3414V24.616H28.1162V25.4454Z" fill="#E83182" />
+  <path
+    d="M25.3146 24.447C23.7947 24.447 22.5083 25.7632 22.5083 27.3179V31.1374H23.3626V27.3179C23.3626 26.1805 24.2169 25.2914 25.3096 25.2914C26.4123 25.2914 27.207 26.1755 27.207 27.3924V31.1374H28.0712V27.3924C28.0812 25.7682 26.8394 24.447 25.3146 24.447Z"
+    fill="#E83182" />
+  <path
+    d="M18.7238 24.447C17.2039 24.447 15.9175 25.7632 15.9175 27.3179V31.1374H16.7718V28.6689H20.6211V31.1374H21.4854V27.3924C21.4854 25.7682 20.2436 24.447 18.7238 24.447ZM20.6211 27.8444H16.7718V27.3179C16.7718 26.1805 17.6261 25.2914 18.7188 25.2914C19.8215 25.2914 20.6162 26.1755 20.6162 27.3924V27.8444H20.6211Z"
+    fill="#E83182" />
+  <path
+    d="M15.0478 29.1556C15.0478 28.202 14.5114 27.4967 13.4534 27.0646C12.2614 26.5579 12.162 26.3791 12.162 25.9718C12.162 25.6788 12.2813 25.3261 12.8624 25.3261C13.3293 25.3261 13.5329 25.505 13.6074 25.9917L13.6422 26.2301L14.4766 26.0761L14.4369 25.8477C14.2829 24.9785 13.7117 24.4768 12.8723 24.4768C11.9584 24.4768 11.3177 25.1175 11.3177 26.0364C11.3177 26.4735 11.4816 26.8758 11.7746 27.1689C12.018 27.4073 12.2663 27.5513 12.8673 27.8295C13.3988 28.0629 13.6322 28.197 13.8309 28.3808C14.0693 28.6242 14.1885 28.9023 14.1885 29.2351C14.1885 29.9454 13.6322 30.4768 12.8922 30.4768C12.167 30.4768 11.6207 30.0099 11.6207 29.394V28.6838H10.7812V29.399C10.7812 30.447 11.7399 31.3311 12.8723 31.3311C14.0743 31.3311 15.0478 30.3576 15.0478 29.1556Z"
+    fill="#E83182" />
+  <path
+    d="M36.0429 22.5149H32.8343V19.798H36.0628V18.9685H32.8343V17.6473H36.0429V16.8179H31.98V23.3444H36.0429V22.5149Z"
+    fill="#E83182" />
+  <path
+    d="M30.5747 21.9537C29.8049 22.505 29.3728 22.6838 28.7817 22.6838C27.6641 22.6838 26.7403 21.9835 26.3976 20.9851C26.3877 20.9503 26.3728 20.9205 26.3628 20.8858V20.8808C26.2933 20.6424 26.2536 20.3841 26.2536 20.1209C26.2536 19.8527 26.2933 19.5993 26.3628 19.3609V19.356C26.3728 19.3212 26.3877 19.2864 26.3976 19.2517C26.7403 18.2533 27.6641 17.558 28.7817 17.558C29.3728 17.558 29.8098 17.7368 30.5747 18.2881L30.7685 18.4272L31.2403 17.7268L31.0565 17.5927C30.1675 16.947 29.5516 16.7086 28.7767 16.7086C28.7718 16.7086 28.7718 16.7086 28.7668 16.7086C27.8777 16.7086 27.0383 17.0662 26.3976 17.7169C25.7569 18.3626 25.4092 19.2169 25.4092 20.1109C25.4092 20.1159 25.4092 20.1209 25.4092 20.1258C25.4092 20.1308 25.4092 20.1358 25.4092 20.1407C25.4092 21.0348 25.7618 21.8841 26.3976 22.5348C27.0383 23.1854 27.8777 23.5431 28.7668 23.5431C28.7718 23.5431 28.7718 23.5431 28.7767 23.5431C29.5516 23.5431 30.1675 23.3046 31.0565 22.659L31.2403 22.5248L30.7685 21.8245L30.5747 21.9537Z"
+    fill="#E83182" />
+  <path
+    d="M21.9865 16.649C20.4666 16.649 19.1802 17.9653 19.1802 19.5199V23.3394H20.0345V20.8709H23.8838V23.3394H24.7481V19.5944C24.7481 17.9702 23.5113 16.649 21.9865 16.649ZM20.0345 20.0514V19.5249C20.0345 18.3875 20.8888 17.4984 21.9815 17.4984C23.0842 17.4984 23.8789 18.3825 23.8789 19.5994V20.0514H20.0345Z"
+    fill="#E83182" />
+  <path
+    d="M14.8095 21.4173H16.3293C17.5264 21.4173 18.6538 20.3196 18.6538 19.1574C18.6538 18.611 18.3608 17.9603 17.9237 17.5332C17.7101 17.3295 17.4568 17.1656 17.1687 17.0415C16.836 16.8875 16.528 16.813 16.2499 16.813H13.9502V23.3395H14.8045V21.4173H14.8095ZM14.8095 17.6474H16.2399C17.124 17.6474 17.7946 18.2931 17.7946 19.1524C17.7946 19.9719 17.1588 20.5878 16.3144 20.5878H14.8095V17.6474Z"
+    fill="#E83182" />
+  <path
+    d="M13.0761 21.3626C13.0761 20.409 12.5397 19.7037 11.4818 19.2716C10.2897 18.765 10.1904 18.5862 10.1904 18.1789C10.1904 17.8858 10.3096 17.5332 10.8907 17.5332C11.3576 17.5332 11.5612 17.712 11.6357 18.1987L11.6705 18.4371L12.5049 18.2832L12.4652 18.0547C12.3112 17.1855 11.74 16.6838 10.9006 16.6838C9.98672 16.6838 9.34599 17.3246 9.34599 18.2434C9.34599 18.6805 9.5099 19.0828 9.80295 19.3759C10.0463 19.6143 10.2947 19.7583 10.8957 20.0365C11.4271 20.2699 11.6606 20.404 11.8592 20.5878C12.0977 20.8312 12.2169 21.1093 12.2169 21.4421C12.2169 22.1524 11.6606 22.6838 10.9205 22.6838C10.1953 22.6838 9.64897 22.217 9.64897 21.6011V20.8908H8.80957V21.6011C8.80957 22.6491 9.76818 23.5332 10.9006 23.5332C12.0977 23.5381 13.0761 22.5597 13.0761 21.3626Z"
+    fill="#E83182" />
+  <path
+    d="M4.95538 17.697H8.16399V16.8676H4.10107V23.394H8.16399V22.5646H4.95538V19.8477H8.18386V19.0182H4.95538V17.697Z"
+    fill="#E83182" />
+  <path
+    d="M37.9946 16.654C37.9946 15.6904 37.2098 14.9007 36.2413 14.9007L24.5939 14.8808V11.9504C24.5939 10.3262 22.8853 9.005 21.3605 9.005C19.8406 9.005 18.5542 10.3212 18.5542 11.8759V15.6954H19.4085V11.8759C19.4085 10.7384 20.2628 9.84938 21.3555 9.84938C22.4582 9.84938 23.7247 10.7335 23.7247 11.9504V15.7153L36.2363 15.7053C36.738 15.7053 37.1304 16.1524 37.1304 16.654V23.3444H37.9847V16.654H37.9946Z"
+    fill="#0C419A" />
+  <path
+    d="M14.4125 15.909C15.3115 15.909 16.1609 15.5464 16.8065 14.8958C17.4522 14.2451 17.8049 13.3858 17.8049 12.4769C17.8049 11.5779 17.4473 10.7286 16.8016 10.0829C16.1509 9.4322 15.2966 9.07458 14.3877 9.07458C12.545 9.07458 10.9854 10.6491 10.9854 12.5117C10.9903 14.3494 12.5599 15.909 14.4125 15.909ZM14.3976 9.91896C15.838 9.91896 16.9705 11.0464 16.9705 12.4819C16.9705 13.9322 15.8479 15.0696 14.4175 15.0696C12.9721 15.0696 11.8397 13.9421 11.8397 12.5067C11.8347 11.0564 12.9622 9.91896 14.3976 9.91896Z"
+    fill="#0C419A" />
+  <path
+    d="M3.74338 30.3129C3.24172 30.3129 2.84934 29.8907 2.84934 29.3891V11.2152C2.84934 10.4205 3.39073 9.86424 4.1606 9.86424C5.02484 9.86424 5.6755 10.5 5.6755 11.3444V15.7053H6.53974V11.3394C6.53974 10.8079 6.62914 10.5596 6.92219 10.2765C7.21027 10.0033 7.59272 9.85431 7.99504 9.85431C8.79471 9.85431 9.40067 10.495 9.40067 11.3394V15.7053H10.255V11.2649C10.255 10.0579 9.20199 9 8.00497 9C7.41888 9 6.80298 9.25828 6.3659 9.68543C6.25166 9.7947 6.17219 9.88907 6.09272 10.0132C6.02815 9.92384 5.96358 9.84934 5.87417 9.75497L5.86424 9.74503C5.65066 9.54139 5.41225 9.36755 5.17384 9.24338L5.16391 9.23841C4.8659 9.1043 4.53311 9.03477 4.18543 9.03477C2.93874 9.03477 2 10.0331 2 11.3593V21.9387V29.399C2 30.3626 2.78477 31.1523 3.75331 31.1523H10.255V30.3229L3.74338 30.3129Z"
+    fill="#0C419A" />
+</svg>
diff --git a/src/assets/logos/numRelay.svg b/src/assets/logos/numRelay.svg
new file mode 100644
index 000000000..35d7b7380
--- /dev/null
+++ b/src/assets/logos/numRelay.svg
@@ -0,0 +1,110 @@
+<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
+  <path d="M12.3909 9.14148L11.5059 9.19706V14.3656L14.1058 14.1989V13.3652L12.3909 13.5319V9.14148Z" fill="#009CDE" />
+  <path d="M19.1951 14.4211L18.3101 14.4767V19.6452L20.91 19.4785V18.6449L19.1951 18.8116V14.4211Z" fill="#009CDE" />
+  <path
+    d="M19.8035 9.0859C20.4673 8.90806 20.6701 9.60461 20.6886 9.97511L21.463 9.80839C21.463 8.58573 20.5226 8.14112 19.5269 8.419C18.5312 8.69688 18.2546 9.36378 18.31 10.1974C18.3653 11.0311 19.1397 11.3089 19.5822 11.3645C20.0248 11.4201 20.578 11.5868 20.7992 11.8647C21.0205 12.1426 20.8545 13.0873 19.8588 13.0318C19.0622 12.9873 18.9 12.2722 18.9184 11.9203L18.0887 12.1426C18.0333 12.9762 18.6971 13.8098 19.8588 13.8098C21.0205 13.8098 21.6843 13.1429 21.7396 12.1426C21.7949 11.1422 20.9651 10.8087 20.1354 10.642C19.3056 10.4753 19.195 10.1974 19.1397 10.0307C19.0844 9.86396 18.9738 9.30821 19.8035 9.0859Z"
+    fill="#009CDE" />
+  <path
+    d="M28.8787 14.5008C29.5425 14.323 29.7453 15.0195 29.7638 15.39L30.5382 15.2233C30.5382 14.0006 29.5978 13.556 28.6021 13.8339C27.6064 14.1118 27.3298 14.7787 27.3852 15.6123C27.4405 16.446 28.2149 16.7238 28.6574 16.7794C29.1 16.835 29.6531 17.0017 29.8744 17.2796C30.0957 17.5575 29.9297 18.5023 28.934 18.4467C28.1374 18.4022 27.9752 17.6872 27.9936 17.3352L27.1638 17.5575C27.1085 18.3911 27.7723 19.2247 28.934 19.2247C30.0956 19.2247 30.7595 18.5578 30.8148 17.5575C30.8701 16.5571 30.0403 16.2237 29.2106 16.0569C28.3808 15.8902 28.2702 15.6123 28.2149 15.4456C28.1596 15.2789 28.0489 14.7231 28.8787 14.5008Z"
+    fill="#009CDE" />
+  <path
+    d="M38.0613 19.5027C38.7251 19.3248 38.928 20.0214 38.9464 20.3919L39.7208 20.2251C39.7208 19.0025 38.7804 18.5579 37.7847 18.8357C36.789 19.1136 36.5125 19.7805 36.5678 20.6142C36.6231 21.4478 37.3975 21.7257 37.8401 21.7813C38.2826 21.8368 38.8358 22.0036 39.057 22.2814C39.2783 22.5593 39.1124 23.5041 38.1166 23.4485C37.32 23.4041 37.1578 22.689 37.1763 22.337L36.3465 22.5593C36.2911 23.3929 36.955 24.2266 38.1166 24.2266C39.2783 24.2266 39.9421 23.5597 39.9974 22.5593C40.0527 21.5589 39.2229 21.2255 38.3932 21.0588C37.5634 20.892 37.4528 20.6142 37.3975 20.4474C37.3422 20.2807 37.2316 19.725 38.0613 19.5027Z"
+    fill="#009CDE" />
+  <path
+    d="M0.829755 27.3702L0 27.4258V22.2572L1.21697 22.2017L2.82117 26.0364V22.0349L3.65092 21.9794V27.0923L2.48926 27.2035L0.829755 23.2576V27.3702Z"
+    fill="#009CDE" />
+  <path
+    d="M9.5695 26.6477L8.73975 26.7033V21.5904L9.9014 21.4792L11.2843 25.4806L12.5566 21.2569L13.7736 21.1458V26.3143L12.9438 26.3699V22.3684L11.6715 26.481L10.8418 26.5366L9.5695 22.7574V26.6477Z"
+    fill="#009CDE" />
+  <path fill-rule="evenodd" clip-rule="evenodd"
+    d="M21.187 19.7007L22.0721 19.6452L22.404 18.4225L24.1741 18.3113L24.506 19.4229L25.3911 19.3673L23.8422 14.3655L22.7359 14.4211L21.187 19.7007ZM22.5699 17.7556L23.2891 15.088L24.0635 17.6444L22.5699 17.7556Z"
+    fill="#009CDE" />
+  <path
+    d="M26.5175 14.4703C26.3316 14.714 26.0041 14.7753 25.7858 14.6073C25.5676 14.4393 25.5413 14.1056 25.7271 13.8619C25.9129 13.6183 26.2404 13.557 26.4587 13.725C26.6769 13.893 26.7033 14.2267 26.5175 14.4703Z"
+    fill="#009CDE" />
+  <path
+    d="M23.4193 20.9172C23.2335 21.1609 22.9059 21.2222 22.6877 21.0542C22.4694 20.8862 22.4431 20.5525 22.6289 20.3088C22.8147 20.0652 23.1423 20.0039 23.3605 20.1719C23.5788 20.3399 23.6051 20.6736 23.4193 20.9172Z"
+    fill="#009CDE" />
+  <path d="M26.5518 18.9783L25.7773 19.0339V15.3103L26.5518 15.2548V18.9783Z" fill="#009CDE" />
+  <path d="M23.4546 25.425L22.6802 25.4806V21.757L23.4546 21.7014V25.425Z" fill="#009CDE" />
+  <path fill-rule="evenodd" clip-rule="evenodd"
+    d="M10.4551 20.5899V15.4769L12.7231 15.3102C13.0734 15.3102 13.8709 15.5947 13.9954 16.5328C14.1003 17.3233 13.542 17.7473 13.2167 17.9945C13.1989 18.0079 13.1818 18.0209 13.1656 18.0334C13.3869 18.0704 13.8294 18.2557 13.8294 18.7003V20.312L12.9443 20.3676V18.9773C12.9443 18.9039 12.9396 18.8301 12.9177 18.7601C12.8522 18.5504 12.69 18.2737 12.3912 18.3113L11.2848 18.4224V20.5343L10.4551 20.5899ZM11.2295 17.6444V16.0327L12.0203 15.9981C12.3396 15.9842 12.6918 15.9873 12.9104 16.2215C13.11 16.4353 13.1979 16.7458 13.055 17.033C12.9812 17.1813 12.8792 17.2961 12.7746 17.3823C12.5493 17.5679 12.2446 17.5958 11.9535 17.6097L11.2295 17.6444Z"
+    fill="#009CDE" />
+  <path fill-rule="evenodd" clip-rule="evenodd"
+    d="M18.3101 26.1475V21.0345L20.5781 20.8678C20.9284 20.8678 21.7258 21.1523 21.8503 22.0905C21.9553 22.8809 21.397 23.305 21.0717 23.5521C21.0539 23.5656 21.0368 23.5785 21.0206 23.591C21.2419 23.6281 21.6844 23.8133 21.6844 24.2579V25.8696L20.7993 25.9252V24.5349C20.7993 24.4615 20.7946 24.3877 20.7727 24.3178C20.7072 24.108 20.545 23.8313 20.2462 23.8689L19.1398 23.98V26.0919L18.3101 26.1475ZM19.0845 23.202V21.5903L19.8752 21.5557C20.1946 21.5418 20.5467 21.5449 20.7654 21.7791C20.965 21.9929 21.0529 22.3034 20.91 22.5906C20.8361 22.7389 20.7341 22.8538 20.6296 22.9399C20.4042 23.1256 20.0995 23.1534 19.8085 23.1673L19.0845 23.202Z"
+    fill="#009CDE" />
+  <path
+    d="M5.25484 22.4241L4.31445 22.4797V26.2446C4.31445 26.291 4.31776 26.3378 4.32641 26.3834C4.51728 27.3896 5.33946 27.8088 6.63777 27.537C7.69985 27.3147 7.96537 26.407 7.96537 25.9809V22.2018L7.13562 22.2574V25.703C7.13562 26.0921 7.0803 26.6478 6.19523 26.759C5.48717 26.8479 5.27328 26.4626 5.25484 26.2032V22.4241Z"
+    fill="#009CDE" />
+  <path
+    d="M29.6499 19.6454L28.7095 19.701V23.4659C28.7095 23.5124 28.7128 23.5591 28.7214 23.6047C28.9123 24.6109 29.7345 25.0301 31.0328 24.7583C32.0949 24.536 32.3604 23.6283 32.3604 23.2022V19.4231L31.5306 19.4787V22.9244C31.5306 23.3134 31.4753 23.8691 30.5903 23.9803C29.8822 24.0692 29.6683 23.6839 29.6499 23.4245V19.6454Z"
+    fill="#009CDE" />
+  <path
+    d="M33.0796 24.758L35.9561 24.4801V23.7577L33.9093 23.9244V22.3683L35.6242 22.2015V21.5346L33.9093 21.7014V20.312L35.9008 20.0897V19.3672L33.0796 19.6451V24.758Z"
+    fill="#009CDE" />
+  <path d="M14.7139 25.7031V26.5368L17.535 26.3145V25.4808L14.7139 25.7031Z" fill="#009CDE" />
+  <path d="M14.7139 19.0339V19.8676L17.535 19.6453V18.8116L14.7139 19.0339Z" fill="#009CDE" />
+  <path d="M14.7139 12.3649V13.1985L17.535 12.9762V12.1426L14.7139 12.3649Z" fill="#009CDE" />
+  <path d="M14.7139 23.4245V24.2581L17.535 24.0358V23.2021L14.7139 23.4245Z" fill="#009CDE" />
+  <path d="M14.7139 16.7554V17.589L17.535 17.3667V16.5331L14.7139 16.7554Z" fill="#009CDE" />
+  <path d="M14.7139 10.0862V10.9198L17.535 10.6975V9.86389L14.7139 10.0862Z" fill="#009CDE" />
+  <path d="M14.7139 21.3124V22.146L17.535 21.9237V21.0901L14.7139 21.3124Z" fill="#009CDE" />
+  <path d="M14.7139 14.6434V15.4771L17.535 15.2548V14.4211L14.7139 14.6434Z" fill="#009CDE" />
+  <path d="M14.7139 7.97438V8.80801L17.535 8.58571V7.75208L14.7139 7.97438Z" fill="#009CDE" />
+  <path fill-rule="evenodd" clip-rule="evenodd"
+    d="M25.6674 25.0692C25.5877 25.0567 25.5082 25.0386 25.4292 25.0146C24.3535 24.6874 23.7913 23.3935 24.1736 22.1246C24.5559 20.8556 25.7379 20.0921 26.8137 20.4192C27.8894 20.7463 28.4516 22.0402 28.0693 23.3092C27.82 24.1367 27.2306 24.7492 26.5525 24.9846V25.1494C26.5525 25.2205 26.5734 25.2899 26.6126 25.349C26.7471 25.5517 27.039 25.5644 27.1904 25.3742L27.3269 25.2028L27.6588 25.703C27.6537 25.7087 27.6485 25.7147 27.643 25.7209C27.492 25.8924 27.2185 26.2031 26.6631 26.2031C26.3235 26.2031 26.0507 26.0482 25.8766 25.8756C25.6858 25.6863 25.6674 25.4009 25.6674 25.1315V25.0692ZM27.3192 22.8787C27.193 23.8339 26.5508 24.5362 25.8848 24.4474C25.2188 24.3586 24.7811 23.5123 24.9073 22.5572C25.0335 21.602 25.6757 20.8997 26.3417 20.9885C27.0077 21.0773 27.4453 21.9236 27.3192 22.8787Z"
+    fill="#009CDE" />
+  <path
+    d="M5.34914 30.7058C5.25711 30.7932 5.16797 30.8567 5.0817 30.8965C4.99636 30.9362 4.90422 30.96 4.80527 30.9678C4.64192 30.9807 4.5157 30.9507 4.42664 30.8777C4.33756 30.8037 4.29198 30.7042 4.28992 30.5791C4.28871 30.5057 4.30394 30.4376 4.33562 30.3749C4.36822 30.3111 4.41081 30.2587 4.46342 30.2178C4.51695 30.1769 4.57717 30.1443 4.64407 30.1202C4.69333 30.1031 4.76779 30.0845 4.86747 30.0644C5.07057 30.0238 5.21991 29.9828 5.31549 29.9414C5.31585 29.9065 5.31596 29.8844 5.3158 29.875C5.31409 29.7715 5.28909 29.7005 5.24078 29.6619C5.17542 29.6096 5.07927 29.5885 4.95232 29.5985C4.83377 29.6079 4.74637 29.636 4.69013 29.6828C4.6348 29.7287 4.59448 29.8058 4.56917 29.9142L4.32217 29.8998C4.34282 29.7918 4.37828 29.7033 4.42855 29.6343C4.4788 29.5644 4.55218 29.5082 4.64869 29.4657C4.74518 29.4223 4.85737 29.3955 4.98525 29.3854C5.11221 29.3754 5.2156 29.3823 5.29544 29.4061C5.37529 29.4299 5.43426 29.4634 5.47236 29.5066C5.51044 29.5488 5.53752 29.6041 5.55361 29.6725C5.56272 29.7151 5.56821 29.7928 5.57007 29.9057L5.57566 30.2443C5.57956 30.4804 5.58716 30.6296 5.59847 30.6918C5.6107 30.753 5.63315 30.811 5.66584 30.8659L5.4026 30.8867C5.37559 30.8361 5.35777 30.7758 5.34914 30.7058ZM5.31878 30.1403C5.22792 30.1852 5.09123 30.228 4.9087 30.2688C4.80533 30.292 4.73234 30.3148 4.68971 30.337C4.64708 30.3592 4.6144 30.3896 4.59167 30.4281C4.56892 30.4657 4.55791 30.5066 4.55864 30.5508C4.55976 30.6185 4.58589 30.6729 4.63705 30.7141C4.68913 30.7552 4.76418 30.7719 4.8622 30.7641C4.95928 30.7564 5.04527 30.7284 5.12019 30.6801C5.19508 30.6309 5.24965 30.5677 5.2839 30.4906C5.31002 30.4311 5.32216 30.3454 5.32031 30.2334L5.31878 30.1403Z"
+    fill="#231952" />
+  <path
+    d="M6.39114 30.8085L5.80073 29.3549L6.06677 29.3338L6.40083 30.2059C6.43696 30.3001 6.47036 30.3982 6.50102 30.5003C6.52212 30.4195 6.55183 30.3221 6.59013 30.2079L6.90549 29.2675L7.16453 29.247L6.62638 30.7899L6.39114 30.8085Z"
+    fill="#231952" />
+  <path
+    d="M8.42187 30.1648L8.68285 30.1766C8.64431 30.3332 8.57019 30.4582 8.46051 30.5516C8.35082 30.6451 8.20963 30.6986 8.03694 30.7123C7.81944 30.7295 7.64564 30.6759 7.51554 30.5515C7.38635 30.4261 7.31974 30.2416 7.31572 29.998C7.31156 29.7459 7.37274 29.5451 7.49926 29.3957C7.62578 29.2463 7.79173 29.1635 7.99709 29.1473C8.19592 29.1316 8.35947 29.1869 8.48774 29.3133C8.61601 29.4398 8.68218 29.6267 8.68627 29.874C8.68651 29.8891 8.68642 29.9117 8.68598 29.9419L7.57702 30.0296C7.58907 30.1934 7.63736 30.3158 7.72188 30.3967C7.80641 30.4776 7.91074 30.5132 8.03489 30.5034C8.12731 30.4961 8.20578 30.4654 8.27032 30.4113C8.33485 30.3572 8.38537 30.275 8.42187 30.1648ZM7.58758 29.8196L8.4179 29.754C8.40462 29.6288 8.37132 29.5368 8.318 29.4779C8.23611 29.3865 8.13122 29.3458 8.00334 29.3559C7.88759 29.365 7.79068 29.4118 7.71263 29.4961C7.6355 29.5804 7.59382 29.6882 7.58758 29.8196Z"
+    fill="#231952" />
+  <path
+    d="M9.9694 29.976L10.2178 29.9889C10.1935 30.1631 10.1262 30.3036 10.0158 30.4103C9.90635 30.516 9.77039 30.5752 9.60797 30.5881C9.40447 30.6042 9.23955 30.5503 9.11319 30.4266C8.98775 30.3018 8.92297 30.1143 8.91884 29.8641C8.91617 29.7023 8.94044 29.5587 8.99164 29.4331C9.04285 29.3076 9.12209 29.2104 9.22938 29.1417C9.33759 29.0719 9.45563 29.032 9.58352 29.0219C9.74501 29.0091 9.87778 29.04 9.98183 29.1147C10.0859 29.1884 10.1536 29.2998 10.185 29.449L9.94062 29.5064C9.91563 29.4076 9.87284 29.3352 9.81226 29.2891C9.75261 29.243 9.68078 29.2232 9.59677 29.2299C9.46982 29.2399 9.36743 29.2942 9.2896 29.3926C9.21177 29.4901 9.17448 29.6381 9.17776 29.8366C9.18108 30.0379 9.22177 30.1811 9.29982 30.2663C9.37787 30.3515 9.4785 30.3892 9.60172 30.3795C9.70067 30.3717 9.78278 30.3345 9.84804 30.2682C9.91331 30.2018 9.95376 30.1044 9.9694 29.976Z"
+    fill="#231952" />
+  <path
+    d="M11.2596 30.4236L11.2255 28.3552L12.7475 28.2348L12.7533 28.5847L11.6457 28.6723L11.6533 29.1309L12.6839 29.0494L12.6896 29.3979L11.6591 29.4793L11.6684 30.0423L12.8151 29.9516L12.8209 30.3001L11.2596 30.4236Z"
+    fill="#231952" />
+  <path
+    d="M13.1154 28.7765L13.478 28.7478L13.4814 28.9524C13.6085 28.7832 13.7617 28.6915 13.941 28.6773C14.0362 28.6698 14.1191 28.683 14.1898 28.717C14.2604 28.7509 14.3188 28.8061 14.3649 28.8825C14.429 28.7974 14.4985 28.7321 14.5734 28.6866C14.6484 28.6412 14.7288 28.615 14.8147 28.6082C14.9239 28.5996 15.0167 28.6149 15.093 28.654C15.1694 28.6923 15.2269 28.7532 15.2657 28.8367C15.2938 28.8986 15.3091 29.001 15.3114 29.1439L15.3272 30.1019L14.9338 30.1331L14.9196 29.2766C14.9172 29.128 14.9021 29.0331 14.8743 28.992C14.837 28.9385 14.7805 28.9147 14.7049 28.9206C14.6498 28.925 14.5983 28.946 14.5503 28.9837C14.5023 29.0214 14.4681 29.0741 14.4477 29.1416C14.4273 29.2082 14.4183 29.312 14.4206 29.4531L14.4325 30.1727L14.0391 30.2038L14.0255 29.3827C14.0231 29.2369 14.0145 29.1434 13.9998 29.1021C13.9851 29.0609 13.9627 29.0311 13.9325 29.0128C13.9032 28.9944 13.8633 28.9872 13.8129 28.9912C13.7523 28.996 13.6979 29.0168 13.6499 29.0535C13.6019 29.0903 13.5677 29.1405 13.5473 29.2043C13.5278 29.268 13.5192 29.3718 13.5216 29.5157L13.5336 30.2438L13.1401 30.2749L13.1154 28.7765Z"
+    fill="#231952" />
+  <path
+    d="M15.6666 28.5748L16.0292 28.5461L16.0326 28.7507C16.1597 28.5815 16.3129 28.4898 16.4921 28.4756C16.5873 28.4681 16.6703 28.4813 16.7409 28.5153C16.8116 28.5492 16.87 28.6044 16.9161 28.6808C16.9801 28.5957 17.0496 28.5304 17.1246 28.4849C17.1995 28.4394 17.28 28.4133 17.3658 28.4065C17.4751 28.3979 17.5678 28.4131 17.6442 28.4523C17.7205 28.4905 17.7781 28.5514 17.8169 28.635C17.845 28.6968 17.8602 28.7992 17.8626 28.9422L17.8784 29.9002L17.485 29.9313L17.4708 29.0749C17.4684 28.9263 17.4532 28.8314 17.4255 28.7903C17.3881 28.7367 17.3316 28.713 17.256 28.7189C17.201 28.7233 17.1494 28.7443 17.1015 28.782C17.0535 28.8197 17.0193 28.8723 16.9989 28.9399C16.9785 29.0065 16.9695 29.1103 16.9718 29.2514L16.9837 29.971L16.5902 30.0021L16.5767 29.1809C16.5743 29.0351 16.5657 28.9416 16.551 28.9004C16.5363 28.8592 16.5139 28.8294 16.4836 28.8111C16.4544 28.7927 16.4145 28.7855 16.3641 28.7895C16.3034 28.7943 16.2491 28.815 16.2011 28.8518C16.1531 28.8885 16.1189 28.9388 16.0984 29.0026C16.0789 29.0663 16.0704 29.1701 16.0727 29.314L16.0847 30.042L15.6913 30.0732L15.6666 28.5748Z"
+    fill="#231952" />
+  <path
+    d="M18.5487 28.8046L18.1906 28.7679C18.2283 28.6199 18.2957 28.5072 18.3925 28.4299C18.4894 28.3525 18.6344 28.3062 18.8277 28.2909C19.0032 28.277 19.1342 28.2879 19.2208 28.3234C19.3073 28.358 19.3684 28.4064 19.404 28.4686C19.4405 28.5297 19.4602 28.6464 19.4631 28.8185L19.4665 29.2816C19.4687 29.4133 19.4764 29.5102 19.4895 29.5722C19.5036 29.6333 19.5285 29.6982 19.5643 29.7669L19.175 29.7977C19.1643 29.7722 19.151 29.7341 19.1353 29.6836C19.1283 29.6606 19.1234 29.6454 19.1205 29.6381C19.0544 29.7093 18.9833 29.7644 18.9073 29.8033C18.8313 29.8423 18.7499 29.8652 18.6631 29.8721C18.51 29.8842 18.3884 29.8519 18.2984 29.7752C18.2092 29.6984 18.1636 29.5961 18.1615 29.4681C18.1601 29.3835 18.1789 29.3067 18.218 29.2376C18.257 29.1677 18.3122 29.1125 18.3835 29.072C18.4557 29.0305 18.5597 28.9912 18.6956 28.9541C18.8789 28.9047 19.0058 28.8622 19.0762 28.8265L19.0756 28.787C19.0743 28.7108 19.0548 28.6582 19.0169 28.6291C18.979 28.5992 18.9083 28.5883 18.8047 28.5965C18.7347 28.602 18.6803 28.6204 18.6415 28.6518C18.6028 28.6821 18.5718 28.7331 18.5487 28.8046ZM19.0805 29.0847C19.0304 29.1056 18.9509 29.1321 18.8421 29.1643C18.7332 29.1964 18.6622 29.2251 18.629 29.2503C18.5782 29.2911 18.5533 29.3397 18.5543 29.3961C18.5552 29.4516 18.5765 29.498 18.6183 29.5352C18.66 29.5724 18.7126 29.5884 18.7761 29.5834C18.847 29.5778 18.9143 29.5489 18.978 29.4968C19.025 29.4573 19.0555 29.4111 19.0696 29.3582C19.0793 29.3235 19.0834 29.2587 19.0818 29.1637L19.0805 29.0847Z"
+    fill="#231952" />
+  <path
+    d="M20.8468 29.6655L20.8431 29.4412C20.7903 29.5254 20.7199 29.5941 20.632 29.6472C20.545 29.7002 20.4525 29.7306 20.3545 29.7383C20.2546 29.7462 20.1647 29.7312 20.0846 29.6933C20.0045 29.6554 19.9461 29.5978 19.9093 29.5207C19.8725 29.4435 19.8529 29.3344 19.8506 29.1933L19.835 28.2452L20.2284 28.2141L20.2398 28.9026C20.2433 29.1133 20.2524 29.2421 20.2672 29.2889C20.2829 29.3348 20.3101 29.3703 20.3489 29.3955C20.3876 29.4197 20.4364 29.4295 20.4952 29.4249C20.5624 29.4196 20.6223 29.3965 20.6749 29.3556C20.7275 29.3138 20.7631 29.2648 20.7818 29.2087C20.8005 29.1516 20.8081 29.0159 20.8045 28.8014L20.7941 28.1693L21.1876 28.1382L21.2123 29.6366L20.8468 29.6655Z"
+    fill="#231952" />
+  <path
+    d="M21.4755 29.1877L21.8693 29.0959C21.8874 29.1717 21.9224 29.2277 21.9745 29.2641C22.0264 29.2996 22.0987 29.3136 22.1911 29.3063C22.2928 29.2983 22.369 29.2734 22.4198 29.2317C22.4539 29.2027 22.4706 29.166 22.4698 29.1218C22.4693 29.0917 22.4596 29.0675 22.4406 29.0493C22.4207 29.032 22.3765 29.0181 22.3081 29.0075C21.9896 28.962 21.7873 28.9135 21.7014 28.8619C21.5825 28.7903 21.5218 28.6826 21.5194 28.5386C21.5173 28.4088 21.5664 28.2957 21.6667 28.1992C21.7669 28.1028 21.924 28.0461 22.1377 28.0292C22.3412 28.0131 22.493 28.0345 22.5931 28.0935C22.6931 28.1525 22.7629 28.2458 22.8024 28.3736L22.4325 28.4721C22.4156 28.415 22.3846 28.3728 22.3392 28.3453C22.2949 28.3177 22.2316 28.3071 22.1494 28.3136C22.0458 28.3218 21.9719 28.3423 21.9275 28.375C21.898 28.398 21.8835 28.426 21.8841 28.459C21.8845 28.4872 21.898 28.5101 21.9244 28.5278C21.9604 28.5513 22.0833 28.5788 22.2931 28.6103C22.504 28.6416 22.6515 28.6888 22.7357 28.7519C22.819 28.8159 22.8617 28.911 22.8638 29.037C22.8661 29.1743 22.8111 29.2969 22.6988 29.4046C22.5866 29.5124 22.4189 29.5751 22.1958 29.5928C21.9932 29.6088 21.832 29.5801 21.7121 29.5067C21.5931 29.4332 21.5142 29.3269 21.4755 29.1877Z"
+    fill="#231952" />
+  <path
+    d="M25.3191 28.5504L25.7231 28.647C25.6652 28.8776 25.5653 29.0537 25.4234 29.1751C25.2824 29.2955 25.1017 29.3644 24.8814 29.3818C24.6088 29.4034 24.3833 29.3275 24.2047 29.1542C24.0261 28.9799 23.9341 28.7301 23.9287 28.4046C23.923 28.0604 24.0068 27.7863 24.1801 27.5823C24.3534 27.3774 24.5838 27.2636 24.8713 27.2409C25.1224 27.221 25.3276 27.2797 25.4869 27.4168C25.5817 27.4979 25.6538 27.6193 25.7032 27.7812L25.2946 27.9124C25.2685 27.8071 25.2163 27.7264 25.1378 27.6705C25.0602 27.6145 24.9663 27.5908 24.8562 27.5995C24.704 27.6115 24.5813 27.6763 24.4879 27.7939C24.3954 27.9114 24.3512 28.0934 24.3553 28.3398C24.3596 28.6013 24.4093 28.7839 24.5045 28.8875C24.5997 28.9911 24.722 29.037 24.8713 29.0252C24.9815 29.0165 25.0756 28.9737 25.1538 28.8969C25.232 28.8201 25.2871 28.7046 25.3191 28.5504Z"
+    fill="#231952" />
+  <path
+    d="M25.9841 28.488C25.9819 28.3563 26.012 28.2263 26.0744 28.098C26.1367 27.9696 26.2262 27.8684 26.3428 27.7942C26.4602 27.7199 26.5918 27.677 26.7374 27.6655C26.9624 27.6477 27.1479 27.707 27.2941 27.8433C27.4403 27.9786 27.5153 28.1587 27.519 28.3835C27.5227 28.6102 27.453 28.8041 27.3099 28.9652C27.1676 29.1252 26.9864 29.214 26.7661 29.2314C26.6298 29.2422 26.499 29.2214 26.3739 29.1692C26.2496 29.1168 26.1543 29.0335 26.0879 28.9191C26.0215 28.8038 25.9869 28.6601 25.9841 28.488ZM26.3877 28.4772C26.3901 28.6258 26.427 28.7369 26.4983 28.8104C26.5696 28.8838 26.6566 28.9165 26.7593 28.9084C26.862 28.9003 26.9472 28.854 27.015 28.7695C27.0837 28.685 27.1168 28.5674 27.1143 28.4169C27.1119 28.2702 27.075 28.1601 27.0037 28.0866C26.9333 28.0131 26.8468 27.9804 26.7441 27.9885C26.6415 27.9966 26.5558 28.0429 26.4871 28.1275C26.4184 28.212 26.3852 28.3286 26.3877 28.4772Z"
+    fill="#231952" />
+  <path
+    d="M29.1934 29.0055L28.8 29.0367L28.7874 28.2719C28.7847 28.1102 28.7746 28.0064 28.757 27.9607C28.7394 27.9141 28.7113 27.8791 28.6725 27.8558C28.6348 27.8324 28.5893 27.8228 28.5361 27.827C28.4679 27.8324 28.4071 27.8561 28.3536 27.898C28.3001 27.9399 28.2635 27.9927 28.244 28.0564C28.2255 28.12 28.2175 28.2355 28.2203 28.403L28.2315 29.0816L27.8381 29.1127L27.8133 27.6143L28.1788 27.5854L28.1824 27.8055C28.3094 27.626 28.4713 27.5284 28.6683 27.5128C28.7551 27.506 28.8347 27.5157 28.9071 27.542C28.9795 27.5673 29.0343 27.603 29.0715 27.6491C29.1097 27.695 29.1362 27.7485 29.1513 27.8095C29.1672 27.8704 29.1762 27.9587 29.1781 28.0743L29.1934 29.0055Z"
+    fill="#231952" />
+  <path
+    d="M30.9465 28.8669L30.553 28.898L30.5404 28.1333C30.5378 27.9715 30.5276 27.8678 30.51 27.8221C30.4925 27.7755 30.4643 27.7405 30.4256 27.7172C30.3878 27.6938 30.3423 27.6842 30.2891 27.6884C30.221 27.6938 30.1602 27.7174 30.1066 27.7593C30.0531 27.8013 30.0166 27.8541 29.9971 27.9178C29.9785 27.9814 29.9706 28.0969 29.9734 28.2643L29.9846 28.943L29.5911 28.9741L29.5664 27.4757L29.9318 27.4468L29.9355 27.6669C30.0624 27.4874 30.2244 27.3898 30.4213 27.3742C30.5082 27.3674 30.5878 27.3771 30.6602 27.4034C30.7326 27.4287 30.7874 27.4644 30.8246 27.5104C30.8627 27.5564 30.8893 27.6099 30.9043 27.6708C30.9203 27.7317 30.9292 27.82 30.9311 27.9357L30.9465 28.8669Z"
+    fill="#231952" />
+  <path
+    d="M32.2002 28.2903L32.5934 28.3256C32.5453 28.4744 32.4674 28.5913 32.3594 28.6761C32.2524 28.7599 32.1172 28.8083 31.9538 28.8212C31.6952 28.8416 31.5025 28.7716 31.3755 28.6112C31.2752 28.4826 31.2234 28.3143 31.22 28.1064C31.2159 27.8581 31.2771 27.6588 31.4036 27.5085C31.5301 27.3572 31.6918 27.2738 31.8888 27.2582C32.11 27.2407 32.2858 27.3007 32.4161 27.4383C32.5464 27.5749 32.6113 27.7954 32.6107 28.0996L31.6249 28.1776C31.6297 28.2949 31.6629 28.3841 31.7247 28.4452C31.7864 28.5053 31.8626 28.5317 31.9531 28.5246C32.0147 28.5197 32.0663 28.4987 32.1077 28.4615C32.1491 28.4243 32.18 28.3672 32.2002 28.2903ZM32.216 27.8878C32.2113 27.7733 32.1805 27.6886 32.1235 27.6338C32.0665 27.578 31.9978 27.5533 31.9176 27.5596C31.8317 27.5664 31.7613 27.6036 31.7063 27.671C31.6513 27.7385 31.6252 27.8262 31.6279 27.9343L32.216 27.8878Z"
+    fill="#231952" />
+  <path
+    d="M34.2224 27.5512L33.8357 27.6524C33.8213 27.5754 33.7905 27.5189 33.7431 27.4831C33.6968 27.4472 33.6367 27.4322 33.5629 27.438C33.4649 27.4458 33.3871 27.4863 33.3294 27.5596C33.2726 27.6319 33.2456 27.748 33.2482 27.9079C33.2512 28.0857 33.2826 28.2089 33.3427 28.2777C33.4036 28.3463 33.484 28.3767 33.5839 28.3688C33.6586 28.3629 33.7194 28.3369 33.7663 28.2908C33.8132 28.2438 33.8456 28.1673 33.8634 28.0613L34.251 28.0971C34.2138 28.2789 34.139 28.42 34.0266 28.5203C33.9143 28.6205 33.7624 28.6782 33.571 28.6933C33.3535 28.7105 33.1788 28.6551 33.0467 28.5271C32.9156 28.399 32.8481 28.2127 32.844 27.9681C32.84 27.7208 32.9017 27.5233 33.0291 27.3757C33.1566 27.2272 33.331 27.1442 33.5522 27.1267C33.7333 27.1123 33.8777 27.1405 33.9854 27.2111C34.094 27.2807 34.173 27.394 34.2224 27.5512Z"
+    fill="#231952" />
+  <path
+    d="M35.1966 27.0305L35.2018 27.3466L34.933 27.3678L34.9429 27.9717C34.945 28.094 34.9485 28.1653 34.9535 28.1856C34.9594 28.2049 34.9713 28.2205 34.9893 28.2322C35.0082 28.2439 35.0307 28.2487 35.0568 28.2467C35.0932 28.2438 35.1458 28.2269 35.2144 28.1961L35.2531 28.501C35.1623 28.5477 35.059 28.5757 34.9432 28.5848C34.8723 28.5904 34.8082 28.5837 34.7508 28.5647C34.6935 28.5448 34.651 28.517 34.6233 28.4816C34.5965 28.4451 34.5774 28.3948 34.5661 28.3307C34.5569 28.2852 34.5512 28.1925 34.5489 28.0523L34.5381 27.3991L34.3575 27.4133L34.3523 27.0973L34.5329 27.083L34.528 26.7853L34.919 26.5227L34.9278 27.0518L35.1966 27.0305Z"
+    fill="#231952" />
+  <circle cx="20.0498" cy="27.75" r="0.25" fill="#FF454C" />
+  <circle cx="20.9399" cy="27.65" r="0.25" fill="#FF454C" />
+</svg>
-- 
GitLab


From 55f7fd2ab9e912acbe6bcc81033092842bc395f3 Mon Sep 17 00:00:00 2001
From: Hugo SUBTIL <ext.sopra.husubtil@grandlyon.com>
Date: Mon, 24 Oct 2022 18:53:30 +0200
Subject: [PATCH 03/32] fix: repaired form and form edit

---
 src/app/app-routing.module.ts                 |   6 +
 .../form/form-view/form-view.component.html   |   2 +-
 src/app/form/form-view/form-view.component.ts |  41 +++--
 .../progress-bar/progress-bar.component.html  |   7 +-
 .../structure-access-modality.component.html  |   2 +-
 ...gital-helping-accompaniment.component.html |   6 +-
 .../structure-form.component.ts               |  17 +-
 .../structure-public-target.component.html    |   2 +-
 .../structure-public-target.component.ts      |  23 +--
 .../structure-training-type.component.html    |   2 +-
 .../structure-wifi.component.html             |   4 +-
 src/app/profile/services/profile.service.ts   |  13 +-
 .../structure-edition-summary.component.html  | 158 ++++++++----------
 .../structure-edition-summary.component.scss  |   2 +-
 .../structure-edition-summary.component.ts    | 133 ++++-----------
 src/app/resolvers/structure.resolver.ts       |  69 ++++++--
 src/app/services/structure.service.ts         |   5 -
 src/app/shared/enum/labels.emum.ts            |   2 +-
 .../structure-details.component.html          |  20 ++-
 .../structure-details.component.ts            |   2 -
 .../structure-list-search.component.ts        |   1 +
 src/app/utils/formUtils.ts                    |   5 +-
 src/app/utils/utils.ts                        |   2 +-
 src/assets/form/sprite.svg                    |  63 ++-----
 src/assets/logos/autres.svg                   |  16 ++
 src/assets/logos/foreigners.svg               |   8 +
 src/assets/logos/franceConnect.svg            |  14 ++
 src/assets/logos/health.svg                   |   5 +
 src/assets/logos/housing.svg                  |  16 ++
 src/assets/logos/idDoc.svg                    |   5 +
 src/assets/logos/needs.svg                    |  15 ++
 src/assets/logos/pixLabel.svg                 |  36 ++++
 src/assets/logos/retirement.svg               |  11 ++
 src/assets/logos/scolarity.svg                |  21 +++
 src/assets/logos/training.svg                 |  10 ++
 src/assets/logos/transport.svg                |   7 +
 src/assets/logos/work.svg                     |   8 +
 37 files changed, 413 insertions(+), 346 deletions(-)
 create mode 100644 src/assets/logos/autres.svg
 create mode 100644 src/assets/logos/foreigners.svg
 create mode 100644 src/assets/logos/franceConnect.svg
 create mode 100644 src/assets/logos/health.svg
 create mode 100644 src/assets/logos/housing.svg
 create mode 100644 src/assets/logos/idDoc.svg
 create mode 100644 src/assets/logos/needs.svg
 create mode 100644 src/assets/logos/pixLabel.svg
 create mode 100644 src/assets/logos/retirement.svg
 create mode 100644 src/assets/logos/scolarity.svg
 create mode 100644 src/assets/logos/training.svg
 create mode 100644 src/assets/logos/transport.svg
 create mode 100644 src/assets/logos/work.svg

diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts
index 5f82d11aa..5ea29ce95 100644
--- a/src/app/app-routing.module.ts
+++ b/src/app/app-routing.module.ts
@@ -59,6 +59,9 @@ const routes: Routes = [
         path: '',
         outlet: 'left-pane',
         component: StructureDetailsComponent,
+        resolve: {
+          structure: StructureResolver,
+        },
       },
     ],
   },
@@ -145,6 +148,9 @@ const routes: Routes = [
         outlet: 'left-pane',
         data: { fullScreen: true },
         component: StructureDetailsComponent,
+        resolve: {
+          structure: StructureResolver,
+        },
       },
     ],
   },
diff --git a/src/app/form/form-view/form-view.component.html b/src/app/form/form-view/form-view.component.html
index a4089fd03..0469aec2e 100644
--- a/src/app/form/form-view/form-view.component.html
+++ b/src/app/form/form-view/form-view.component.html
@@ -5,8 +5,8 @@
     (closed)="hasRedirectionAccepted($event)"
   ></app-modal-confirmation>
   <app-progress-bar
+    *ngIf="!isEditMode"
     [formType]="formType[routeParam]"
-    [isEditMode]="isEditMode"
     [currentPage]="currentPage - 1"
     [nbSteps]="nbSteps"
   ></app-progress-bar>
diff --git a/src/app/form/form-view/form-view.component.ts b/src/app/form/form-view/form-view.component.ts
index 940b13279..ef241ecd8 100644
--- a/src/app/form/form-view/form-view.component.ts
+++ b/src/app/form/form-view/form-view.component.ts
@@ -1,4 +1,4 @@
-import { Component, OnInit } from '@angular/core';
+import { AfterViewInit, ChangeDetectorRef, Component, OnInit } from '@angular/core';
 import { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';
 import { ActivatedRoute, NavigationEnd, Router } from '@angular/router';
 import { forkJoin, of } from 'rxjs';
@@ -26,7 +26,7 @@ import { structureFormStep } from './structure-form/structureFormStep.enum';
   templateUrl: './form-view.component.html',
   styleUrls: ['./form-view.component.scss'],
 })
-export class FormViewComponent implements OnInit {
+export class FormViewComponent implements OnInit, AfterViewInit {
   public routeParam: string;
   public formType = formType;
   public currentPage: stepType;
@@ -83,9 +83,14 @@ export class FormViewComponent implements OnInit {
     private profileService: ProfileService,
     private structureService: StructureService,
     private personalOfferService: PersonalOfferService,
-    private notificationService: NotificationService
+    private notificationService: NotificationService,
+    private cdRef: ChangeDetectorRef
   ) {}
 
+  ngAfterViewInit(): void {
+    this.cdRef.detectChanges();
+  }
+
   async ngOnInit(): Promise<void> {
     this.routeParam = this.router.routerState.snapshot.url.split('/')[2];
 
@@ -108,6 +113,7 @@ export class FormViewComponent implements OnInit {
       if (data.structure) {
         this.isEditMode = true;
         this.structure = data.structure;
+        // TODO: refactor ?
         this.editForm = this.formUtils.createStructureForm(data.structure, this.isEditMode);
         this.structureForm = this.editForm;
         this.hoursForm = this.formUtils.createHoursForm(data.structure);
@@ -165,9 +171,9 @@ export class FormViewComponent implements OnInit {
         this.structure = new Structure();
         this.structureForm = this.formUtils.createStructureForm(this.structure);
         this.currentForm = this.structureForm;
+        // Init hours form
+        this.hoursForm = this.formUtils.createHoursForm(this.structure);
       }
-      // Init hours form
-      this.hoursForm = this.formUtils.createHoursForm(this.structure);
     }
     if (formType[this.routeParam] === formType.personaloffer) {
       this.nbSteps = totalFormSteps;
@@ -362,15 +368,7 @@ export class FormViewComponent implements OnInit {
   }
   public async saveStructureForm(): Promise<void> {
     const user = await this.profileService.getProfile();
-    console.log(
-      '🚀 ~ file: form-view.component.ts ~ line 365 ~ FormViewComponent ~ saveStructureForm ~ this.structureForm.value',
-      this.structureForm.value
-    );
     const newStructure = new Structure(this.structureForm.value);
-    console.log(
-      '🚀 ~ file: form-view.component.ts ~ line 366 ~ FormViewComponent ~ saveStructureForm ~ newStructure',
-      newStructure
-    );
     newStructure.hours = this.hoursForm.value;
     if (!this.structureForm.value.freeWorkShop) {
       newStructure.freeWorkShop = true;
@@ -385,7 +383,7 @@ export class FormViewComponent implements OnInit {
     });
   }
   public setCurrentStep(step: stepType): void {
-    //THIS PROBABLY CREATES CONSOLE ERRORS NG100 only in dev mode, please refer to https://angular.io/errors/NG0100 for more info
+    // THIS PROBABLY CREATES CONSOLE ERRORS NG100 only in dev mode, please refer to https://angular.io/errors/NG0100 for more info
     this.isPageValid = false;
     this.currentPage = step;
   }
@@ -442,13 +440,16 @@ export class FormViewComponent implements OnInit {
       case structureFormStep.structurePublicTarget:
         return {
           categories: {
-            publicsAccompaniment: this.structureForm.get('categories').get('publicsAccompaniment').value,
+            age: this.structureForm.get('categories').get('age').value,
+            languageAndIlliteracy: this.structureForm.get('categories').get('languageAndIlliteracy').value,
+            handicaps: this.structureForm.get('categories').get('handicaps').value,
+            publicOthers: this.structureForm.get('categories').get('publicOthers').value,
           },
         };
       case structureFormStep.structureDigitalHelpingAccompaniment:
         return {
           categories: {
-            publicsAccompaniment: this.structureForm.get('categories').get('proceduresAccompaniment').value,
+            onlineProcedures: this.structureForm.get('categories').get('onlineProcedures').value,
           },
         };
       case structureFormStep.structureTrainingType:
@@ -462,12 +463,16 @@ export class FormViewComponent implements OnInit {
         return {
           freeWorkShop: this.structureForm.get('freeWorkShop').value,
         };
-      //TODO: refactor ?
       case structureFormStep.structureOtherServices:
+        return {
+          categories: {
+            equipmentsServices: this.structureForm.get('categories').get('equipmentsAndServices').value,
+          },
+        };
       case structureFormStep.structureWifi:
         return {
           categories: {
-            selfServiceMaterial: this.structureForm.get('categories').get('equipmentsAndServices').value,
+            selfServiceMaterial: this.structureForm.get('categories').get('selfServiceMaterial').value,
           },
         };
       case structureFormStep.structureEquipments:
diff --git a/src/app/form/form-view/global-components/progress-bar/progress-bar.component.html b/src/app/form/form-view/global-components/progress-bar/progress-bar.component.html
index e0bb31dfb..ce3c63a5a 100644
--- a/src/app/form/form-view/global-components/progress-bar/progress-bar.component.html
+++ b/src/app/form/form-view/global-components/progress-bar/progress-bar.component.html
@@ -1,18 +1,17 @@
-<div class="progressBar" *ngIf="!isEditMode">
+<div class="progressBar">
   <p *ngIf="formType === formTypeEnum.account">Création de compte</p>
   <p *ngIf="formType === formTypeEnum.profile">Création du profil</p>
   <p *ngIf="formType === formTypeEnum.structure">Création de la structure</p>
   <p *ngIf="formType === formTypeEnum.personaloffer">Création d'offre de service</p>
   <div fxLayout="row" fxLayoutAlign="space-between center" fxLayoutGap="20px">
-    <label [ngClass]="{ validate: currentPage == nbPagesForm }" for="progressForm"
+    <label [ngClass]="{ validate: currentPage == nbSteps }" for="progressForm"
       >{{ progressStatus > 100 ? 100 : (progressStatus | number: '1.0-0') }}%
     </label>
     <progress
       id="progressForm"
-      [ngClass]="{ validate: currentPage == nbPagesForm }"
+      [ngClass]="{ validate: currentPage == nbSteps }"
       max="100"
       [value]="progressStatus"
     ></progress>
   </div>
 </div>
-<div class="topSpacing" *ngIf="isEditMode"></div>
diff --git a/src/app/form/form-view/structure-form/structure-access-modality/structure-access-modality.component.html b/src/app/form/form-view/structure-form/structure-access-modality/structure-access-modality.component.html
index 2a9ffaabb..268704f6c 100644
--- a/src/app/form/form-view/structure-form/structure-access-modality/structure-access-modality.component.html
+++ b/src/app/form/form-view/structure-form/structure-access-modality/structure-access-modality.component.html
@@ -12,7 +12,7 @@
       <p>Plusieurs choix possibles</p>
     </div>
   </div>
-  <p class="missing-information" *ngIf="isEditMode && !structureForm.get('accessModality').valid">
+  <p class="missing-information" *ngIf="isEditMode && !structureForm.get('categories').get('accessModality').valid">
     <app-svg-icon [iconClass]="'icon-26'" [type]="'form'" [icon]="'notValidate'" class="validationIcon"></app-svg-icon>
     <span>Il faut renseigner au moins un champ</span>
   </p>
diff --git a/src/app/form/form-view/structure-form/structure-digital-helping-accompaniment/structure-digital-helping-accompaniment.component.html b/src/app/form/form-view/structure-form/structure-digital-helping-accompaniment/structure-digital-helping-accompaniment.component.html
index 1d8540670..c5444a8e7 100644
--- a/src/app/form/form-view/structure-form/structure-digital-helping-accompaniment/structure-digital-helping-accompaniment.component.html
+++ b/src/app/form/form-view/structure-form/structure-digital-helping-accompaniment/structure-digital-helping-accompaniment.component.html
@@ -1,4 +1,8 @@
-<form [formGroup]="structureForm" *ngIf="structureForm" (keyup.enter)="isPageValid && !isEditMode ? nextPage() : null">
+<form
+  [formGroup]="structureForm"
+  *ngIf="structureForm && onlineProcedures"
+  (keyup.enter)="isPageValid && !isEditMode ? nextPage() : null"
+>
   <div class="title" [ngClass]="{ editTitle: isEditMode }">
     <app-svg-icon
       (click)="goBack()"
diff --git a/src/app/form/form-view/structure-form/structure-form.component.ts b/src/app/form/form-view/structure-form/structure-form.component.ts
index 783a79fbb..7017cf513 100644
--- a/src/app/form/form-view/structure-form/structure-form.component.ts
+++ b/src/app/form/form-view/structure-form/structure-form.component.ts
@@ -141,7 +141,6 @@ export class StructureFormComponent implements OnChanges, OnInit {
   }
 
   public setValidationsForm(): void {
-    console.log(this.structureForm);
     if (this.isClaimMode) {
       //TODO: check claim mode
       //   this.pagesValidation[structureFormStep.structureConsent] = { valid: this.userAcceptSavedDate };
@@ -206,7 +205,7 @@ export class StructureFormComponent implements OnChanges, OnInit {
         valid: this.structureForm.get('freeWorkShop').valid,
       };
       this.pagesValidation[structureFormStep.structureWifi] = {
-        valid: this.structureForm.get('categories').get('equipmentsAndServices').valid,
+        valid: this.structureForm.get('categories').get('selfServiceMaterial').valid,
       };
       this.pagesValidation[structureFormStep.structureEquipments] = {
         valid:
@@ -256,18 +255,12 @@ export class StructureFormComponent implements OnChanges, OnInit {
           categ.modules.forEach((c) => {
             this.equipments.push({ module: c, openned: false });
           });
-          console.log(this.equipments);
           break;
         }
         case CategoryEnum.equipmentsServices: {
           categ.modules.forEach((c) => {
             this.equipmentsServices.push({ module: c, openned: false });
           });
-          console.log(this.equipmentsServices);
-          console.log(
-            '🚀 ~ file: structure-form.component.ts ~ line 265 ~ StructureFormComponent ~ categories.forEach ~ this.equipmentsServices',
-            this.equipmentsServices
-          );
           break;
         }
         case CategoryEnum.labelsQualifications: {
@@ -296,10 +289,6 @@ export class StructureFormComponent implements OnChanges, OnInit {
         }
       }
     });
-    // const categs = await this.searchService.getCategoriesTraining().toPromise();
-    // categs.forEach((categ) => {
-    //   this.trainingCategories.push({ category: categ, openned: false });
-    // });
   }
 
   public onCheckChange({
@@ -330,8 +319,8 @@ export class StructureFormComponent implements OnChanges, OnInit {
 
   // Check if a FormControl value is in FormArray
   public isInArray({ formControlName, term }: { formControlName: string; term: string }): boolean {
-    if (this.structureForm.controls[formControlName] && this.structureForm.controls[formControlName].value) {
-      return this.structureForm.controls[formControlName].value.includes(term);
+    if (this.structureForm.get(formControlName) && this.structureForm.get(formControlName).value) {
+      return this.structureForm.get(formControlName).value.includes(term);
     }
     return false;
   }
diff --git a/src/app/form/form-view/structure-form/structure-public-target/structure-public-target.component.html b/src/app/form/form-view/structure-form/structure-public-target/structure-public-target.component.html
index 9d8a61abf..03be25f78 100644
--- a/src/app/form/form-view/structure-form/structure-public-target/structure-public-target.component.html
+++ b/src/app/form/form-view/structure-form/structure-public-target/structure-public-target.component.html
@@ -12,7 +12,7 @@
       <p>Plusieurs choix possibles</p>
     </div>
   </div>
-  <p class="missing-information" *ngIf="isEditMode && !structureForm.get('publics').valid">
+  <p class="missing-information" *ngIf="isEditMode && !structureForm.get('categories').get('age').valid">
     <app-svg-icon [iconClass]="'icon-26'" [type]="'form'" [icon]="'notValidate'" class="validationIcon"></app-svg-icon>
     <span>Il faut renseigner au moins un champ</span>
   </p>
diff --git a/src/app/form/form-view/structure-form/structure-public-target/structure-public-target.component.ts b/src/app/form/form-view/structure-form/structure-public-target/structure-public-target.component.ts
index 6c6c5b9ae..0813380e1 100644
--- a/src/app/form/form-view/structure-form/structure-public-target/structure-public-target.component.ts
+++ b/src/app/form/form-view/structure-form/structure-public-target/structure-public-target.component.ts
@@ -13,37 +13,16 @@ export class StructurePublicTargetComponent implements OnInit {
   @Input() languageAndIlliteracy: Category;
   @Input() handicaps: Category;
   @Input() publicOthers: Category;
+  @Input() isEditMode: boolean;
   @Output() updateChoice = new EventEmitter<any>();
   @Output() validateForm = new EventEmitter<any>();
 
   public buttonTypeEnum = ButtonType;
 
   ngOnInit(): void {
-    console.log('TEST: ', this.age);
     this.validateForm.emit();
   }
 
-  // private mapCategories() {
-  //   this.publics.forEach((categorie: Category) => {
-  //     switch (categorie.id) {
-  //       case PublicCategorie.age:
-  //         this.age = categorie;
-  //         break;
-  //       case PublicCategorie.languageAndIlliteracy:
-  //         this.languageAndIlliteracy = categorie;
-  //         break;
-  //       case PublicCategorie.handicaps:
-  //         this.handicaps = categorie;
-  //         break;
-  //       case PublicCategorie.other:
-  //         this.others = categorie;
-  //         break;
-  //       default:
-  //         throw new Error(`Unhandled public categorie : ${categorie.id}`);
-  //     }
-  //   });
-  // }
-
   public updateChoicePublic(choice: string, formControlName: string) {
     this.updateChoice.emit({ formControlName: `categories.${formControlName}`, choice });
   }
diff --git a/src/app/form/form-view/structure-form/structure-training-type/structure-training-type.component.html b/src/app/form/form-view/structure-form/structure-training-type/structure-training-type.component.html
index 24cd96155..0bc958a8d 100644
--- a/src/app/form/form-view/structure-form/structure-training-type/structure-training-type.component.html
+++ b/src/app/form/form-view/structure-form/structure-training-type/structure-training-type.component.html
@@ -1,4 +1,4 @@
-<form [formGroup]="structureForm" *ngIf="structureForm">
+<form [formGroup]="structureForm" *ngIf="structureForm && trainingCategories.length > 0">
   <div class="title" [ngClass]="{ editTitle: isEditMode }">
     <app-svg-icon
       (click)="goBack()"
diff --git a/src/app/form/form-view/structure-form/structure-wifi/structure-wifi.component.html b/src/app/form/form-view/structure-form/structure-wifi/structure-wifi.component.html
index 7e24b6775..bc20327aa 100644
--- a/src/app/form/form-view/structure-form/structure-wifi/structure-wifi.component.html
+++ b/src/app/form/form-view/structure-form/structure-wifi/structure-wifi.component.html
@@ -12,8 +12,8 @@
     </div>
   </div>
   <app-radio-form
-    [selectedOption]="isEditMode ? isInArray('equipmentsAndServices', 'wifiEnAccesLibre') : null"
-    (selectedEvent)="onCheckChange($event, 'categories.equipmentsAndServices', 'wifiEnAccesLibre')"
+    [selectedOption]="isEditMode ? isInArray('selfServiceMaterial', 'wifiEnAccesLibre') : null"
+    (selectedEvent)="onCheckChange($event, 'categories.selfServiceMaterial', 'wifiEnAccesLibre')"
   >
   </app-radio-form>
 </form>
diff --git a/src/app/profile/services/profile.service.ts b/src/app/profile/services/profile.service.ts
index 50b1dadff..2ba4e114e 100644
--- a/src/app/profile/services/profile.service.ts
+++ b/src/app/profile/services/profile.service.ts
@@ -1,15 +1,15 @@
 import { HttpClient } from '@angular/common/http';
 import { Injectable } from '@angular/core';
-import { Observable } from 'rxjs';
-import { User } from '../../models/user.model';
 import decode from 'jwt-decode';
-import { UserRole } from '../../shared/enum/userRole.enum';
-import { AuthService } from '../../services/auth.service';
-import { Structure } from '../../models/structure.model';
+import { Observable } from 'rxjs';
+import { catchError, map } from 'rxjs/operators';
 import { Employer } from '../../models/employer.model';
 import { Job } from '../../models/job.model';
-import { catchError, map } from 'rxjs/operators';
+import { Structure } from '../../models/structure.model';
+import { User } from '../../models/user.model';
+import { AuthService } from '../../services/auth.service';
 import { NotificationService } from '../../services/notification.service';
+import { UserRole } from '../../shared/enum/userRole.enum';
 
 @Injectable({
   providedIn: 'root',
@@ -116,7 +116,6 @@ export class ProfileService {
   }
 
   public updateDetails(newDetails: { name: string; surname: string; phone: string }): Observable<User | Error> {
-    console.log('profile service updates details');
     return this.http.post<User>(`${this.baseUrl}/details`, newDetails).pipe(
       map((user) => user),
       catchError(() => {
diff --git a/src/app/profile/structure-edition-summary/structure-edition-summary.component.html b/src/app/profile/structure-edition-summary/structure-edition-summary.component.html
index 38aa8080e..08dedfca4 100644
--- a/src/app/profile/structure-edition-summary/structure-edition-summary.component.html
+++ b/src/app/profile/structure-edition-summary/structure-edition-summary.component.html
@@ -86,11 +86,11 @@
         ></app-button>
       </div>
       <div class="content">
-        <app-missing-information *ngIf="!isFieldValid('accessModality')"></app-missing-information>
-        <ng-container *ngIf="isFieldValid('accessModality')">
-          <div class="list" *ngFor="let accessModality of structure.accessModality">
+        <app-missing-information *ngIf="!isFieldValid('accessModality', 'categories')"></app-missing-information>
+        <ng-container *ngIf="isFieldValid('accessModality', 'categories')">
+          <div class="list" *ngFor="let accessModality of structure.categoriesDisplay.accessModality">
             <p class="accessModilty">
-              {{ getAccessLabel(accessModality) }}
+              {{ accessModality }}
             </p>
           </div>
         </ng-container>
@@ -241,10 +241,48 @@
         ></app-button>
       </div>
       <div class="content">
-        <app-missing-information *ngIf="!isFieldValid('publics')"></app-missing-information>
-        <ng-container *ngIf="isFieldValid('publics')">
-          <div *ngFor="let public of structure.publics" class="list">
-            <p>{{ getPublicLabel(public) }}</p>
+        <ng-container *ngIf="isFieldValid('age', 'categories') && structure.categoriesDisplay.age">
+          <div *ngFor="let public of structure.categoriesDisplay.age" class="list">
+            <p>{{ public }}</p>
+          </div>
+        </ng-container>
+      </div>
+      <div class="content">
+        <ng-container
+          *ngIf="
+            isFieldValid('languageAndIlliteracy', 'categories') &&
+            structure.categoriesDisplay &&
+            structure.categoriesDisplay.languageAndIlliteracy
+          "
+        >
+          <div *ngFor="let public of structure.categoriesDisplay.languageAndIlliteracy" class="list">
+            <p>{{ public }}</p>
+          </div>
+        </ng-container>
+      </div>
+      <div class="content">
+        <ng-container
+          *ngIf="
+            isFieldValid('handicaps', 'categories') &&
+            structure.categoriesDisplay &&
+            structure.categoriesDisplay.handicaps
+          "
+        >
+          <div *ngFor="let public of structure.categoriesDisplay.handicaps" class="list">
+            <p>{{ public }}</p>
+          </div>
+        </ng-container>
+      </div>
+      <div class="content">
+        <ng-container
+          *ngIf="
+            isFieldValid('publicOthers', 'categories') &&
+            structure.categoriesDisplay &&
+            structure.categoriesDisplay.publicOthers
+          "
+        >
+          <div *ngFor="let public of structure.categoriesDisplay.publicOthers" class="list">
+            <p>{{ public }}</p>
           </div>
         </ng-container>
       </div>
@@ -264,8 +302,8 @@
       <div class="content">
         <app-no-information *ngIf="!containsDigitalHelp()"></app-no-information>
         <ng-container *ngIf="containsDigitalHelp()">
-          <div *ngFor="let digitalHelp of structure.proceduresAccompaniment" class="list">
-            <p>{{ getDigitalHelpLabel(digitalHelp) }}</p>
+          <div *ngFor="let digitalHelp of structure.categoriesDisplay.onlineProcedures" class="list">
+            <p>{{ digitalHelp }}</p>
           </div>
         </ng-container>
       </div>
@@ -299,16 +337,16 @@
                 </div>
               </div>
               <div class="detailsContainer" [@show]="showBaseSkills">
-                <div class="details" *ngFor="let skill of baseSkills">
-                  {{ skill.text }}
+                <div class="details" *ngFor="let skill of structure.categoriesDisplay.baseSkills">
+                  {{ skill }}
                 </div>
               </div>
             </div>
           </div>
-          <div *ngIf="isParentingHelp()" class="collapse" [ngClass]="{ notCollapsed: !showParentingHelp }">
+          <div *ngIf="isAdvancedSkills()" class="collapse" [ngClass]="{ notCollapsed: !showAdvancedSkills }">
             <div>
-              <div class="collapseHeader" (click)="toggleParentingHelp()">
-                <div class="titleCollapse">Aide à la parentalité</div>
+              <div class="collapseHeader" (click)="toogleAdvancedSkills()">
+                <div class="titleCollapse">Culture numérique</div>
                 <div class="logo">
                   <svg class="show" aria-hidden="true">
                     <use [attr.xlink:href]="'assets/form/sprite.svg#unfold'"></use>
@@ -318,73 +356,9 @@
                   </svg>
                 </div>
               </div>
-              <div class="detailsContainer" [@show]="showParentingHelp">
-                <div class="details" *ngFor="let help of parentingHelp">
-                  {{ help.text }}
-                </div>
-              </div>
-            </div>
-          </div>
-          <div
-            *ngIf="isSocialAndProfessional()"
-            class="collapse"
-            [ngClass]="{ notCollapsed: !showSocialAndProfessional }"
-          >
-            <div>
-              <div class="collapseHeader" (click)="toggleSocialAndProfessional()">
-                <div class="titleCollapse">Insertion sociale et professionnelle</div>
-                <div class="logo">
-                  <svg class="show" aria-hidden="true">
-                    <use [attr.xlink:href]="'assets/form/sprite.svg#unfold'"></use>
-                  </svg>
-                  <svg class="hide" aria-hidden="true">
-                    <use [attr.xlink:href]="'assets/form/sprite.svg#fold'"></use>
-                  </svg>
-                </div>
-              </div>
-              <div class="detailsContainer" [@show]="showSocialAndProfessional">
-                <div class="details" *ngFor="let skill of socialAndProfessional">
-                  {{ skill.text }}
-                </div>
-              </div>
-            </div>
-          </div>
-          <div *ngIf="isAccessRights()" class="collapse" [ngClass]="{ notCollapsed: !showAccessRights }">
-            <div>
-              <div class="collapseHeader" (click)="toggleAccessRights()">
-                <div class="titleCollapse">Accès aux droits</div>
-                <div class="logo">
-                  <svg class="show" aria-hidden="true">
-                    <use [attr.xlink:href]="'assets/form/sprite.svg#unfold'"></use>
-                  </svg>
-                  <svg class="hide" aria-hidden="true">
-                    <use [attr.xlink:href]="'assets/form/sprite.svg#fold'"></use>
-                  </svg>
-                </div>
-              </div>
-              <div class="detailsContainer" [@show]="showAccessRights">
-                <div class="details" *ngFor="let rights of accessRights">
-                  {{ rights.text }}
-                </div>
-              </div>
-            </div>
-          </div>
-          <div *ngIf="isDigitalSecurity()" class="collapse" [ngClass]="{ notCollapsed: !showDigitalSecurity }">
-            <div>
-              <div class="collapseHeader" (click)="toggleDigitalSecurity()">
-                <div class="titleCollapse">Culture et sécurité numérique</div>
-                <div class="logo">
-                  <svg class="show" aria-hidden="true">
-                    <use [attr.xlink:href]="'assets/form/sprite.svg#unfold'"></use>
-                  </svg>
-                  <svg class="hide" aria-hidden="true">
-                    <use [attr.xlink:href]="'assets/form/sprite.svg#fold'"></use>
-                  </svg>
-                </div>
-              </div>
-              <div class="detailsContainer" [@show]="showDigitalSecurity">
-                <div class="details" *ngFor="let skill of digitalCultureSecurity">
-                  {{ skill.text }}
+              <div class="detailsContainer" [@show]="showAdvancedSkills">
+                <div class="details" *ngFor="let help of structure.categoriesDisplay.advancedSkills">
+                  {{ help }}
                 </div>
               </div>
             </div>
@@ -469,10 +443,10 @@
       </div>
       <div class="content">
         <!-- TODO:refactor -->
-        <!-- <app-no-information *ngIf="structure.labelsQualifications.length === 0"></app-no-information>
-        <div *ngFor="let labels of structure.labelsQualifications">
+        <app-no-information *ngIf="structure.categories.labelsQualifications.length === 0"></app-no-information>
+        <div *ngFor="let labels of structure.categories.labelsQualifications">
           <app-logo-card [name]="labels"></app-logo-card>
-        </div> -->
+        </div>
       </div>
     </div>
 
@@ -488,13 +462,15 @@
         ></app-button>
       </div>
       <div class="content">
-        <!-- TODO:refactor -->
-        <!-- <app-no-information
-          *ngIf="filterOtherServices(structure.equipmentsAndServices).length === 0"
+        <app-no-information
+          *ngIf="
+            structure.categoriesDisplay.equipmentsServices &&
+            structure.categoriesDisplay.equipmentsServices.length === 0
+          "
         ></app-no-information>
-        <div *ngFor="let equipement of filterOtherServices(structure.equipmentsAndServices)" class="list">
-          <p>{{ getOtherServicesLabel(equipement) }}</p>
-        </div> -->
+        <div *ngFor="let equipement of structure.categoriesDisplay.equipmentsServices" class="list">
+          <p>{{ equipement }}</p>
+        </div>
       </div>
     </div>
 
diff --git a/src/app/profile/structure-edition-summary/structure-edition-summary.component.scss b/src/app/profile/structure-edition-summary/structure-edition-summary.component.scss
index 50f5790ca..87d469cb4 100644
--- a/src/app/profile/structure-edition-summary/structure-edition-summary.component.scss
+++ b/src/app/profile/structure-edition-summary/structure-edition-summary.component.scss
@@ -163,7 +163,7 @@
     border-top: 1px solid $grey-4;
     p.warning {
       color: $orange-warning;
-      margin: 1rem 0 0 0;
+      margin: 1rem;
     }
     .buttons {
       display: flex;
diff --git a/src/app/profile/structure-edition-summary/structure-edition-summary.component.ts b/src/app/profile/structure-edition-summary/structure-edition-summary.component.ts
index d4389a18b..95cdb0dba 100644
--- a/src/app/profile/structure-edition-summary/structure-edition-summary.component.ts
+++ b/src/app/profile/structure-edition-summary/structure-edition-summary.component.ts
@@ -10,12 +10,9 @@ import { StructureService } from '../../services/structure.service';
 import { ButtonType } from '../../shared/components/button/buttonType.enum';
 import { Demarches } from '../../shared/enum/demarches.enum';
 import { FreeWorkshop } from '../../shared/enum/freeWorkshop.enum';
-import { OtherServices } from '../../shared/enum/otherServices.enum';
 import { AccessModality } from '../../structure-list/enum/access-modality.enum';
 import { Equipment } from '../../structure-list/enum/equipment.enum';
-import { PublicCategorie } from '../../structure-list/enum/public.enum';
 import { Category } from '../../structure-list/models/category.model';
-import { Module } from '../../structure-list/models/module.model';
 import { SearchService } from '../../structure-list/services/search.service';
 import { formUtils, IStructureSummary } from '../../utils/formUtils';
 import { Utils } from '../../utils/utils';
@@ -42,22 +39,19 @@ export class StructureEditionSummaryComponent implements OnInit {
   public equipmentEnum = Equipment;
 
   //Digital learning
+  public categories: Category[] = [];
   public baseSkillssReferentiel: Category;
   public accessRightsReferentiel: Category;
   public digitalCultureSecuritysReferentiel: Category;
   public socialAndProfessionalsReferentiel: Category;
   public parentingHelpsReferentiel: Category;
-  public baseSkills: Module[];
-  public accessRights: Module[];
-  public parentingHelp: Module[];
-  public socialAndProfessional: Module[];
-  public digitalCultureSecurity: Module[];
+  // public baseSkills: Module[];
+  // public accessRights: Module[];
+  // public parentingHelp: Module[];
+  // public socialAndProfessional: Module[];
+  // public digitalCultureSecurity: Module[];
   public showBaseSkills = false;
-  public showAccessRights = false;
-  public showParentingHelp = false;
-  public showSocialAndProfessional = false;
-  public showDigitalSecurity = false;
-
+  public showAdvancedSkills = false;
   public mailHref: string;
   // set to true when last updated date of a structure is > 6 months
   public isUpdateStructure = false;
@@ -84,13 +78,13 @@ export class StructureEditionSummaryComponent implements OnInit {
         const sixMonthsAgo = DateTime.local().minus({ month: 6 });
         if (updatedAt < sixMonthsAgo) this.isUpdateStructure = true;
       }
-      this.initForm();
     });
   }
 
   public goBack(): void {
     history.back();
   }
+
   public goToEdit(step: structureFormStep): void {
     this.router.navigate(['/form/structure', this.structure._id, structureFormStep[step]]);
   }
@@ -126,14 +120,16 @@ export class StructureEditionSummaryComponent implements OnInit {
   }
 
   public containsHours(): boolean {
-    let contains = false;
     for (const day in this.structure.hours) {
-      if (this.structure.hours[day].time.length) contains = true;
+      if (this.structure.hours[day].time.length) return true;
     }
-    return contains;
+    return false;
   }
 
-  public isFieldValid(field: string): boolean {
+  public isFieldValid(field: string, theme?: string): boolean {
+    if (theme) {
+      return this.structureForm.get(theme).get([field]).valid;
+    }
     return this.structureForm.get([field]).valid;
   }
 
@@ -145,100 +141,35 @@ export class StructureEditionSummaryComponent implements OnInit {
     return this.utils.hasWebsite(this.structure);
   }
 
-  public getPublicLabel(tagetPublic: PublicCategorie): string {
-    return this.utils.getPublicLabel(tagetPublic);
-  }
-
   public containsDigitalHelp(): boolean {
-    //TODO: refactor
-    // return !!this.structure.proceduresAccompaniment.length;
-    return false;
+    return (
+      this.structure.categoriesDisplay.onlineProcedures && this.structure.categoriesDisplay.onlineProcedures.length > 0
+    );
   }
 
   public getDigitalHelpLabel(digitalHelp: Demarches): string {
     return this.utils.getDigitalHelpLabel(digitalHelp);
   }
 
-  // Digital learning
-  private async initForm(): Promise<void> {
-    //TODO: refactor
-    // this.searchService.getCategoriesTraining().subscribe((referentiels) => {
-    //   referentiels.forEach((referentiel) => {
-    //     if (referentiel.isBaseSkills()) {
-    //       this.baseSkillssReferentiel = referentiel;
-    //     } else if (referentiel.isRigthtsAccess()) {
-    //       this.accessRightsReferentiel = referentiel;
-    //     } else if (referentiel.isDigitalCultureSecurity()) {
-    //       this.digitalCultureSecuritysReferentiel = referentiel;
-    //     } else if (referentiel.isParentingHelp()) {
-    //       this.parentingHelpsReferentiel = referentiel;
-    //     } else if (referentiel.isSocialAndProfessional()) {
-    //       this.socialAndProfessionalsReferentiel = referentiel;
-    //     }
-    //   });
-    //   this.setServiceCategories();
-    // });
-    // const index = this.structure.proceduresAccompaniment.indexOf('autres');
-    // if (index > -1) {
-    //   this.structure.proceduresAccompaniment.splice(index, 1);
-    // }
-  }
-
-  public setServiceCategories(): void {
-    // this.baseSkills = this.structure.baseSkills.map((skill) =>
-    //   lodash.find(this.baseSkillssReferentiel.modules, { id: skill })
-    // );
-    // this.accessRights = this.structure.accessRight.map((rights) =>
-    //   lodash.find(this.accessRightsReferentiel.modules, { id: rights })
-    // );
-    // this.parentingHelp = this.structure.parentingHelp.map((help) =>
-    //   lodash.find(this.parentingHelpsReferentiel.modules, { id: help })
-    // );
-    // this.socialAndProfessional = this.structure.socialAndProfessional.map((skill) =>
-    //   lodash.find(this.socialAndProfessionalsReferentiel.modules, { id: skill })
-    // );
-    // this.digitalCultureSecurity = this.structure.digitalCultureSecurity.map((skill) =>
-    //   lodash.find(this.digitalCultureSecuritysReferentiel.modules, { id: skill })
-    // );
-  }
   public isBaseSkills(): boolean {
-    return this.baseSkills && this.baseSkills[0] !== undefined;
-  }
-  public isAccessRights(): boolean {
-    return this.accessRights && this.accessRights[0] !== undefined;
-  }
-  public isParentingHelp(): boolean {
-    return this.parentingHelp && this.parentingHelp[0] !== undefined;
-  }
-  public isSocialAndProfessional(): boolean {
-    return this.socialAndProfessional && this.socialAndProfessional[0] !== undefined;
+    return this.structure.categories.baseSkills !== undefined && this.structure.categories.baseSkills.length > 0;
   }
-  public isDigitalSecurity(): boolean {
-    return this.digitalCultureSecurity && this.digitalCultureSecurity[0] !== undefined;
-  }
-  public containsDigitalLearning(): boolean {
+  public isAdvancedSkills(): boolean {
     return (
-      this.isAccessRights() ||
-      this.isBaseSkills() ||
-      this.isDigitalSecurity() ||
-      this.isParentingHelp() ||
-      this.isSocialAndProfessional()
+      this.structure.categories.advancedSkills !== undefined && this.structure.categories.advancedSkills.length > 0
     );
   }
+
+  public containsDigitalLearning(): boolean {
+    return this.isBaseSkills() || this.isAdvancedSkills();
+  }
+
   public toggleBaseSkills(): void {
     this.showBaseSkills = !this.showBaseSkills;
   }
-  public toggleAccessRights(): void {
-    this.showAccessRights = !this.showAccessRights;
-  }
-  public toggleParentingHelp(): void {
-    this.showParentingHelp = !this.showParentingHelp;
-  }
-  public toggleSocialAndProfessional(): void {
-    this.showSocialAndProfessional = !this.showSocialAndProfessional;
-  }
-  public toggleDigitalSecurity(): void {
-    this.showDigitalSecurity = !this.showDigitalSecurity;
+
+  public toogleAdvancedSkills(): void {
+    this.showAdvancedSkills = !this.showAdvancedSkills;
   }
 
   public getWorkshopPricingLabel(freeWorkshop: FreeWorkshop): string {
@@ -265,12 +196,4 @@ export class StructureEditionSummaryComponent implements OnInit {
   public getEquipmentsLabelAndValue(equipment: Equipment, number: number): string {
     return this.utils.getEquipmentsLabelAndValue(equipment, number);
   }
-
-  public filterOtherServices(equipmentsAndServices: string[]) {
-    return this.utils.filterOtherServices(equipmentsAndServices);
-  }
-
-  public getOtherServicesLabel(otherService: OtherServices) {
-    return this.utils.getOtherServicesLabel(otherService);
-  }
 }
diff --git a/src/app/resolvers/structure.resolver.ts b/src/app/resolvers/structure.resolver.ts
index a7eb4d9ce..321b7a9bd 100644
--- a/src/app/resolvers/structure.resolver.ts
+++ b/src/app/resolvers/structure.resolver.ts
@@ -1,22 +1,71 @@
 import { Injectable } from '@angular/core';
 import { ActivatedRouteSnapshot, Resolve, Router } from '@angular/router';
-import { Observable } from 'rxjs';
-import { map, catchError } from 'rxjs/operators';
+import { forkJoin, Observable, Subject } from 'rxjs';
+import { catchError, map } from 'rxjs/operators';
 import { Structure } from '../models/structure.model';
 import { StructureService } from '../services/structure.service';
+import { Category } from '../structure-list/models/category.model';
+import { Module } from '../structure-list/models/module.model';
+import { SearchService } from '../structure-list/services/search.service';
 
 @Injectable()
 export class StructureResolver implements Resolve<Structure> {
-  constructor(private structureService: StructureService, private router: Router) {}
+  public subject: Subject<Structure> = new Subject();
+
+  constructor(
+    private structureService: StructureService,
+    private searchService: SearchService,
+    private router: Router
+  ) {}
 
   resolve(route: ActivatedRouteSnapshot): Observable<Structure> {
     const structureId = route.params.id;
-    return this.structureService.getStructure(structureId).pipe(
-      map((res) => res),
-      catchError(() => {
-        this.router.navigate(['/home']);
-        return new Observable<Structure>();
-      })
-    );
+
+    if (structureId) {
+      forkJoin({
+        structure: this.structureService.getStructure(structureId).pipe(
+          map((res) => res),
+          catchError(() => {
+            this.router.navigate(['/home']);
+            return new Observable<Structure>();
+          })
+        ),
+        categories: this.searchService.getCategories(),
+      }).subscribe((res) => {
+        const structure = this.setServiceCategories(res.categories, res.structure);
+        // return res;
+        this.setSubject(structure);
+      });
+
+      return this.getSubject();
+    }
+  }
+
+  setSubject(structure: Structure): void {
+    this.subject.next(structure);
+  }
+
+  getSubject(): Observable<Structure> {
+    return this.subject.asObservable();
+  }
+
+  public setServiceCategories(categories: Category[], structure: Structure): Structure {
+    categories.forEach((category) => {
+      const structureModuleIds = structure.categories[category.id];
+      if (structureModuleIds) {
+        const moduleNames = category.modules
+          .map((module: Module) => {
+            if (structureModuleIds.includes(module.id)) {
+              return module.name;
+            }
+          })
+          .filter((value) => value !== undefined);
+        structure.categoriesDisplay = {
+          ...structure.categoriesDisplay,
+          [category.id]: moduleNames,
+        };
+      }
+    });
+    return structure;
   }
 }
diff --git a/src/app/services/structure.service.ts b/src/app/services/structure.service.ts
index bfbf33a03..168a2c6b6 100644
--- a/src/app/services/structure.service.ts
+++ b/src/app/services/structure.service.ts
@@ -27,10 +27,6 @@ export class StructureService {
       .pipe(map((item: Structure) => new Structure(item)));
   }
   public createStructure(structure: Structure, profile: User): Observable<Structure> {
-    console.log(
-      '🚀 ~ file: structure.service.ts ~ line 30 ~ StructureService ~ createStructure ~ structure',
-      structure
-    );
     const idUser = profile.email;
     return this.http.post(`${this.baseUrl}`, { structure, idUser }).pipe(map((item: Structure) => new Structure(item)));
   }
@@ -41,7 +37,6 @@ export class StructureService {
       structure.dataShareConsentDate = new Date().toString();
     }
     if (!structureId) structureId = structure._id;
-    // const id = structure._id;
     delete structure._id; // id should not be provided for update
     return this.http
       .patch(`${this.baseUrl}/${structureId}`, structure)
diff --git a/src/app/shared/enum/labels.emum.ts b/src/app/shared/enum/labels.emum.ts
index 433778012..05be318fc 100644
--- a/src/app/shared/enum/labels.emum.ts
+++ b/src/app/shared/enum/labels.emum.ts
@@ -5,7 +5,7 @@ export enum Labels {
   aidantsConnect = 'Aidants connect',
   fabriqueDeTerritoire = 'Fabrique de territoire',
   demarcheMetropolitaine = 'Démarches Métropolitaines',
-  pix = 'Évaluation des compétences numériques',
+  pix = 'Pix',
   conseillerNumFranceServices = 'Conseiller numérique',
   monEspaceSante = 'Mon espace santé',
   numRelay = 'Les relais numériques',
diff --git a/src/app/structure-list/components/structure-details/structure-details.component.html b/src/app/structure-list/components/structure-details/structure-details.component.html
index dab28afe1..2a35cdef6 100644
--- a/src/app/structure-list/components/structure-details/structure-details.component.html
+++ b/src/app/structure-list/components/structure-details/structure-details.component.html
@@ -236,7 +236,11 @@
       >
         <h2>Publics Accueillis</h2>
         <div fxLayout="column" fxLayoutGap="8px" class="services-block">
-          <div *ngIf="structure.categoriesDisplay.age && structure.categoriesDisplay.age.length">
+          <div
+            *ngIf="structure.categoriesDisplay.age && structure.categoriesDisplay.age.length"
+            fxLayout="column"
+            fxLayoutGap="8px"
+          >
             <p *ngFor="let label of structure.categoriesDisplay.age.sort()" class="no-margin-bottom">
               {{ label }}
             </p>
@@ -246,19 +250,29 @@
               structure.categoriesDisplay.languageAndIlliteracy &&
               structure.categoriesDisplay.languageAndIlliteracy.length
             "
+            fxLayout="column"
+            fxLayoutGap="8px"
           >
             <p *ngFor="let label of structure.categoriesDisplay.languageAndIlliteracy.sort()" class="no-margin-bottom">
               {{ label }}
             </p>
           </div>
 
-          <div *ngIf="structure.categoriesDisplay.handicaps && structure.categoriesDisplay.handicaps.length">
+          <div
+            *ngIf="structure.categoriesDisplay.handicaps && structure.categoriesDisplay.handicaps.length"
+            fxLayout="column"
+            fxLayoutGap="8px"
+          >
             <p *ngFor="let label of structure.categoriesDisplay.handicaps.sort()" class="no-margin-bottom">
               {{ label }}
             </p>
           </div>
 
-          <div *ngIf="structure.categoriesDisplay.publicOther && structure.categoriesDisplay.publicOther.length">
+          <div
+            *ngIf="structure.categoriesDisplay.publicOther && structure.categoriesDisplay.publicOther.length"
+            fxLayout="column"
+            fxLayoutGap="8px"
+          >
             <li *ngFor="let label of structure.categoriesDisplay.publicOther.sort()" class="no-margin-bottom">
               {{ label }}
             </li>
diff --git a/src/app/structure-list/components/structure-details/structure-details.component.ts b/src/app/structure-list/components/structure-details/structure-details.component.ts
index aed341d73..3219361db 100644
--- a/src/app/structure-list/components/structure-details/structure-details.component.ts
+++ b/src/app/structure-list/components/structure-details/structure-details.component.ts
@@ -276,8 +276,6 @@ export class StructureDetailsComponent implements OnInit {
         };
       }
     });
-    console.log('END', this.structure);
-    console.log('END', this.categories);
   }
 
   public keepOriginalOrder = (a, b) => a.key;
diff --git a/src/app/structure-list/components/structure-list-search/structure-list-search.component.ts b/src/app/structure-list/components/structure-list-search/structure-list-search.component.ts
index 4388bfbaf..d2eb15a81 100644
--- a/src/app/structure-list/components/structure-list-search/structure-list-search.component.ts
+++ b/src/app/structure-list/components/structure-list-search/structure-list-search.component.ts
@@ -129,6 +129,7 @@ export class StructureListSearchComponent implements OnInit {
   }
 
   // Check if some modules is checked on filter and store number of modules checked
+  //TODO: refactor
   public countCheckFiltersOnModules(checkedModules: Module[]): void {
     this.numberAccompanimentChecked = checkedModules.filter(
       (module) => module.name === 'proceduresAccompaniment'
diff --git a/src/app/utils/formUtils.ts b/src/app/utils/formUtils.ts
index 707fab6a1..a55f2670c 100644
--- a/src/app/utils/formUtils.ts
+++ b/src/app/utils/formUtils.ts
@@ -126,10 +126,11 @@ export class formUtils {
         handicaps: this.loadArrayForCheckbox(structure.categories.handicaps, true),
         age: this.loadArrayForCheckbox(structure.categories.age, true),
         languageAndIlliteracy: this.loadArrayForCheckbox(structure.categories.languageAndIlliteracy, true),
+        selfServiceMaterial: this.loadArrayForCheckbox(structure.categories.selfServiceMaterial, true),
         publicOthers: this.loadArrayForCheckbox(structure.categories.publicOthers, true),
         equipmentsAndServices: this.loadArrayForCheckbox(structure.categories.equipmentsServices, false),
         baseSkills: new UntypedFormControl(structure.categories.baseSkills),
-        solidarityMaterial: this.loadArrayForCheckbox(structure.categories.solidarityMaterial, false),
+        // solidarityMaterial: this.loadArrayForCheckbox(structure.categories.solidarityMaterial, false),
         advancedSkills: new UntypedFormControl(structure.categories.advancedSkills),
       }),
       //TODO: remettre ou migrer les données de accompagnements à distance
@@ -150,7 +151,7 @@ export class formUtils {
         ]
       ),
       nbPrinters: new UntypedFormControl(
-        structure.categories.selfServiceMaterial.includes('wifi') ? structure.nbPrinters : 0,
+        structure.categories.selfServiceMaterial.includes('printer') ? structure.nbPrinters : 0,
         [
           Validators.required,
           Validators.pattern(CustomRegExp.NO_NEGATIVE_NUMBER),
diff --git a/src/app/utils/utils.ts b/src/app/utils/utils.ts
index 1010947a0..c502cfa9e 100644
--- a/src/app/utils/utils.ts
+++ b/src/app/utils/utils.ts
@@ -96,7 +96,7 @@ export class Utils {
   }
 
   public hasWifi(equipmentsAndServices: string[]) {
-    return equipmentsAndServices.includes('wifi');
+    return equipmentsAndServices.includes('wifiEnAccesLibre');
   }
 
   /**
diff --git a/src/assets/form/sprite.svg b/src/assets/form/sprite.svg
index 1d5970678..d8d219fd8 100644
--- a/src/assets/form/sprite.svg
+++ b/src/assets/form/sprite.svg
@@ -947,63 +947,20 @@
       d="M3.74338 30.3129C3.24172 30.3129 2.84934 29.8907 2.84934 29.3891V11.2152C2.84934 10.4205 3.39073 9.86424 4.1606 9.86424C5.02484 9.86424 5.6755 10.5 5.6755 11.3444V15.7053H6.53974V11.3394C6.53974 10.8079 6.62914 10.5596 6.92219 10.2765C7.21027 10.0033 7.59272 9.85431 7.99504 9.85431C8.79471 9.85431 9.40067 10.495 9.40067 11.3394V15.7053H10.255V11.2649C10.255 10.0579 9.20199 9 8.00497 9C7.41888 9 6.80298 9.25828 6.3659 9.68543C6.25166 9.7947 6.17219 9.88907 6.09272 10.0132C6.02815 9.92384 5.96358 9.84934 5.87417 9.75497L5.86424 9.74503C5.65066 9.54139 5.41225 9.36755 5.17384 9.24338L5.16391 9.23841C4.8659 9.1043 4.53311 9.03477 4.18543 9.03477C2.93874 9.03477 2 10.0331 2 11.3593V21.9387V29.399C2 30.3626 2.78477 31.1523 3.75331 31.1523H10.255V30.3229L3.74338 30.3129Z"
       fill="#0C419A" />
   </symbol>
-
-  <symbol id="pix" width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
+  <symbol id="pix" width="40" height="40" viewBox="0 -10 240 198" xmlns="http://www.w3.org/2000/svg">
     <path
-      d="M36.8181 24.6159L37.1508 24.1342H36.0482L35.7303 24.6159H33.9224V31.1375H37.9853V30.308H34.7767V27.5961H38.0002V26.7666H34.7767V25.4454H38.0002V24.6159H36.8181Z"
-      fill="#E83182" />
-    <path d="M28.1162 25.4454H30.2669V31.1375H31.141V25.4454H33.3414V24.616H28.1162V25.4454Z" fill="#E83182" />
+      d="M42.555 61.426l3.097-3.758c2.756-3.178 4.715-6.246 5.876-9.27l23.577 28.787c4.279 5.483 4.075 6.499-3.057 6.499h-2.445c-7.132 0-9.781-1.422-14.06-6.5L42.555 61.427zm0-39.159L55.543 6.509c4.279-5.078 6.928-6.5 14.06-6.5h2.445c7.132 0 7.336 1.016 3.057 6.5L51.528 35.294c-1.161-3.022-3.12-6.091-5.876-9.269l-3.097-3.758z"
+      fill="#12A3FF" transform="translate(143 58.5)"></path>
     <path
-      d="M25.3146 24.447C23.7947 24.447 22.5083 25.7632 22.5083 27.3179V31.1374H23.3626V27.3179C23.3626 26.1805 24.2169 25.2914 25.3096 25.2914C26.4123 25.2914 27.207 26.1755 27.207 27.3924V31.1374H28.0712V27.3924C28.0812 25.7682 26.8394 24.447 25.3146 24.447Z"
-      fill="#E83182" />
+      d="M41.866 83.684c7.131 0 7.335-1.016 3.056-6.5L20.47 47.33c-1.834-2.234-2.853-4.062-2.853-5.484 0-1.624 1.019-3.452 2.853-5.483L44.922 6.51c4.28-5.484 4.075-6.5-3.056-6.5H39.42c-7.132 0-9.78 1.422-14.06 6.5L6.613 29.255c-7.947 9.139-7.947 16.044 0 25.183L25.36 77.185c4.28 5.077 6.928 6.499 14.06 6.499h2.446z"
+      fill="#FFBE00" transform="matrix(-1 0 0 1 191.414 58.5)"></path>
     <path
-      d="M18.7238 24.447C17.2039 24.447 15.9175 25.7632 15.9175 27.3179V31.1374H16.7718V28.6689H20.6211V31.1374H21.4854V27.3924C21.4854 25.7682 20.2436 24.447 18.7238 24.447ZM20.6211 27.8444H16.7718V27.3179C16.7718 26.1805 17.6261 25.2914 18.7188 25.2914C19.8215 25.2914 20.6162 26.1755 20.6162 27.3924V27.8444H20.6211Z"
-      fill="#E83182" />
-    <path
-      d="M15.0478 29.1556C15.0478 28.202 14.5114 27.4967 13.4534 27.0646C12.2614 26.5579 12.162 26.3791 12.162 25.9718C12.162 25.6788 12.2813 25.3261 12.8624 25.3261C13.3293 25.3261 13.5329 25.505 13.6074 25.9917L13.6422 26.2301L14.4766 26.0761L14.4369 25.8477C14.2829 24.9785 13.7117 24.4768 12.8723 24.4768C11.9584 24.4768 11.3177 25.1175 11.3177 26.0364C11.3177 26.4735 11.4816 26.8758 11.7746 27.1689C12.018 27.4073 12.2663 27.5513 12.8673 27.8295C13.3988 28.0629 13.6322 28.197 13.8309 28.3808C14.0693 28.6242 14.1885 28.9023 14.1885 29.2351C14.1885 29.9454 13.6322 30.4768 12.8922 30.4768C12.167 30.4768 11.6207 30.0099 11.6207 29.394V28.6838H10.7812V29.399C10.7812 30.447 11.7399 31.3311 12.8723 31.3311C14.0743 31.3311 15.0478 30.3576 15.0478 29.1556Z"
-      fill="#E83182" />
+      d="M17 168.22c0 6.063 1.521 7.58 7.605 7.58h2.028c6.083 0 7.604-1.517 7.604-7.58v-35.202c4.563 7.242 12.844 10.948 24.843 10.948 23.49 0 35.15-12.296 35.15-36.718V92.594c0-24.423-12.505-35.876-38.7-35.876-24.335 0-38.53 11.79-38.53 35.876v75.626zm59.824-60.636c0 14.148-4.732 20.044-21.124 20.044-16.73 0-21.463-6.064-21.463-20.044V93.1c0-14.148 5.07-20.212 21.463-20.212 16.73 0 21.124 6.064 21.124 20.212v14.485z"
+      fill="#12A3FF"></path>
     <path
-      d="M36.0429 22.5149H32.8343V19.798H36.0628V18.9685H32.8343V17.6473H36.0429V16.8179H31.98V23.3444H36.0429V22.5149Z"
-      fill="#E83182" />
-    <path
-      d="M30.5747 21.9537C29.8049 22.505 29.3728 22.6838 28.7817 22.6838C27.6641 22.6838 26.7403 21.9835 26.3976 20.9851C26.3877 20.9503 26.3728 20.9205 26.3628 20.8858V20.8808C26.2933 20.6424 26.2536 20.3841 26.2536 20.1209C26.2536 19.8527 26.2933 19.5993 26.3628 19.3609V19.356C26.3728 19.3212 26.3877 19.2864 26.3976 19.2517C26.7403 18.2533 27.6641 17.558 28.7817 17.558C29.3728 17.558 29.8098 17.7368 30.5747 18.2881L30.7685 18.4272L31.2403 17.7268L31.0565 17.5927C30.1675 16.947 29.5516 16.7086 28.7767 16.7086C28.7718 16.7086 28.7718 16.7086 28.7668 16.7086C27.8777 16.7086 27.0383 17.0662 26.3976 17.7169C25.7569 18.3626 25.4092 19.2169 25.4092 20.1109C25.4092 20.1159 25.4092 20.1209 25.4092 20.1258C25.4092 20.1308 25.4092 20.1358 25.4092 20.1407C25.4092 21.0348 25.7618 21.8841 26.3976 22.5348C27.0383 23.1854 27.8777 23.5431 28.7668 23.5431C28.7718 23.5431 28.7718 23.5431 28.7767 23.5431C29.5516 23.5431 30.1675 23.3046 31.0565 22.659L31.2403 22.5248L30.7685 21.8245L30.5747 21.9537Z"
-      fill="#E83182" />
-    <path
-      d="M21.9865 16.649C20.4666 16.649 19.1802 17.9653 19.1802 19.5199V23.3394H20.0345V20.8709H23.8838V23.3394H24.7481V19.5944C24.7481 17.9702 23.5113 16.649 21.9865 16.649ZM20.0345 20.0514V19.5249C20.0345 18.3875 20.8888 17.4984 21.9815 17.4984C23.0842 17.4984 23.8789 18.3825 23.8789 19.5994V20.0514H20.0345Z"
-      fill="#E83182" />
-    <path
-      d="M14.8095 21.4173H16.3293C17.5264 21.4173 18.6538 20.3196 18.6538 19.1574C18.6538 18.611 18.3608 17.9603 17.9237 17.5332C17.7101 17.3295 17.4568 17.1656 17.1687 17.0415C16.836 16.8875 16.528 16.813 16.2499 16.813H13.9502V23.3395H14.8045V21.4173H14.8095ZM14.8095 17.6474H16.2399C17.124 17.6474 17.7946 18.2931 17.7946 19.1524C17.7946 19.9719 17.1588 20.5878 16.3144 20.5878H14.8095V17.6474Z"
-      fill="#E83182" />
-    <path
-      d="M13.0761 21.3626C13.0761 20.409 12.5397 19.7037 11.4818 19.2716C10.2897 18.765 10.1904 18.5862 10.1904 18.1789C10.1904 17.8858 10.3096 17.5332 10.8907 17.5332C11.3576 17.5332 11.5612 17.712 11.6357 18.1987L11.6705 18.4371L12.5049 18.2832L12.4652 18.0547C12.3112 17.1855 11.74 16.6838 10.9006 16.6838C9.98672 16.6838 9.34599 17.3246 9.34599 18.2434C9.34599 18.6805 9.5099 19.0828 9.80295 19.3759C10.0463 19.6143 10.2947 19.7583 10.8957 20.0365C11.4271 20.2699 11.6606 20.404 11.8592 20.5878C12.0977 20.8312 12.2169 21.1093 12.2169 21.4421C12.2169 22.1524 11.6606 22.6838 10.9205 22.6838C10.1953 22.6838 9.64897 22.217 9.64897 21.6011V20.8908H8.80957V21.6011C8.80957 22.6491 9.76818 23.5332 10.9006 23.5332C12.0977 23.5381 13.0761 22.5597 13.0761 21.3626Z"
-      fill="#E83182" />
-    <path
-      d="M4.95538 17.697H8.16399V16.8676H4.10107V23.394H8.16399V22.5646H4.95538V19.8477H8.18386V19.0182H4.95538V17.697Z"
-      fill="#E83182" />
-    <path
-      d="M37.9946 16.654C37.9946 15.6904 37.2098 14.9007 36.2413 14.9007L24.5939 14.8808V11.9504C24.5939 10.3262 22.8853 9.005 21.3605 9.005C19.8406 9.005 18.5542 10.3212 18.5542 11.8759V15.6954H19.4085V11.8759C19.4085 10.7384 20.2628 9.84938 21.3555 9.84938C22.4582 9.84938 23.7247 10.7335 23.7247 11.9504V15.7153L36.2363 15.7053C36.738 15.7053 37.1304 16.1524 37.1304 16.654V23.3444H37.9847V16.654H37.9946Z"
-      fill="#0C419A" />
-    <path
-      d="M14.4125 15.909C15.3115 15.909 16.1609 15.5464 16.8065 14.8958C17.4522 14.2451 17.8049 13.3858 17.8049 12.4769C17.8049 11.5779 17.4473 10.7286 16.8016 10.0829C16.1509 9.4322 15.2966 9.07458 14.3877 9.07458C12.545 9.07458 10.9854 10.6491 10.9854 12.5117C10.9903 14.3494 12.5599 15.909 14.4125 15.909ZM14.3976 9.91896C15.838 9.91896 16.9705 11.0464 16.9705 12.4819C16.9705 13.9322 15.8479 15.0696 14.4175 15.0696C12.9721 15.0696 11.8397 13.9421 11.8397 12.5067C11.8347 11.0564 12.9622 9.91896 14.3976 9.91896Z"
-      fill="#0C419A" />
-    <path
-      d="M3.74338 30.3129C3.24172 30.3129 2.84934 29.8907 2.84934 29.3891V11.2152C2.84934 10.4205 3.39073 9.86424 4.1606 9.86424C5.02484 9.86424 5.6755 10.5 5.6755 11.3444V15.7053H6.53974V11.3394C6.53974 10.8079 6.62914 10.5596 6.92219 10.2765C7.21027 10.0033 7.59272 9.85431 7.99504 9.85431C8.79471 9.85431 9.40067 10.495 9.40067 11.3394V15.7053H10.255V11.2649C10.255 10.0579 9.20199 9 8.00497 9C7.41888 9 6.80298 9.25828 6.3659 9.68543C6.25166 9.7947 6.17219 9.88907 6.09272 10.0132C6.02815 9.92384 5.96358 9.84934 5.87417 9.75497L5.86424 9.74503C5.65066 9.54139 5.41225 9.36755 5.17384 9.24338L5.16391 9.23841C4.8659 9.1043 4.53311 9.03477 4.18543 9.03477C2.93874 9.03477 2 10.0331 2 11.3593V21.9387V29.399C2 30.3626 2.78477 31.1523 3.75331 31.1523H10.255V30.3229L3.74338 30.3129Z"
-      fill="#0C419A" />
+      d="M110.486 134.402c0 6.063 1.52 7.58 7.605 7.58h2.196c6.084 0 7.605-1.517 7.605-7.58V66.018c0-6.063-1.52-7.579-7.605-7.579h-2.196c-6.084 0-7.605 1.516-7.605 7.58v68.383zm1.183-94.153c4.225 4.042 10.984 4.042 15.04 0 4.225-4.211 4.225-10.948 0-14.99-4.056-4.212-10.815-4.212-15.04 0-4.225 4.042-4.225 10.779 0 14.99z"
+      fill="#12A3FF"></path>
   </symbol>
-  <!-- <symbol id="pix" width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
-    <path fill-rule="evenodd" clip-rule="evenodd"
-      d="M30.9263 22.9877L31.4425 22.3613C31.9018 21.8317 32.2282 21.3202 32.4217 20.8165L36.3512 25.6141C37.0644 26.528 37.0304 26.6972 35.8418 26.6972H35.4342C34.2456 26.6972 33.8041 26.4603 33.0909 25.6141L30.9263 22.9877ZM30.9263 16.4611L33.0909 13.8347C33.8041 12.9885 34.2456 12.7516 35.4342 12.7516H35.8418C37.0304 12.7516 37.0644 12.9208 36.3512 13.8347L32.4217 18.6324C32.2282 18.1286 31.9018 17.6171 31.4425 17.0875L30.9263 16.4611Z"
-      fill="#3D68FF" />
-    <path fill-rule="evenodd" clip-rule="evenodd"
-      d="M24.9252 26.6972C23.7365 26.6972 23.7025 26.528 24.4157 25.6141L28.4911 20.6383C28.7968 20.266 28.9666 19.9613 28.9666 19.7244C28.9666 19.4536 28.7968 19.149 28.4911 18.8105L24.4157 13.8347C23.7025 12.9208 23.7365 12.7516 24.9252 12.7516H25.3327C26.5213 12.7516 26.9629 12.9885 27.6761 13.8347L30.8005 17.6258C32.1251 19.149 32.1251 20.2998 30.8005 21.823L27.6761 25.6141C26.9629 26.4603 26.5213 26.6972 25.3327 26.6972H24.9252Z"
-      fill="#FF9F00" />
-    <path fill-rule="evenodd" clip-rule="evenodd"
-      d="M2.8335 31.0366C2.8335 32.0472 3.08699 32.2998 4.10096 32.2998H4.43892C5.4529 32.2998 5.70639 32.0472 5.70639 31.0366V25.1696C6.46687 26.3766 7.84701 26.9942 9.84676 26.9942C13.7618 26.9942 15.7052 24.945 15.7052 20.8746V18.4323C15.7052 14.3619 13.621 12.453 9.25525 12.453C5.1994 12.453 2.8335 14.418 2.8335 18.4323V31.0366ZM12.8042 20.9307C12.8042 23.2887 12.0155 24.2713 9.28346 24.2713C6.49503 24.2713 5.70639 23.2607 5.70639 20.9307V18.5165C5.70639 16.1585 6.55139 15.1479 9.28346 15.1479C12.0718 15.1479 12.8042 16.1585 12.8042 18.5165V20.9307Z"
-      fill="#3D68FF" />
-    <path fill-rule="evenodd" clip-rule="evenodd"
-      d="M18.4145 25.4003C18.4145 26.4109 18.6679 26.6635 19.6819 26.6635H20.048C21.062 26.6635 21.3155 26.4109 21.3155 25.4003V14.0031C21.3155 12.9925 21.062 12.7399 20.048 12.7399H19.6819C18.6679 12.7399 18.4145 12.9925 18.4145 14.0031V25.4003ZM18.6116 9.7081C19.3158 10.3818 20.4424 10.3818 21.1184 9.7081C21.8225 9.00628 21.8225 7.88343 21.1184 7.20972C20.4424 6.50789 19.3158 6.50789 18.6116 7.20972C17.9075 7.88343 17.9075 9.00628 18.6116 9.7081Z"
-      fill="#3D68FF" />
-  </symbol> -->
 
 
-</svg>
\ No newline at end of file
+</svg>
diff --git a/src/assets/logos/autres.svg b/src/assets/logos/autres.svg
new file mode 100644
index 000000000..9cce52ab7
--- /dev/null
+++ b/src/assets/logos/autres.svg
@@ -0,0 +1,16 @@
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+  <rect width="16" height="16" rx="2" fill="white" />
+  <mask id="path-2-inside-1_2994_57" fill="white">
+    <path fill-rule="evenodd" clip-rule="evenodd"
+      d="M8.1222 3.73563C8.40285 3.97446 8.63725 4.2761 8.81588 4.63336C8.82048 4.64484 8.82737 4.65879 8.83442 4.67043C9.09409 5.22945 8.66267 5.86507 8.04805 5.85801L7.94587 5.85572C7.61191 5.85113 7.33355 5.63067 7.20593 5.32213C7.14573 5.17385 7.05272 5.05082 6.93216 4.95568C6.70022 4.75622 6.41021 4.66108 6.08559 4.65649C5.76098 4.65419 5.48262 4.75409 5.24133 4.93731C5.00004 5.12054 4.88162 5.41989 4.88408 5.82111L4.89801 12.1139C4.89801 12.6034 4.50353 13 4.01423 13C3.5246 13 3.13026 12.6055 3.13026 12.1162C3.13026 11.3825 3.13223 10.4301 3.13264 10.2274C3.13269 10.2033 3.13272 10.1898 3.13272 10.1885L3.11924 5.95291C3.0831 5.74321 3.00099 5.5522 2.868 5.38731C2.77664 5.26379 2.65656 5.16718 2.51025 5.10222C2.20597 4.96493 1.99437 4.68001 2.00011 4.34605L2.0011 4.24386C2.01356 3.6294 2.66248 3.21817 3.21296 3.49522C3.22428 3.5026 3.23789 3.50998 3.2492 3.5149C3.45847 3.62788 3.64738 3.75993 3.81453 3.90907C3.88865 3.82924 3.96816 3.7551 4.05359 3.68691C4.32966 3.45727 4.64509 3.28339 5.00694 3.16496C5.36895 3.04899 5.72146 2.99568 6.08331 3.00027C6.44516 3.00487 6.807 3.06523 7.16196 3.19055C7.51692 3.31801 7.83219 3.4991 8.1222 3.73563Z" />
+  </mask>
+  <path fill-rule="evenodd" clip-rule="evenodd"
+    d="M8.1222 3.73563C8.40285 3.97446 8.63725 4.2761 8.81588 4.63336C8.82048 4.64484 8.82737 4.65879 8.83442 4.67043C9.09409 5.22945 8.66267 5.86507 8.04805 5.85801L7.94587 5.85572C7.61191 5.85113 7.33355 5.63067 7.20593 5.32213C7.14573 5.17385 7.05272 5.05082 6.93216 4.95568C6.70022 4.75622 6.41021 4.66108 6.08559 4.65649C5.76098 4.65419 5.48262 4.75409 5.24133 4.93731C5.00004 5.12054 4.88162 5.41989 4.88408 5.82111L4.89801 12.1139C4.89801 12.6034 4.50353 13 4.01423 13C3.5246 13 3.13026 12.6055 3.13026 12.1162C3.13026 11.3825 3.13223 10.4301 3.13264 10.2274C3.13269 10.2033 3.13272 10.1898 3.13272 10.1885L3.11924 5.95291C3.0831 5.74321 3.00099 5.5522 2.868 5.38731C2.77664 5.26379 2.65656 5.16718 2.51025 5.10222C2.20597 4.96493 1.99437 4.68001 2.00011 4.34605L2.0011 4.24386C2.01356 3.6294 2.66248 3.21817 3.21296 3.49522C3.22428 3.5026 3.23789 3.50998 3.2492 3.5149C3.45847 3.62788 3.64738 3.75993 3.81453 3.90907C3.88865 3.82924 3.96816 3.7551 4.05359 3.68691C4.32966 3.45727 4.64509 3.28339 5.00694 3.16496C5.36895 3.04899 5.72146 2.99568 6.08331 3.00027C6.44516 3.00487 6.807 3.06523 7.16196 3.19055C7.51692 3.31801 7.83219 3.4991 8.1222 3.73563Z"
+    fill="black" />
+  <path
+    d="M8.81588 4.63336L9.74436 4.26197L9.72891 4.22335L9.71031 4.18615L8.81588 4.63336ZM8.1222 3.73563L8.77027 2.97405L8.76233 2.96729L8.75424 2.96069L8.1222 3.73563ZM8.83442 4.67043L9.74136 4.24916L9.71823 4.19936L9.68978 4.15239L8.83442 4.67043ZM8.04805 5.85801L8.02562 6.85782L8.03658 6.85795L8.04805 5.85801ZM7.94587 5.85572L7.96831 4.85593L7.95962 4.85581L7.94587 5.85572ZM7.20593 5.32213L6.27936 5.6983L6.28186 5.70434L7.20593 5.32213ZM6.93216 4.95568L6.28013 5.71388L6.29612 5.72764L6.31269 5.7407L6.93216 4.95568ZM6.08559 4.65649L6.09974 3.65656L6.09267 3.65651L6.08559 4.65649ZM4.88408 5.82111L5.88408 5.81889L5.88406 5.81498L4.88408 5.82111ZM4.89801 12.1139H5.89802L5.89801 12.1117L4.89801 12.1139ZM3.13264 10.2274L4.13264 10.2295V10.2295L3.13264 10.2274ZM3.13272 10.1885H4.13273L4.13272 10.1853L3.13272 10.1885ZM3.11924 5.95291L4.11924 5.94973L4.11897 5.86579L4.10472 5.78308L3.11924 5.95291ZM2.868 5.38731L2.06405 5.982L2.07648 5.9988L2.0896 6.01507L2.868 5.38731ZM2.51025 5.10222L2.09896 6.01375L2.10449 6.0162L2.51025 5.10222ZM2.00011 4.34605L3 4.36323L3.00007 4.35565L2.00011 4.34605ZM2.0011 4.24386L1.00124 4.22357L1.00114 4.23426L2.0011 4.24386ZM3.21296 3.49522L3.75923 2.65761L3.71243 2.62708L3.66252 2.60196L3.21296 3.49522ZM3.2492 3.5149L3.72428 2.63496L3.6869 2.61477L3.64793 2.59783L3.2492 3.5149ZM3.81453 3.90907L3.14877 4.65523L3.8803 5.30794L4.54736 4.58948L3.81453 3.90907ZM4.05359 3.68691L4.67742 4.46847L4.68532 4.46216L4.6931 4.45569L4.05359 3.68691ZM5.00694 3.16496L4.70186 2.21262L4.69589 2.21457L5.00694 3.16496ZM6.08331 3.00027L6.07062 4.00019L6.08331 3.00027ZM7.16196 3.19055L7.4999 2.24937L7.49487 2.2476L7.16196 3.19055ZM9.71031 4.18615C9.47533 3.71618 9.15961 3.30536 8.77027 2.97405L7.47412 4.4972C7.6461 4.64355 7.79918 4.83603 7.92146 5.08057L9.71031 4.18615ZM9.68978 4.15239C9.70227 4.17301 9.71184 4.19094 9.71917 4.20564C9.72642 4.22018 9.73513 4.23889 9.74436 4.26197L7.88741 5.00475C7.91231 5.067 7.94365 5.13 7.97907 5.18847L9.68978 4.15239ZM8.03658 6.85795C9.34886 6.87301 10.3269 5.50977 9.74136 4.24916L7.92749 5.0917C7.91553 5.06596 7.9088 5.03098 7.9123 4.99528C7.91551 4.96255 7.92626 4.93795 7.93753 4.92107C7.95921 4.88862 8.00447 4.85745 8.05953 4.85808L8.03658 6.85795ZM7.92344 6.85547L8.02562 6.85776L8.07048 4.85826L7.96831 4.85597L7.92344 6.85547ZM6.28186 5.70434C6.5363 6.3195 7.13483 6.84466 7.93212 6.85563L7.95962 4.85581C8.01532 4.85658 8.06334 4.87683 8.09362 4.89925C8.12074 4.91933 8.12861 4.93654 8.13001 4.93992L6.28186 5.70434ZM6.31269 5.7407C6.30608 5.73549 6.29843 5.72798 6.29144 5.71865C6.28446 5.70934 6.28078 5.70174 6.27938 5.69829L8.13249 4.94597C8.00766 4.63849 7.80943 4.3741 7.55163 4.17066L6.31269 5.7407ZM6.07144 5.65639C6.20328 5.65825 6.2551 5.69236 6.28013 5.71388L7.58418 4.19749C7.14533 3.82009 6.61714 3.66391 6.09974 3.65659L6.07144 5.65639ZM5.84609 5.73373C5.91804 5.67909 5.9828 5.65578 6.07852 5.65646L6.09267 3.65651C5.53916 3.6526 5.0472 3.82909 4.63658 4.1409L5.84609 5.73373ZM5.88406 5.81498C5.88342 5.71075 5.8992 5.67028 5.89912 5.67049C5.89865 5.67167 5.89442 5.68152 5.88388 5.69561C5.87309 5.71001 5.85984 5.72328 5.84609 5.73373L4.63658 4.1409C4.06194 4.57725 3.88044 5.23186 3.8841 5.82724L5.88406 5.81498ZM5.89801 12.1117L5.88407 5.81889L3.88408 5.82332L3.89802 12.1161L5.89801 12.1117ZM4.01423 14C5.0591 14 5.89801 13.1524 5.89801 12.1139H3.89801C3.89801 12.0544 3.94796 12 4.01423 12V14ZM2.13026 12.1162C2.13026 13.1578 2.97232 14 4.01423 14V12C4.07687 12 4.13026 12.0532 4.13026 12.1162H2.13026ZM2.13265 10.2253C2.13223 10.4279 2.13026 11.3813 2.13026 12.1162H4.13026C4.13026 11.3836 4.13222 10.4323 4.13264 10.2295L2.13265 10.2253ZM2.13272 10.1885C2.13272 10.1876 2.13272 10.1874 2.13272 10.1899C2.13272 10.1916 2.13271 10.1941 2.1327 10.1974C2.13269 10.2039 2.13267 10.2133 2.13265 10.2253L4.13264 10.2295C4.13269 10.2066 4.13272 10.1911 4.13272 10.1885H2.13272ZM2.11925 5.9561L2.13273 10.1917L4.13272 10.1853L4.11924 5.94973L2.11925 5.9561ZM2.0896 6.01507C2.1075 6.03727 2.12424 6.06745 2.13377 6.12275L4.10472 5.78308C4.04196 5.41896 3.89448 5.06714 3.64641 4.75954L2.0896 6.01507ZM2.10449 6.0162C2.10176 6.01499 2.09461 6.01133 2.08561 6.00413C2.07657 5.99691 2.06921 5.98897 2.06405 5.982L3.67196 4.79261C3.4762 4.52797 3.21809 4.32235 2.91601 4.18824L2.10449 6.0162ZM1.00026 4.32886C0.986559 5.12597 1.49261 5.74014 2.09896 6.01373L2.92153 4.19072C2.92467 4.19213 2.94155 4.20046 2.96076 4.22816C2.98222 4.25911 3.00092 4.30768 2.99997 4.36323L1.00026 4.32886ZM1.00114 4.23426L1.00016 4.33644L3.00007 4.35565L3.00105 4.25346L1.00114 4.23426ZM3.66252 2.60196C2.42094 1.97711 1.02791 2.91194 1.0013 4.22357L3.00089 4.26414C2.99977 4.31919 2.96721 4.36331 2.93425 4.38386C2.91708 4.39456 2.89219 4.40453 2.85939 4.40671C2.82361 4.40908 2.78882 4.40126 2.76341 4.38847L3.66252 2.60196ZM3.64793 2.59783C3.67351 2.60895 3.69365 2.61924 3.70822 2.62715C3.72321 2.63529 3.74026 2.64523 3.75923 2.65761L2.66669 4.33283C2.72103 4.36826 2.78379 4.40297 2.85048 4.43197L3.64793 2.59783ZM4.4803 3.16291C4.25241 2.95958 3.99897 2.78326 3.72428 2.63496L2.77413 4.39484C2.91797 4.4725 3.04235 4.56028 3.14877 4.65523L4.4803 3.16291ZM3.42977 2.90535C3.30435 3.00545 3.18855 3.11358 3.0817 3.22866L4.54736 4.58948C4.58875 4.5449 4.63196 4.50476 4.67742 4.46847L3.42977 2.90535ZM4.69589 2.21457C4.21857 2.37079 3.79076 2.60479 3.41408 2.91813L4.6931 4.45569C4.86855 4.30975 5.07161 4.19599 5.31799 4.11536L4.69589 2.21457ZM6.096 2.00035C5.62268 1.99435 5.16299 2.06492 4.70187 2.21264L5.31201 4.11729C5.57492 4.03307 5.82023 3.99701 6.07062 4.00019L6.096 2.00035ZM7.49487 2.2476C7.03226 2.08427 6.56184 2.00627 6.096 2.00035L6.07062 4.00019C6.32848 4.00347 6.58174 4.0462 6.82905 4.13351L7.49487 2.2476ZM8.75424 2.96069C8.37961 2.65514 7.96552 2.41657 7.4999 2.24938L6.82403 4.13172C7.06833 4.21944 7.28477 4.34305 7.49016 4.51056L8.75424 2.96069Z"
+    fill="black" mask="url(#path-2-inside-1_2994_57)" />
+  <path
+    d="M14.0811 4.54053C14.0811 3.69022 13.3907 3 12.5405 3C11.6904 3 11 3.69022 11 4.54053V6.08088H12.5633V6.07836C13.4036 6.06562 14.0811 5.38312 14.0811 4.54053Z"
+    fill="#F35453" />
+</svg>
diff --git a/src/assets/logos/foreigners.svg b/src/assets/logos/foreigners.svg
new file mode 100644
index 000000000..ee5f41f27
--- /dev/null
+++ b/src/assets/logos/foreigners.svg
@@ -0,0 +1,8 @@
+<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
+  <path fill-rule="evenodd" clip-rule="evenodd"
+    d="M4.93262 8C4.93262 6.89543 5.82805 6 6.93262 6H23.7433C24.8478 6 25.7433 6.89543 25.7433 8V15.3513C25.7433 16.4558 24.8478 17.3513 23.7433 17.3513H10.766L9.18549 19.2479C8.53254 20.0314 7.2632 19.4494 7.43088 18.4433L7.61288 17.3513H6.93262C5.82805 17.3513 4.93262 16.4558 4.93262 15.3513V8ZM11.5543 12.6215C12.0768 12.6215 12.5003 12.198 12.5003 11.6756C12.5003 11.1532 12.0768 10.7296 11.5543 10.7296C11.0319 10.7296 10.6084 11.1532 10.6084 11.6756C10.6084 12.198 11.0319 12.6215 11.5543 12.6215ZM16.2839 11.6756C16.2839 12.1981 15.8604 12.6216 15.338 12.6216C14.8156 12.6216 14.392 12.1981 14.392 11.6756C14.392 11.1532 14.8156 10.7297 15.338 10.7297C15.8604 10.7297 16.2839 11.1532 16.2839 11.6756ZM19.1217 12.6216C19.6441 12.6216 20.0676 12.1981 20.0676 11.6756C20.0676 11.1532 19.6441 10.7297 19.1217 10.7297C18.5993 10.7297 18.1758 11.1532 18.1758 11.6756C18.1758 12.1981 18.5993 12.6216 19.1217 12.6216Z"
+    fill="#0F5282" />
+  <path fill-rule="evenodd" clip-rule="evenodd"
+    d="M34.0677 22.1989C34.0677 21.0943 33.1723 20.1989 32.0677 20.1989H12.7598C11.6552 20.1989 10.7598 21.0943 10.7598 22.1989V30.9123C10.7598 32.0168 11.6552 32.9123 12.7598 32.9123H27.6148L29.6006 35.0966C30.2767 35.8403 31.5042 35.2339 31.3244 34.2451L31.0821 32.9123H32.0677C33.1723 32.9123 34.0677 32.0168 34.0677 30.9123V22.1989ZM16.444 23.512C16.3373 23.584 16.2387 23.66 16.148 23.74L16.408 24.152C16.4507 24.232 16.52 24.272 16.616 24.272C16.656 24.272 16.7013 24.256 16.752 24.224C16.8027 24.1893 16.864 24.152 16.936 24.112C17.0107 24.0693 17.1 24.032 17.204 24C17.3107 23.9653 17.44 23.948 17.592 23.948C17.696 23.948 17.792 23.9627 17.88 23.992C17.9707 24.0213 18.048 24.064 18.112 24.12C18.176 24.1733 18.2253 24.2387 18.26 24.316C18.2973 24.3907 18.316 24.476 18.316 24.572C18.316 24.716 18.2867 24.8413 18.228 24.948C18.1693 25.0547 18.096 25.1507 18.008 25.236C17.92 25.3187 17.8253 25.396 17.724 25.468C17.6227 25.54 17.528 25.6147 17.44 25.692C17.352 25.7667 17.2787 25.848 17.22 25.936C17.1613 26.0213 17.132 26.1227 17.132 26.24V26.276C17.132 26.284 17.1333 26.2947 17.136 26.308L17.204 26.96H17.88L17.972 26.376C17.9853 26.2907 18.0253 26.2147 18.092 26.148C18.1613 26.0787 18.2427 26.0093 18.336 25.94L18.632 25.712C18.736 25.632 18.832 25.5373 18.92 25.428C19.0107 25.3187 19.0853 25.1907 19.144 25.044C19.2027 24.8947 19.232 24.7187 19.232 24.516C19.232 24.308 19.1947 24.12 19.12 23.952C19.0453 23.784 18.94 23.6413 18.804 23.524C18.668 23.404 18.504 23.312 18.312 23.248C18.1227 23.184 17.912 23.152 17.68 23.152C17.5093 23.152 17.3507 23.168 17.204 23.2C17.0573 23.2293 16.9213 23.2707 16.796 23.324C16.6707 23.3773 16.5533 23.44 16.444 23.512ZM16.948 28.22C16.9187 28.2947 16.904 28.3733 16.904 28.456C16.904 28.5413 16.9187 28.6213 16.948 28.696C16.98 28.768 17.0227 28.8307 17.076 28.884C17.132 28.9373 17.1973 28.9787 17.272 29.008C17.3467 29.04 17.4267 29.056 17.512 29.056C17.5947 29.056 17.6733 29.04 17.748 29.008C17.8227 28.9787 17.8867 28.9373 17.94 28.884C17.9933 28.8307 18.036 28.768 18.068 28.696C18.1 28.6213 18.116 28.5413 18.116 28.456C18.116 28.3733 18.1 28.2947 18.068 28.22C18.036 28.1453 17.9933 28.0813 17.94 28.028C17.8867 27.9747 17.8227 27.932 17.748 27.9C17.6733 27.868 17.5947 27.852 17.512 27.852C17.4267 27.852 17.3467 27.868 17.272 27.9C17.1973 27.932 17.132 27.9747 17.076 28.028C17.0227 28.0813 16.98 28.1453 16.948 28.22ZM21.0912 23.512C20.9845 23.584 20.8859 23.66 20.7952 23.74L21.0552 24.152C21.0979 24.232 21.1672 24.272 21.2632 24.272C21.3032 24.272 21.3485 24.256 21.3992 24.224C21.4499 24.1893 21.5112 24.152 21.5832 24.112C21.6579 24.0693 21.7472 24.032 21.8512 24C21.9579 23.9653 22.0872 23.948 22.2392 23.948C22.3432 23.948 22.4392 23.9627 22.5272 23.992C22.6179 24.0213 22.6952 24.064 22.7592 24.12C22.8232 24.1733 22.8725 24.2387 22.9072 24.316C22.9445 24.3907 22.9632 24.476 22.9632 24.572C22.9632 24.716 22.9339 24.8413 22.8752 24.948C22.8165 25.0547 22.7432 25.1507 22.6552 25.236C22.5672 25.3187 22.4725 25.396 22.3712 25.468C22.2699 25.54 22.1752 25.6147 22.0872 25.692C21.9992 25.7667 21.9259 25.848 21.8672 25.936C21.8085 26.0213 21.7792 26.1227 21.7792 26.24V26.276C21.7792 26.284 21.7805 26.2947 21.7832 26.308L21.8512 26.96H22.5272L22.6192 26.376C22.6325 26.2907 22.6725 26.2147 22.7392 26.148C22.8085 26.0787 22.8899 26.0093 22.9832 25.94L23.2792 25.712C23.3832 25.632 23.4792 25.5373 23.5672 25.428C23.6579 25.3187 23.7325 25.1907 23.7912 25.044C23.8499 24.8947 23.8792 24.7187 23.8792 24.516C23.8792 24.308 23.8419 24.12 23.7672 23.952C23.6925 23.784 23.5872 23.6413 23.4512 23.524C23.3152 23.404 23.1512 23.312 22.9592 23.248C22.7699 23.184 22.5592 23.152 22.3272 23.152C22.1565 23.152 21.9979 23.168 21.8512 23.2C21.7045 23.2293 21.5685 23.2707 21.4432 23.324C21.3179 23.3773 21.2005 23.44 21.0912 23.512ZM21.5952 28.22C21.5659 28.2947 21.5512 28.3733 21.5512 28.456C21.5512 28.5413 21.5659 28.6213 21.5952 28.696C21.6272 28.768 21.6699 28.8307 21.7232 28.884C21.7792 28.9373 21.8445 28.9787 21.9192 29.008C21.9939 29.04 22.0739 29.056 22.1592 29.056C22.2419 29.056 22.3205 29.04 22.3952 29.008C22.4699 28.9787 22.5339 28.9373 22.5872 28.884C22.6405 28.8307 22.6832 28.768 22.7152 28.696C22.7472 28.6213 22.7632 28.5413 22.7632 28.456C22.7632 28.3733 22.7472 28.2947 22.7152 28.22C22.6832 28.1453 22.6405 28.0813 22.5872 28.028C22.5339 27.9747 22.4699 27.932 22.3952 27.9C22.3205 27.868 22.2419 27.852 22.1592 27.852C22.0739 27.852 21.9939 27.868 21.9192 27.9C21.8445 27.932 21.7792 27.9747 21.7232 28.028C21.6699 28.0813 21.6272 28.1453 21.5952 28.22ZM25.7384 23.512C25.6317 23.584 25.533 23.66 25.4424 23.74L25.7024 24.152C25.745 24.232 25.8144 24.272 25.9104 24.272C25.9504 24.272 25.9957 24.256 26.0464 24.224C26.097 24.1893 26.1584 24.152 26.2304 24.112C26.305 24.0693 26.3944 24.032 26.4984 24C26.605 23.9653 26.7344 23.948 26.8864 23.948C26.9904 23.948 27.0864 23.9627 27.1744 23.992C27.265 24.0213 27.3424 24.064 27.4064 24.12C27.4704 24.1733 27.5197 24.2387 27.5544 24.316C27.5917 24.3907 27.6104 24.476 27.6104 24.572C27.6104 24.716 27.581 24.8413 27.5224 24.948C27.4637 25.0547 27.3904 25.1507 27.3024 25.236C27.2144 25.3187 27.1197 25.396 27.0184 25.468C26.917 25.54 26.8224 25.6147 26.7344 25.692C26.6464 25.7667 26.573 25.848 26.5144 25.936C26.4557 26.0213 26.4264 26.1227 26.4264 26.24V26.276C26.4264 26.284 26.4277 26.2947 26.4304 26.308L26.4984 26.96H27.1744L27.2664 26.376C27.2797 26.2907 27.3197 26.2147 27.3864 26.148C27.4557 26.0787 27.537 26.0093 27.6304 25.94L27.9264 25.712C28.0304 25.632 28.1264 25.5373 28.2144 25.428C28.305 25.3187 28.3797 25.1907 28.4384 25.044C28.497 24.8947 28.5264 24.7187 28.5264 24.516C28.5264 24.308 28.489 24.12 28.4144 23.952C28.3397 23.784 28.2344 23.6413 28.0984 23.524C27.9624 23.404 27.7984 23.312 27.6064 23.248C27.417 23.184 27.2064 23.152 26.9744 23.152C26.8037 23.152 26.645 23.168 26.4984 23.2C26.3517 23.2293 26.2157 23.2707 26.0904 23.324C25.965 23.3773 25.8477 23.44 25.7384 23.512ZM26.2424 28.22C26.213 28.2947 26.1984 28.3733 26.1984 28.456C26.1984 28.5413 26.213 28.6213 26.2424 28.696C26.2744 28.768 26.317 28.8307 26.3704 28.884C26.4264 28.9373 26.4917 28.9787 26.5664 29.008C26.641 29.04 26.721 29.056 26.8064 29.056C26.889 29.056 26.9677 29.04 27.0424 29.008C27.117 28.9787 27.181 28.9373 27.2344 28.884C27.2877 28.8307 27.3304 28.768 27.3624 28.696C27.3944 28.6213 27.4104 28.5413 27.4104 28.456C27.4104 28.3733 27.3944 28.2947 27.3624 28.22C27.3304 28.1453 27.2877 28.0813 27.2344 28.028C27.181 27.9747 27.117 27.932 27.0424 27.9C26.9677 27.868 26.889 27.852 26.8064 27.852C26.721 27.852 26.641 27.868 26.5664 27.9C26.4917 27.932 26.4264 27.9747 26.3704 28.028C26.317 28.0813 26.2744 28.1453 26.2424 28.22Z"
+    fill="#0F5282" />
+</svg>
diff --git a/src/assets/logos/franceConnect.svg b/src/assets/logos/franceConnect.svg
new file mode 100644
index 000000000..fb8ee5bc5
--- /dev/null
+++ b/src/assets/logos/franceConnect.svg
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="40px" height="40px"
+  viewBox="0 0 40 40" version="1.1">
+  <g id="surface1">
+    <path style=" stroke:none;fill-rule:nonzero;fill:rgb(16.470588%,18.431373%,50.980392%);fill-opacity:1;"
+      d="M 34.964844 12.582031 L 19.972656 5.351562 L 4.976562 12.652344 C 4.789062 12.742188 4.671875 12.910156 4.671875 13.089844 L 4.671875 27.214844 C 4.683594 27.390625 4.796875 27.554688 4.976562 27.648438 L 19.96875 34.816406 L 34.964844 27.5625 C 35.144531 27.464844 35.257812 27.304688 35.269531 27.125 L 35.269531 13.023438 C 35.269531 12.839844 35.152344 12.671875 34.964844 12.582031 Z M 34.964844 12.582031 " />
+    <path style=" stroke:none;fill-rule:nonzero;fill:rgb(87.45098%,12.156863%,14.901961%);fill-opacity:1;"
+      d="M 14.613281 13 L 9.585938 20.191406 L 5.027344 12.542969 L 10.417969 9.949219 L 14.90625 12.582031 Z M 35.269531 27.148438 L 35.269531 13.019531 C 35.269531 12.835938 35.152344 12.671875 34.964844 12.582031 L 19.972656 5.351562 " />
+    <path style=" stroke:none;fill-rule:nonzero;fill:rgb(18.039216%,39.607843%,69.019608%);fill-opacity:1;"
+      d="M 4.671875 27.148438 L 19.972656 5.351562 L 19.972656 34.820312 L 4.976562 27.648438 C 4.796875 27.554688 4.683594 27.390625 4.671875 27.214844 L 4.671875 13.089844 Z M 29.34375 9.871094 L 34.800781 12.5 L 30.3125 20.125 L 24.925781 12.429688 Z M 29.34375 9.871094 " />
+    <path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;"
+      d="M 39.605469 10.253906 L 20.414062 1.070312 C 20.152344 0.960938 19.847656 0.960938 19.585938 1.070312 L 0.394531 10.253906 C 0.160156 10.382812 0.0117188 10.597656 0 10.832031 L 0 29.167969 C 0.0117188 29.402344 0.160156 29.621094 0.394531 29.75 L 19.582031 38.933594 C 19.84375 39.042969 20.152344 39.042969 20.414062 38.933594 L 39.605469 29.75 C 39.839844 29.621094 39.988281 29.402344 40 29.167969 L 40 10.832031 C 39.988281 10.597656 39.839844 10.382812 39.605469 10.253906 Z M 10.761719 25.050781 L 10.839844 25.050781 C 10.800781 25.050781 10.761719 25.058594 10.761719 25.09375 C 10.761719 25.175781 10.914062 25.09375 10.960938 25.175781 C 10.722656 25.179688 10.5 25.265625 10.332031 25.40625 C 10.332031 25.449219 10.433594 25.449219 10.484375 25.449219 C 10.410156 25.53125 10.257812 25.488281 10.207031 25.574219 C 10.234375 25.597656 10.269531 25.609375 10.308594 25.617188 C 10.257812 25.617188 10.207031 25.617188 10.207031 25.660156 L 10.207031 25.785156 C 10.082031 25.785156 10.03125 25.867188 9.929688 25.910156 C 10.128906 26.035156 10.257812 25.910156 10.457031 25.910156 C 9.929688 26.078125 9.503906 26.308594 8.972656 26.433594 C 8.875 26.433594 8.972656 26.558594 8.875 26.558594 C 9.023438 26.644531 9.101562 26.519531 9.25 26.519531 C 8.597656 26.832031 7.917969 27.101562 7.214844 27.460938 C 7.160156 27.507812 7.125 27.566406 7.113281 27.628906 L 6.914062 27.628906 C 6.8125 27.671875 6.863281 27.773438 6.761719 27.859375 C 6.988281 27.984375 7.261719 27.691406 7.417969 27.859375 C 7.46875 27.859375 7.316406 27.902344 7.21875 27.902344 C 7.167969 27.902344 7.167969 27.984375 7.117188 27.984375 L 6.964844 27.984375 C 6.863281 28.046875 6.761719 28.089844 6.761719 28.214844 C 6.675781 28.199219 6.585938 28.234375 6.535156 28.296875 C 7.609375 28.292969 8.675781 28.128906 9.679688 27.816406 C 10.460938 27.484375 11.167969 27.046875 11.769531 26.515625 C 11.796875 26.539062 11.8125 26.570312 11.820312 26.601562 C 11.671875 26.964844 11.390625 27.277344 11.011719 27.5 C 10.734375 27.625 10.535156 27.8125 10.3125 27.898438 C 10.164062 27.96875 10.023438 28.042969 9.886719 28.128906 C 9.253906 28.292969 8.605469 28.40625 7.945312 28.472656 L 7.640625 28.507812 C 7.414062 28.535156 7.191406 28.566406 6.96875 28.597656 L 4.976562 27.648438 C 4.828125 27.574219 4.726562 27.449219 4.6875 27.308594 C 4.722656 27.292969 4.753906 27.273438 4.78125 27.253906 C 4.753906 27.226562 4.714844 27.207031 4.671875 27.195312 L 4.671875 26.652344 C 5.71875 26.5 6.738281 26.234375 7.707031 25.871094 C 6.789062 25.339844 5.761719 24.957031 4.671875 24.75 L 4.671875 23.488281 C 5.226562 23.5625 5.773438 23.671875 6.308594 23.8125 C 6.722656 23.941406 7.117188 24.101562 7.492188 24.296875 C 7.636719 24.414062 7.796875 24.519531 7.96875 24.609375 C 8.214844 24.726562 8.511719 24.742188 8.769531 24.652344 L 9.101562 24.652344 C 9.816406 24.554688 10.488281 24.292969 11.035156 23.898438 C 11.035156 23.9375 11.085938 23.9375 11.136719 23.9375 C 11.058594 24.269531 10.914062 24.589844 10.710938 24.882812 C 10.710938 24.925781 10.660156 25.007812 10.761719 25.050781 Z M 13.578125 28.027344 C 13.828125 27.941406 13.980469 27.796875 14.207031 27.710938 C 14.15625 27.753906 14.15625 27.839844 14.109375 27.878906 C 13.921875 27.976562 13.742188 28.089844 13.578125 28.210938 C 13.015625 28.628906 12.484375 29.078125 11.996094 29.554688 C 11.742188 29.804688 11.46875 30.035156 11.195312 30.265625 C 11.097656 30.339844 10.996094 30.410156 10.886719 30.472656 L 8.359375 29.261719 C 8.71875 29.289062 9.078125 29.273438 9.433594 29.21875 C 9.726562 29.148438 10.015625 29.058594 10.289062 28.945312 L 10.289062 29.027344 C 10.988281 28.796875 11.519531 28.273438 12.226562 28.085938 C 12.25 28.085938 12.351562 28.167969 12.453125 28.128906 C 12.820312 27.75 13.375 27.53125 13.960938 27.542969 C 13.960938 27.585938 13.960938 27.628906 14.011719 27.628906 L 14.035156 27.628906 C 13.886719 27.734375 13.710938 27.835938 13.535156 27.941406 C 13.480469 27.984375 13.527344 28.027344 13.578125 28.027344 Z M 4.671875 22.890625 L 4.671875 22.734375 C 5.1875 22.621094 5.722656 22.570312 6.257812 22.578125 C 6.417969 22.558594 6.578125 22.558594 6.738281 22.578125 C 6.03125 22.578125 5.332031 22.683594 4.671875 22.890625 Z M 35.269531 27.128906 C 35.257812 27.308594 35.144531 27.46875 34.964844 27.566406 L 24.886719 32.441406 C 23.730469 32.167969 22.589844 31.835938 21.476562 31.453125 C 21.152344 30.863281 21.132812 30.1875 21.429688 29.585938 C 21.507812 29.328125 21.625 29.082031 21.78125 28.847656 C 21.804688 28.828125 21.828125 28.808594 21.828125 28.785156 C 21.84375 28.785156 21.855469 28.777344 21.855469 28.765625 C 21.964844 28.601562 22.09375 28.449219 22.230469 28.300781 L 22.246094 28.289062 L 22.265625 28.273438 L 22.28125 28.257812 C 22.28125 28.238281 22.308594 28.21875 22.332031 28.195312 C 22.355469 28.152344 22.40625 28.132812 22.433594 28.089844 C 22.609375 27.9375 22.800781 27.796875 23.011719 27.675781 C 23.222656 27.609375 23.441406 27.5625 23.664062 27.527344 C 24.476562 27.578125 25.28125 27.667969 26.078125 27.800781 C 26.179688 27.8125 26.273438 27.839844 26.355469 27.882812 C 26.65625 27.933594 26.96875 27.917969 27.261719 27.839844 C 27.648438 27.78125 27.972656 27.558594 28.117188 27.253906 C 28.296875 26.980469 28.3125 26.65625 28.167969 26.371094 C 27.988281 26.140625 28.152344 26.007812 28.347656 25.878906 L 28.414062 25.832031 C 28.503906 25.78125 28.582031 25.722656 28.648438 25.652344 C 28.773438 25.441406 28.546875 25.320312 28.496094 25.128906 C 28.445312 25.046875 28.269531 25.085938 28.167969 24.960938 C 28.519531 24.835938 29.023438 24.605469 28.796875 24.246094 C 28.648438 24.058594 28.421875 23.722656 28.699219 23.535156 C 29.050781 23.367188 29.554688 23.40625 29.703125 23.132812 C 29.804688 22.8125 29.695312 22.46875 29.410156 22.230469 L 29.335938 22.140625 C 29.261719 22.054688 29.191406 21.964844 29.125 21.875 C 28.96875 21.652344 28.789062 21.441406 28.597656 21.242188 C 28.378906 20.984375 28.199219 20.699219 28.070312 20.402344 C 27.917969 20.085938 28.121094 19.8125 28.121094 19.5 C 28.136719 18.890625 28.023438 18.289062 27.792969 17.710938 C 27.667969 17.417969 27.617188 17.101562 27.464844 16.828125 C 27.445312 16.652344 27.367188 16.484375 27.238281 16.347656 C 27.191406 16.257812 27.191406 16.160156 27.238281 16.074219 C 27.445312 15.953125 27.636719 15.820312 27.820312 15.671875 C 27.933594 15.460938 27.847656 15.214844 27.617188 15.085938 C 27.292969 14.960938 27.320312 15.359375 27.089844 15.441406 L 26.941406 15.441406 C 26.890625 15.335938 26.988281 15.296875 27.089844 15.210938 C 27.089844 15.171875 27.089844 15.085938 27.039062 15.085938 C 26.839844 15.085938 26.664062 15.042969 26.613281 14.960938 C 26.132812 14.460938 25.484375 14.085938 24.753906 13.886719 C 24.941406 13.9375 25.132812 13.964844 25.332031 13.972656 C 25.667969 14.03125 26.019531 14.003906 26.335938 13.886719 C 26.5625 13.824219 26.613281 13.488281 26.714844 13.300781 C 26.753906 13.113281 26.699219 12.921875 26.5625 12.773438 C 26.335938 12.5 26.023438 12.28125 25.65625 12.144531 C 25.425781 12.054688 25.199219 11.957031 24.976562 11.851562 C 24.902344 11.804688 24.816406 11.769531 24.726562 11.746094 C 21.761719 10.507812 15.65625 11.578125 15.191406 11.746094 L 15.183594 11.746094 C 14.753906 11.847656 14.335938 11.980469 13.933594 12.140625 C 12.8125 12.488281 11.941406 13.246094 11.570312 14.195312 C 11 14.507812 10.539062 14.941406 10.238281 15.453125 C 9.808594 16.121094 9.179688 16.710938 9.28125 17.464844 C 9.382812 18.113281 9.558594 18.699219 9.710938 19.371094 C 9.75 19.597656 9.820312 19.820312 9.910156 20.039062 C 10.007812 20.269531 9.910156 20.5625 10.058594 20.75 C 10.136719 20.875 10.085938 21.023438 10.285156 21.109375 L 10.285156 21.273438 C 10.335938 21.316406 10.335938 21.359375 10.4375 21.359375 L 10.4375 21.523438 C 10.871094 21.878906 11.246094 22.28125 11.546875 22.71875 C 11.644531 22.949219 11.066406 22.84375 10.84375 22.761719 C 10.429688 22.535156 10.050781 22.269531 9.714844 21.964844 C 9.683594 21.988281 9.667969 22.015625 9.660156 22.046875 C 9.863281 22.339844 10.566406 22.699219 10.191406 22.886719 C 9.988281 22.96875 9.761719 22.761719 9.5625 22.929688 C 9.511719 22.992188 9.5625 23.074219 9.5625 23.160156 C 9.285156 22.992188 8.984375 23.074219 8.707031 22.992188 C 8.507812 22.949219 8.453125 22.636719 8.226562 22.636719 C 7.632812 22.515625 7.027344 22.421875 6.417969 22.363281 C 5.839844 22.292969 5.261719 22.246094 4.679688 22.230469 L 4.679688 13.089844 C 4.679688 12.910156 4.796875 12.742188 4.984375 12.652344 L 19.972656 5.351562 L 34.964844 12.582031 C 35.152344 12.671875 35.269531 12.839844 35.269531 13.019531 Z M 27.316406 20.246094 C 27.253906 20.324219 27.148438 20.371094 27.035156 20.371094 C 26.933594 20.441406 26.839844 20.515625 26.753906 20.597656 C 26.851562 20.597656 26.753906 20.722656 26.851562 20.722656 C 26.648438 20.90625 26.929688 21.300781 26.648438 21.382812 C 26.277344 21.464844 25.890625 21.464844 25.519531 21.382812 C 25.574219 21.371094 25.632812 21.367188 25.6875 21.371094 L 25.773438 21.371094 C 25.898438 21.382812 26.027344 21.339844 26.109375 21.257812 L 26.109375 21.09375 C 26.109375 21.050781 26.058594 21.050781 26.011719 21.050781 C 25.984375 21.074219 25.949219 21.089844 25.910156 21.09375 C 25.90625 21.015625 25.84375 20.949219 25.757812 20.925781 C 25.484375 20.957031 25.214844 20.871094 25.039062 20.699219 C 25.171875 20.644531 25.328125 20.628906 25.472656 20.65625 C 25.601562 20.65625 25.550781 20.472656 25.703125 20.386719 L 25.859375 20.386719 C 26.164062 20.078125 26.730469 19.996094 26.832031 19.6875 C 26.832031 19.601562 26.550781 19.601562 26.347656 19.5625 C 26.070312 19.535156 25.792969 19.546875 25.527344 19.601562 C 25.167969 19.644531 24.8125 19.722656 24.476562 19.832031 C 24.753906 19.660156 25.066406 19.527344 25.398438 19.4375 C 25.628906 19.363281 25.871094 19.308594 26.117188 19.273438 L 26.246094 19.25 L 26.382812 19.226562 C 26.5625 19.183594 26.753906 19.183594 26.9375 19.226562 C 27.167969 19.3125 27.550781 19.3125 27.601562 19.433594 C 27.703125 19.660156 27.449219 19.886719 27.167969 20.054688 C 27.109375 20.121094 27.316406 20.167969 27.316406 20.246094 Z M 27.316406 20.246094 " />
+  </g>
+</svg>
diff --git a/src/assets/logos/health.svg b/src/assets/logos/health.svg
new file mode 100644
index 000000000..86b613214
--- /dev/null
+++ b/src/assets/logos/health.svg
@@ -0,0 +1,5 @@
+<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
+  <path fill-rule="evenodd" clip-rule="evenodd"
+    d="M19.6109 31.5179L8.44907 17.6875C7.27139 16.2282 6.77893 14.3538 7.09231 12.5233C7.95347 7.49286 14.0984 5.27204 18.1225 8.53685L19.685 9.80447C19.8686 9.95342 20.1314 9.95342 20.315 9.80447L21.8775 8.53685C25.9016 5.27204 32.0465 7.49286 32.9077 12.5233C33.2211 14.3538 32.7286 16.2282 31.5509 17.6875L20.3891 31.5179C20.189 31.7659 19.811 31.7659 19.6109 31.5179ZM18.5 13H21.5V16.5H25V19.5H21.5V23H18.5V19.5H15V16.5H18.5V13Z"
+    fill="#0F5282" />
+</svg>
diff --git a/src/assets/logos/housing.svg b/src/assets/logos/housing.svg
new file mode 100644
index 000000000..7a62fc043
--- /dev/null
+++ b/src/assets/logos/housing.svg
@@ -0,0 +1,16 @@
+<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
+  <path fill-rule="evenodd" clip-rule="evenodd"
+    d="M28 11H18V22.2705C18.9579 23.0955 20.2428 24.1821 21.6 25.2L22 25.5V26V26.4229V26.4248V34H28V11ZM21 34V33V26.4248V26.4229V26C19.9111 25.1833 18.8661 24.3217 18 23.5865V34H20H21Z"
+    fill="#0F5282" />
+  <rect x="20" y="19" width="2" height="2" fill="white" />
+  <rect x="20" y="14" width="2" height="2" fill="white" />
+  <rect x="24" y="19" width="2" height="2" fill="white" />
+  <rect x="24" y="14" width="2" height="2" fill="white" />
+  <rect x="24" y="24" width="2" height="2" fill="white" />
+  <rect x="24" y="29" width="2" height="2" fill="white" />
+  <path
+    d="M16.2809 22.1075C16.1131 21.9642 15.8869 21.9642 15.7191 22.1075C14.8518 22.8483 13.5 24 11 26V26.4237V34H21V26.4248V26.4229V26C19 24.5 17.1482 22.8483 16.2809 22.1075Z"
+    fill="#0F5282" />
+  <rect x="13" y="28" width="2" height="2" fill="white" />
+  <rect x="17" y="28" width="2" height="2" fill="white" />
+</svg>
diff --git a/src/assets/logos/idDoc.svg b/src/assets/logos/idDoc.svg
new file mode 100644
index 000000000..537b3baf8
--- /dev/null
+++ b/src/assets/logos/idDoc.svg
@@ -0,0 +1,5 @@
+<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
+  <path fill-rule="evenodd" clip-rule="evenodd"
+    d="M4 11C4 10.4477 4.44772 10 5 10H34C34.5523 10 35 10.4477 35 11V28C35 28.5523 34.5523 29 34 29H5C4.44772 29 4 28.5523 4 28V11ZM19 14.25C19 13.8358 19.3358 13.5 19.75 13.5H25.25C25.6642 13.5 26 13.8358 26 14.25C26 14.6642 25.6642 15 25.25 15H19.75C19.3358 15 19 14.6642 19 14.25ZM19.5 19C19.2239 19 19 19.2239 19 19.5C19 19.7761 19.2239 20 19.5 20H31.5C31.7761 20 32 19.7761 32 19.5C32 19.2239 31.7761 19 31.5 19H19.5ZM19 23.5C19 23.2239 19.2239 23 19.5 23H27.5C27.7761 23 28 23.2239 28 23.5C28 23.7761 27.7761 24 27.5 24H19.5C19.2239 24 19 23.7761 19 23.5ZM19.5 25C19.2239 25 19 25.2239 19 25.5C19 25.7761 19.2239 26 19.5 26H30.5C30.7761 26 31 25.7761 31 25.5C31 25.2239 30.7761 25 30.5 25H19.5ZM8.61681 21.4443C9.06146 20.9996 9.66453 20.7498 10.2934 20.7498H14.0354C14.6642 20.7498 15.2673 20.9996 15.7119 21.4443C16.1566 21.8889 16.4064 22.492 16.4064 23.1208V24.8514C16.4064 25.1275 16.1825 25.3514 15.9064 25.3514C15.6302 25.3514 15.4064 25.1275 15.4064 24.8514V23.1208C15.4064 22.7572 15.2619 22.4085 15.0048 22.1514C14.7477 21.8942 14.399 21.7498 14.0354 21.7498H10.2934C9.92975 21.7498 9.58103 21.8942 9.32392 22.1514C9.06681 22.4085 8.92236 22.7572 8.92236 23.1208V24.8514C8.92236 25.1275 8.69851 25.3514 8.42236 25.3514C8.14622 25.3514 7.92236 25.1275 7.92236 24.8514V23.1208C7.92236 22.492 8.17216 21.8889 8.61681 21.4443ZM12.1645 19.742C13.7501 19.742 15.0355 18.4566 15.0355 16.871C15.0355 15.2854 13.7501 14 12.1645 14C10.5788 14 9.29346 15.2854 9.29346 16.871C9.29346 18.4566 10.5788 19.742 12.1645 19.742ZM12.1645 18.742C13.1978 18.742 14.0355 17.9043 14.0355 16.871C14.0355 15.8377 13.1978 15 12.1645 15C11.1311 15 10.2935 15.8377 10.2935 16.871C10.2935 17.9043 11.1311 18.742 12.1645 18.742Z"
+    fill="#0F5282" />
+</svg>
diff --git a/src/assets/logos/needs.svg b/src/assets/logos/needs.svg
new file mode 100644
index 000000000..e8be3c7f8
--- /dev/null
+++ b/src/assets/logos/needs.svg
@@ -0,0 +1,15 @@
+<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
+  <rect x="7.6001" y="9.95996" width="19.84" height="26.04" rx="2" stroke="#0F5282" stroke-width="1.5"
+    stroke-linecap="round" />
+  <path fill-rule="evenodd" clip-rule="evenodd"
+    d="M14.5601 5C13.4555 5 12.5601 5.89543 12.5601 7V9.95996H25.4401C26.5447 9.95996 27.4401 10.8554 27.4401 11.96V31.04H30.4001C31.5046 31.04 32.4001 30.1446 32.4001 29.04V7C32.4001 5.89543 31.5046 5 30.4001 5H14.5601Z"
+    fill="#0F5282" />
+  <path
+    d="M12.5601 9.95996H11.8101V10.71H12.5601V9.95996ZM27.4401 31.04H26.6901V31.79H27.4401V31.04ZM13.3101 7C13.3101 6.30965 13.8697 5.75 14.5601 5.75V4.25C13.0413 4.25 11.8101 5.48122 11.8101 7H13.3101ZM13.3101 9.95996V7H11.8101V9.95996H13.3101ZM12.5601 10.71H25.4401V9.20996H12.5601V10.71ZM25.4401 10.71C26.1305 10.71 26.6901 11.2696 26.6901 11.96H28.1901C28.1901 10.4412 26.9589 9.20996 25.4401 9.20996V10.71ZM26.6901 11.96V31.04H28.1901V11.96H26.6901ZM30.4001 30.29H27.4401V31.79H30.4001V30.29ZM31.6501 29.04C31.6501 29.7304 31.0904 30.29 30.4001 30.29V31.79C31.9188 31.79 33.1501 30.5588 33.1501 29.04H31.6501ZM31.6501 7V29.04H33.1501V7H31.6501ZM30.4001 5.75C31.0904 5.75 31.6501 6.30964 31.6501 7H33.1501C33.1501 5.48122 31.9188 4.25 30.4001 4.25V5.75ZM14.5601 5.75H30.4001V4.25H14.5601V5.75Z"
+    fill="#0F5282" />
+  <path d="M12.5601 28.9143H22.4801" stroke="#0F5282" stroke-width="1.5" stroke-linecap="round" />
+  <path d="M14.686 32.4572L20.0003 32.4572" stroke="#0F5282" stroke-width="1.5" stroke-linecap="round" />
+  <path
+    d="M19.7888 20.7859L19.1106 21.4023C18.6144 21.8534 17.8099 21.8534 17.3137 21.4023L15.9574 20.1693C15.4612 19.7183 15.4612 18.9869 15.9574 18.5358L16.6356 17.9193C16.8228 17.7491 16.8228 17.4736 16.6356 17.3039L14.2417 15.1276C14.0545 14.9575 13.7515 14.9575 13.5647 15.1276L12.3603 16.2226C12.122 16.4392 11.9844 16.7334 12.0014 17.0394C12.2476 21.4583 15.8951 24.7749 20.7567 24.9987C21.0932 25.0142 21.4169 24.8891 21.6551 24.6725L22.8596 23.5775C23.0468 23.4073 23.0468 23.1318 22.8596 22.9621L20.4657 20.7859C20.279 20.6161 19.9755 20.6161 19.7888 20.7859Z"
+    fill="#0F5282" />
+</svg>
diff --git a/src/assets/logos/pixLabel.svg b/src/assets/logos/pixLabel.svg
new file mode 100644
index 000000000..8cd8152a4
--- /dev/null
+++ b/src/assets/logos/pixLabel.svg
@@ -0,0 +1,36 @@
+<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
+  <path fill-rule="evenodd" clip-rule="evenodd"
+    d="M30.9263 22.9877L31.4425 22.3613C31.9018 21.8317 32.2282 21.3202 32.4217 20.8165L36.3512 25.6141C37.0644 26.528 37.0304 26.6972 35.8418 26.6972H35.4342C34.2456 26.6972 33.8041 26.4603 33.0909 25.6141L30.9263 22.9877ZM30.9263 16.4611L33.0909 13.8347C33.8041 12.9885 34.2456 12.7516 35.4342 12.7516H35.8418C37.0304 12.7516 37.0644 12.9208 36.3512 13.8347L32.4217 18.6324C32.2282 18.1286 31.9018 17.6171 31.4425 17.0875L30.9263 16.4611Z"
+    fill="url(#paint0_linear_5970_70958)" />
+  <path fill-rule="evenodd" clip-rule="evenodd"
+    d="M24.9252 26.6972C23.7365 26.6972 23.7025 26.528 24.4157 25.6141L28.4911 20.6383C28.7968 20.266 28.9666 19.9613 28.9666 19.7244C28.9666 19.4536 28.7968 19.149 28.4911 18.8105L24.4157 13.8347C23.7025 12.9208 23.7365 12.7516 24.9252 12.7516H25.3327C26.5213 12.7516 26.9629 12.9885 27.6761 13.8347L30.8005 17.6258C32.1251 19.149 32.1251 20.2998 30.8005 21.823L27.6761 25.6141C26.9629 26.4603 26.5213 26.6972 25.3327 26.6972H24.9252Z"
+    fill="url(#paint1_linear_5970_70958)" />
+  <path fill-rule="evenodd" clip-rule="evenodd"
+    d="M2.8335 31.0366C2.8335 32.0472 3.08699 32.2998 4.10096 32.2998H4.43892C5.4529 32.2998 5.70639 32.0472 5.70639 31.0366V25.1696C6.46687 26.3766 7.84701 26.9942 9.84676 26.9942C13.7618 26.9942 15.7052 24.945 15.7052 20.8746V18.4323C15.7052 14.3619 13.621 12.453 9.25525 12.453C5.1994 12.453 2.8335 14.418 2.8335 18.4323V31.0366ZM12.8042 20.9307C12.8042 23.2887 12.0155 24.2713 9.28346 24.2713C6.49503 24.2713 5.70639 23.2607 5.70639 20.9307V18.5165C5.70639 16.1585 6.55139 15.1479 9.28346 15.1479C12.0718 15.1479 12.8042 16.1585 12.8042 18.5165V20.9307Z"
+    fill="url(#paint2_linear_5970_70958)" />
+  <path fill-rule="evenodd" clip-rule="evenodd"
+    d="M18.4145 25.4003C18.4145 26.4109 18.6679 26.6635 19.6819 26.6635H20.048C21.062 26.6635 21.3155 26.4109 21.3155 25.4003V14.0031C21.3155 12.9925 21.062 12.7399 20.048 12.7399H19.6819C18.6679 12.7399 18.4145 12.9925 18.4145 14.0031V25.4003ZM18.6116 9.7081C19.3158 10.3818 20.4424 10.3818 21.1184 9.7081C21.8225 9.00628 21.8225 7.88343 21.1184 7.20972C20.4424 6.50789 19.3158 6.50789 18.6116 7.20972C17.9075 7.88343 17.9075 9.00628 18.6116 9.7081Z"
+    fill="url(#paint3_linear_5970_70958)" />
+  <defs>
+    <linearGradient id="paint0_linear_5970_70958" x1="33.8753" y1="12.7516" x2="33.8753" y2="26.6972"
+      gradientUnits="userSpaceOnUse">
+      <stop stop-color="#12A3FF" />
+      <stop offset="1" stop-color="#3D68FF" />
+    </linearGradient>
+    <linearGradient id="paint1_linear_5970_70958" x1="26.4045" y1="12.7516" x2="26.4045" y2="26.6972"
+      gradientUnits="userSpaceOnUse">
+      <stop stop-color="#FFBE00" />
+      <stop offset="1" stop-color="#FF9F00" />
+    </linearGradient>
+    <linearGradient id="paint2_linear_5970_70958" x1="9.26936" y1="12.453" x2="9.26936" y2="26.951"
+      gradientUnits="userSpaceOnUse">
+      <stop stop-color="#12A3FF" />
+      <stop offset="1" stop-color="#3D68FF" />
+    </linearGradient>
+    <linearGradient id="paint3_linear_5970_70958" x1="19.865" y1="12.3501" x2="19.865" y2="26.6635"
+      gradientUnits="userSpaceOnUse">
+      <stop stop-color="#12A3FF" />
+      <stop offset="1" stop-color="#3D68FF" />
+    </linearGradient>
+  </defs>
+</svg>
diff --git a/src/assets/logos/retirement.svg b/src/assets/logos/retirement.svg
new file mode 100644
index 000000000..04c9bde0f
--- /dev/null
+++ b/src/assets/logos/retirement.svg
@@ -0,0 +1,11 @@
+<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
+  <path
+    d="M20.0787 13.0312L20.7577 12.7128C20.6618 12.5082 20.4787 12.3578 20.2595 12.3034C20.0402 12.2489 19.8081 12.2962 19.6276 12.4321L20.0787 13.0312ZM9.42143 33.8338C9.28783 34.2258 9.49737 34.652 9.88945 34.7856C10.2815 34.9192 10.7077 34.7096 10.8413 34.3176L9.42143 33.8338ZM16.7629 12.5625L17.2481 13.1344C17.5172 12.9062 17.5908 12.5213 17.4248 12.2099C17.2589 11.8984 16.8984 11.7448 16.5589 11.8408L16.7629 12.5625ZM15.5 26L16.241 25.8841C16.2216 25.7599 16.1712 25.6426 16.0946 25.5429L15.5 26ZM16.0219 34.1915C16.0859 34.6008 16.4696 34.8807 16.8788 34.8167C17.288 34.7527 17.5679 34.369 17.5039 33.9598L16.0219 34.1915ZM22.3583 17.8914L21.6793 18.2099C21.7627 18.3877 21.9124 18.5257 22.0964 18.5942L22.3583 17.8914ZM26.8629 20.3705C27.251 20.5152 27.6829 20.3178 27.8276 19.9297C27.9722 19.5415 27.7748 19.1096 27.3867 18.965L26.8629 20.3705ZM13.9999 14.9062L13.5148 14.3343L13.3687 14.4582L13.2999 14.637L13.9999 14.9062ZM16.3437 15.8438L15.8925 15.2446L15.7082 15.3834L15.6337 15.6019L16.3437 15.8438ZM10.4557 19.2898C10.5468 19.6939 10.9482 19.9477 11.3522 19.8567C11.7563 19.7656 12.0101 19.3642 11.9191 18.9602L10.4557 19.2898ZM11.5745 22.1243L14.9054 26.4571L16.0946 25.5429L12.7637 21.2101L11.5745 22.1243ZM14.759 26.1159L16.0219 34.1915L17.5039 33.9598L16.241 25.8841L14.759 26.1159ZM19.3997 13.3497L21.6793 18.2099L23.0373 17.573L20.7577 12.7128L19.3997 13.3497ZM22.0964 18.5942L26.8629 20.3705L27.3867 18.965L22.6202 17.1887L22.0964 18.5942ZM16.2778 11.9906L13.5148 14.3343L14.4851 15.4782L17.2481 13.1344L16.2778 11.9906ZM13.2999 14.637L11.2583 19.9453L12.6583 20.4837L14.6999 15.1755L13.2999 14.637ZM19.6276 12.4321L15.8925 15.2446L16.7948 16.4429L20.5299 13.6304L19.6276 12.4321ZM15.6337 15.6019L9.42143 33.8338L10.8413 34.3176L17.0536 16.0856L15.6337 15.6019ZM16.5589 11.8408L10.3831 13.5869L10.7913 15.0303L16.967 13.2842L16.5589 11.8408ZM9.5038 15.0645L10.4557 19.2898L11.9191 18.9602L10.9671 14.7348L9.5038 15.0645ZM10.3831 13.5869C9.74404 13.7676 9.35783 14.4166 9.5038 15.0645L10.9671 14.7348C10.9963 14.8644 10.9191 14.9942 10.7913 15.0303L10.3831 13.5869ZM12.7637 21.2101C12.6044 21.0029 12.5645 20.7277 12.6583 20.4837L11.2583 19.9453C10.9768 20.6771 11.0966 21.5027 11.5745 22.1243L12.7637 21.2101Z"
+    fill="#0F5282" />
+  <circle cx="21.5" cy="8.8125" r="2.0625" fill="#0F5282" stroke="#0F5282" stroke-width="1.5" />
+  <ellipse cx="18.7238" cy="12.4819" rx="1.91162" ry="0.856934" transform="rotate(14.2529 18.7238 12.4819)"
+    fill="#0F5282" />
+  <path
+    d="M26.369 22.1942L26.3157 21.697C26.2274 20.8733 26.8235 20.134 27.6472 20.0456V20.0456C28.4709 19.9573 29.2103 20.5535 29.2986 21.3772L30.8445 35.7945"
+    stroke="#0F5282" stroke-width="1.5" stroke-linecap="round" />
+</svg>
diff --git a/src/assets/logos/scolarity.svg b/src/assets/logos/scolarity.svg
new file mode 100644
index 000000000..87fe29bf1
--- /dev/null
+++ b/src/assets/logos/scolarity.svg
@@ -0,0 +1,21 @@
+<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
+  <path d="M25.3027 21.9324L20.2375 21.2088" stroke="#0F5282" stroke-linecap="round" stroke-linejoin="round" />
+  <path d="M30.6528 26.6852L30.0651 24.2327L28.2115 21.9193" stroke="#0F5282" stroke-linecap="round"
+    stroke-linejoin="round" />
+  <circle cx="26.7641" cy="18.3013" r="2.17081" fill="#0F5282" />
+  <path
+    d="M28.2113 33.4969V26.5478V22.3012C28.2113 22.0672 28.079 21.8532 27.8697 21.7485V21.7485C27.1737 21.4005 26.3545 21.4005 25.6585 21.7485V21.7485C25.4492 21.8532 25.3169 22.0672 25.3169 22.3012V26.5478V33.4969"
+    stroke="#0F5282" stroke-linecap="round" stroke-linejoin="round" />
+  <path
+    d="M25.3169 27.5469C25.3169 27.1563 25.5112 26.7868 25.845 26.5427C26.3588 26.167 27.1694 26.167 27.6832 26.5427C28.017 26.7868 28.2113 27.1563 28.2113 27.5469"
+    stroke="#0F5282" />
+  <path d="M8 21.2762L9.0184 17.0435L12.2303 13.0507" stroke="#0F5282" stroke-linecap="round" stroke-linejoin="round" />
+  <path d="M16.1474 13.129L20.252 21.1956" stroke="#0F5282" stroke-linecap="round" stroke-linejoin="round" />
+  <circle cx="14.1107" cy="8.80061" r="2.80061" fill="#0F5282" />
+  <path
+    d="M16.1473 33.497V20.9425V13.444C16.1473 13.3135 16.0842 13.1911 15.9778 13.1155V13.1155C14.8597 12.3211 13.3614 12.3211 12.2433 13.1155V13.1155C12.1369 13.1911 12.0737 13.3135 12.0737 13.444V20.9425V33.497"
+    stroke="#0F5282" stroke-linecap="round" stroke-linejoin="round" />
+  <path
+    d="M11.9951 22.3522H12.0539V22.1427C12.0539 21.6352 12.3378 21.1552 12.8256 20.8381C13.5767 20.35 14.6438 20.35 15.3949 20.8381C15.8827 21.1552 16.1667 21.6352 16.1667 22.1427V22.3522H16.2254"
+    stroke="#0F5282" />
+</svg>
diff --git a/src/assets/logos/training.svg b/src/assets/logos/training.svg
new file mode 100644
index 000000000..602be7dac
--- /dev/null
+++ b/src/assets/logos/training.svg
@@ -0,0 +1,10 @@
+<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
+  <path d="M20.375 24.359V33.359" stroke="#0F5282" stroke-linecap="round" />
+  <path d="M19.9624 30.359L17.0001 32.609" stroke="#0F5282" stroke-linecap="round" />
+  <path d="M20.75 30.359L23.7123 32.609" stroke="#0F5282" stroke-linecap="round" />
+  <path d="M5 6L35 6" stroke="#0F5282" stroke-linecap="round" />
+  <path d="M5 24L35 24" stroke="#0F5282" stroke-linecap="round" />
+  <path fill-rule="evenodd" clip-rule="evenodd"
+    d="M33 6C32.6232 7.44 31.8696 11.832 31.8696 15C31.8696 18.168 32.4976 22.44 33 24H7C7.37681 22.44 8.13043 18.456 8.13043 15C8.13043 11.544 7.37681 7.56 7 6H33ZM23.0816 13.5839C23.03 13.9606 22.918 14.3179 22.7555 14.6459C23.1057 14.836 23.5069 14.944 23.9333 14.944C25.2986 14.944 26.4053 13.8372 26.4053 12.472C26.4053 11.1067 25.2986 10 23.9333 10C23.2448 10 22.622 10.2815 22.1738 10.7357C22.4272 11.0053 22.6379 11.3155 22.7952 11.6555C23.0494 11.3018 23.4645 11.0714 23.9333 11.0714C24.7068 11.0714 25.3339 11.6985 25.3339 12.472C25.3339 13.2455 24.7068 13.8725 23.9333 13.8725C23.6129 13.8725 23.3176 13.765 23.0816 13.5839ZM22.3276 13.1093C22.3276 14.5898 21.1274 15.7899 19.6469 15.7899C18.1664 15.7899 16.9662 14.5898 16.9662 13.1093C16.9662 11.6288 18.1664 10.4286 19.6469 10.4286C21.1274 10.4286 22.3276 11.6288 22.3276 13.1093ZM21.3276 13.1093C21.3276 14.0375 20.5751 14.7899 19.6469 14.7899C18.7187 14.7899 17.9662 14.0375 17.9662 13.1093C17.9662 12.1811 18.7187 11.4286 19.6469 11.4286C20.5751 11.4286 21.3276 12.1811 21.3276 13.1093ZM16.4243 16.9035C16.8332 16.4945 17.3879 16.2648 17.9663 16.2648H21.3276C21.9059 16.2648 22.4606 16.4945 22.8696 16.9035C23.2785 17.3124 23.5083 17.8671 23.5083 18.4454V20C23.5083 20.2761 23.2844 20.5 23.0083 20.5C22.7321 20.5 22.5083 20.2761 22.5083 20V18.4454C22.5083 18.1323 22.3839 17.832 22.1625 17.6106C21.941 17.3892 21.6407 17.2648 21.3276 17.2648H17.9663C17.6531 17.2648 17.3528 17.3892 17.1314 17.6106C16.91 17.832 16.7856 18.1323 16.7856 18.4454V20C16.7856 20.2761 16.5617 20.5 16.2856 20.5C16.0094 20.5 15.7856 20.2761 15.7856 20V18.4454C15.7856 17.8671 16.0153 17.3124 16.4243 16.9035ZM23.1815 16.4111C22.6972 15.9699 22.0707 15.7155 21.415 15.6948C21.7397 15.4653 22.1296 15.3397 22.5325 15.3397H25.3336C25.8472 15.3397 26.3396 15.5437 26.7028 15.9068C27.0659 16.27 27.2699 16.7625 27.2699 17.276V18.5714C27.2699 18.8673 27.03 19.1072 26.7342 19.1072C26.4383 19.1072 26.1985 18.8673 26.1985 18.5714V17.276C26.1985 17.0466 26.1073 16.8266 25.9452 16.6645C25.783 16.5023 25.563 16.4111 25.3336 16.4111H23.1815ZM16.0884 16.4111C16.5727 15.9699 17.1992 15.7155 17.8549 15.6948C17.5302 15.4653 17.1403 15.3397 16.7374 15.3397H13.9363C13.4227 15.3397 12.9302 15.5437 12.5671 15.9068C12.204 16.27 12 16.7625 12 17.276V18.5714C12 18.8673 12.2398 19.1072 12.5357 19.1072C12.8316 19.1072 13.0714 18.8673 13.0714 18.5714V17.276C13.0714 17.0466 13.1625 16.8266 13.3247 16.6645C13.4869 16.5023 13.7069 16.4111 13.9363 16.4111H16.0884ZM16.1883 13.5839C16.2398 13.9606 16.3519 14.3179 16.5144 14.6459C16.1642 14.836 15.763 14.944 15.3366 14.944C13.9713 14.944 12.8646 13.8372 12.8646 12.472C12.8646 11.1067 13.9713 10 15.3366 10C16.0251 10 16.6479 10.2815 17.0961 10.7357C16.8427 11.0053 16.632 11.3155 16.4747 11.6555C16.2205 11.3018 15.8054 11.0714 15.3366 11.0714C14.5631 11.0714 13.936 11.6985 13.936 12.472C13.936 13.2455 14.5631 13.8725 15.3366 13.8725C15.657 13.8725 15.9523 13.765 16.1883 13.5839Z"
+    fill="#0F5282" />
+</svg>
diff --git a/src/assets/logos/transport.svg b/src/assets/logos/transport.svg
new file mode 100644
index 000000000..cdf6c65a6
--- /dev/null
+++ b/src/assets/logos/transport.svg
@@ -0,0 +1,7 @@
+<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
+  <circle cx="10" cy="26" r="3" fill="#0F5282" />
+  <circle cx="31" cy="26" r="3" fill="#0F5282" />
+  <path fill-rule="evenodd" clip-rule="evenodd"
+    d="M27 26H14C14 23.7909 12.2091 22 10 22C7.79086 22 6 23.7909 6 26H5C4.44772 26 4 25.5523 4 25V20.0897C4 18.8418 4.79857 17.7338 5.9825 17.3392C6.63909 17.1203 7.19573 16.6738 7.55182 16.0803L7.94147 15.4309C9.21858 13.3024 11.5188 12 14.0011 12H19.8197C23.6074 12 27.07 14.14 28.7639 17.5279L29 18H32C34.7614 18 37 20.2386 37 23V25C37 25.5523 36.5523 26 36 26H35C35 23.7909 33.2091 22 31 22C28.7909 22 27 23.7909 27 26ZM26.0023 18H20C19.4477 18 19 17.5523 19 17V13.6729C19 13.3248 19.3185 13.0637 19.6598 13.132L20.0754 13.2151C22.6027 13.7205 24.855 15.14 26.4014 17.2019C26.648 17.5307 26.4134 18 26.0023 18ZM16 18H11.237C10.5895 18 10.0969 17.4186 10.2034 16.7798L10.3323 16.006C10.4403 15.3582 10.7836 14.7731 11.2964 14.3629C12.3992 13.4806 13.7694 13 15.1816 13H16.5219C16.7859 13 17 13.2141 17 13.4781V17C17 17.5523 16.5523 18 16 18Z"
+    fill="#0F5282" />
+</svg>
diff --git a/src/assets/logos/work.svg b/src/assets/logos/work.svg
new file mode 100644
index 000000000..3657e12a0
--- /dev/null
+++ b/src/assets/logos/work.svg
@@ -0,0 +1,8 @@
+<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
+  <path fill-rule="evenodd" clip-rule="evenodd"
+    d="M9.6129 16C8.16984 16 7 17.1513 7 18.5714V31.4286C7 32.8487 8.16984 34 9.6129 34H31.3871C32.8302 34 34 32.8487 34 31.4286V18.5714C34 17.1513 32.8302 16 31.3871 16H9.6129ZM9.09521 18.2818C9.28231 18.0048 9.68285 17.9171 9.98982 18.0859L19.9558 23.5677C20.6073 23.926 21.4305 23.9091 22.0633 23.5244L30.9853 18.1003C31.2835 17.9191 31.688 17.9902 31.8889 18.2593C32.0897 18.5284 32.0108 18.8934 31.7127 19.0747L23 24.3715V26.5263C23 27.3402 22.4302 28 21.7273 28H20.2727C19.5698 28 19 27.3402 19 26.5263V24.4178L9.31224 19.0891C9.00527 18.9202 8.9081 18.5588 9.09521 18.2818ZM20.0909 24.8904C20.6864 25.0415 21.3178 25.0361 21.9091 24.8758V26.5263C21.9091 26.6426 21.8277 26.7368 21.7273 26.7368H20.2727C20.1723 26.7368 20.0909 26.6426 20.0909 26.5263V24.8904Z"
+    fill="#0F5282" />
+  <path fill-rule="evenodd" clip-rule="evenodd"
+    d="M19.1283 9.99991C17.3637 9.99991 15.8043 11.0823 15.2801 12.6709L15.0735 13.2968C14.8995 13.8242 14.3051 14.1186 13.7458 13.9546C13.1865 13.7905 12.8742 13.2301 13.0482 12.7027L13.2547 12.0768C14.0548 9.65204 16.4349 8 19.1283 8H20.8717C23.5651 8 25.9452 9.65204 26.7453 12.0768L26.9518 12.7027C27.1258 13.2301 26.8135 13.7905 26.2542 13.9546C25.6949 14.1186 25.1005 13.8242 24.9265 13.2968L24.7199 12.6709C24.1957 11.0823 22.6363 9.99991 20.8717 9.99991H19.1283Z"
+    fill="#0F5282" />
+</svg>
-- 
GitLab


From c1a8c80b627127f5de8a9614e14b7cda3d6f37a3 Mon Sep 17 00:00:00 2001
From: Hugo SUBTIL <ext.sopra.husubtil@grandlyon.com>
Date: Tue, 25 Oct 2022 09:40:14 +0200
Subject: [PATCH 04/32] fix: wifi

---
 src/app/models/structure.model.ts                             | 2 +-
 .../structure-details/structure-details.component.html        | 4 ++--
 src/app/structure-list/enum/equipment.enum.ts                 | 2 +-
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/app/models/structure.model.ts b/src/app/models/structure.model.ts
index 804b399b2..22a6d1cd2 100644
--- a/src/app/models/structure.model.ts
+++ b/src/app/models/structure.model.ts
@@ -172,7 +172,7 @@ export class Structure {
   public getEquipmentsIcon(equipment: Equipment): string {
     switch (equipment) {
       case Equipment.wifi:
-        return 'wifi';
+        return 'wifiEnAccesLibre';
       case Equipment.printer:
         return 'print';
       case Equipment.computer:
diff --git a/src/app/structure-list/components/structure-details/structure-details.component.html b/src/app/structure-list/components/structure-details/structure-details.component.html
index 2a35cdef6..7ce884c0f 100644
--- a/src/app/structure-list/components/structure-details/structure-details.component.html
+++ b/src/app/structure-list/components/structure-details/structure-details.component.html
@@ -425,8 +425,8 @@
       >
         <h2>Matériel et wifi</h2>
         <div fxLayout="column">
-          <div *ngIf="structure.categories.selfServiceMaterial.includes('wifi')">
-            {{ getEquipmentsLabel('wifi') }}
+          <div *ngIf="structure.categories.selfServiceMaterial.includes('wifiEnAccesLibre')">
+            {{ getEquipmentsLabel('wifiEnAccesLibre') }}
           </div>
           <p *ngFor="let equipement of structure.categories.selfServiceMaterial" class="no-margin-bottom">
             <span *ngIf="equipement == 'computer' && structure.nbComputers"
diff --git a/src/app/structure-list/enum/equipment.enum.ts b/src/app/structure-list/enum/equipment.enum.ts
index 70a7d0cab..e1c1da115 100644
--- a/src/app/structure-list/enum/equipment.enum.ts
+++ b/src/app/structure-list/enum/equipment.enum.ts
@@ -1,5 +1,5 @@
 export enum Equipment {
-  wifi = 'wifi',
+  wifi = 'wifiEnAccesLibre',
   printer = 'printer',
   computer = 'computer',
   scanner = 'scanner',
-- 
GitLab


From 3a92ba390892d0cfbd3a0197ca224f668e0ccc19 Mon Sep 17 00:00:00 2001
From: Hugo SUBTIL <ext.sopra.husubtil@grandlyon.com>
Date: Tue, 25 Oct 2022 11:43:36 +0200
Subject: [PATCH 05/32] personal offers + clean

---
 categoriesformations.json                     | 472 ------------------
 .../form/form-view/form-view.component.scss   |   5 +
 src/app/form/form-view/form-view.component.ts |  12 +-
 ...ersonal-offer-accompaniment.component.html |   4 +-
 .../personal-offer-accompaniment.component.ts |  19 +-
 .../personal-offer-form.component.html        |   2 +
 .../personal-offer-form.component.ts          |  31 +-
 ...ersonal-offer-training-type.component.html |   8 +-
 .../personal-offer-training-type.component.ts |   5 +-
 .../structure-form.component.ts               |   2 +-
 .../structure-public-target.component.html    |  15 +-
 .../structure-print-header.component.ts       |   1 +
 .../orientation-form.component.ts             |   5 -
 src/app/models/personalOffer.model.ts         |  27 +-
 src/app/models/structure.model.ts             |  11 -
 .../structure-edition-summary.component.ts    |  10 -
 .../structure-details.component.html          |   2 +-
 .../structure-details.component.ts            |   4 +-
 .../structure-list-search.component.ts        |  29 +-
 .../structure-list/models/category.model.ts   |  20 -
 src/app/utils/formUtils.ts                    |   8 +-
 21 files changed, 109 insertions(+), 583 deletions(-)
 delete mode 100644 categoriesformations.json

diff --git a/categoriesformations.json b/categoriesformations.json
deleted file mode 100644
index b920950cf..000000000
--- a/categoriesformations.json
+++ /dev/null
@@ -1,472 +0,0 @@
-[
-  {
-    "_id": { "$oid": "5fbb933b80a5c257dc0161f5" },
-    "modules": [
-      {
-        "id": 260,
-        "display_id": "260",
-        "display_name": "Modules APTIC - n°260",
-        "digest": "Maitrise de l’environnement d’un ordinateur (clavier, souris)",
-        "text": "Maitrise de l’environnement d’un ordinateur (clavier, souris)",
-        "url": "https://services.formulaireextranet.grandlyon.com/backoffice/data/modules-aptic/260/",
-        "receipt_time": "2020-09-01T15:16:53",
-        "last_update_time": "2020-09-28T11:34:49"
-      },
-      {
-        "id": 259,
-        "display_id": "259",
-        "display_name": "Modules APTIC - n°259",
-        "digest": "Composantes et facettes de l’identité numérique",
-        "text": "Composantes et facettes de l’identité numérique",
-        "url": "https://services.formulaireextranet.grandlyon.com/backoffice/data/modules-aptic/259/",
-        "receipt_time": "2020-09-01T15:16:52",
-        "last_update_time": "2020-09-28T11:35:39"
-      },
-      {
-        "id": 261,
-        "display_id": "261",
-        "display_name": "Modules APTIC - n°261",
-        "digest": "Internet : fonctionnement et outils de navigation web",
-        "text": "Internet : fonctionnement et outils de navigation web",
-        "url": "https://services.formulaireextranet.grandlyon.com/backoffice/data/modules-aptic/261/",
-        "receipt_time": "2020-09-28T11:49:27",
-        "last_update_time": "2020-09-28T11:49:27"
-      },
-      {
-        "id": 249,
-        "display_id": "249",
-        "display_name": "Modules APTIC - n°249",
-        "digest": "Internet : fonctionnement des emails",
-        "text": "Internet : fonctionnement des emails",
-        "url": "https://services.formulaireextranet.grandlyon.com/backoffice/data/modules-aptic/249/",
-        "receipt_time": "2020-09-01T15:16:52",
-        "last_update_time": "2020-09-28T11:34:34"
-      },
-      {
-        "id": 222,
-        "display_id": "222",
-        "display_name": "Modules APTIC - n°222",
-        "digest": "Le smartphone : principes de fonctionnement",
-        "text": "Le smartphone : principes de fonctionnement",
-        "url": "https://services.formulaireextranet.grandlyon.com/backoffice/data/modules-aptic/222/",
-        "receipt_time": "2020-09-01T15:16:52",
-        "last_update_time": "2020-09-28T11:36:31"
-      },
-      {
-        "id": 212,
-        "display_id": "212",
-        "display_name": "Modules APTIC - n°212",
-        "digest": "Internet : envoyer, recevoir, gérer ses emails",
-        "text": "Internet : envoyer, recevoir, gérer ses emails",
-        "url": "https://services.formulaireextranet.grandlyon.com/backoffice/data/modules-aptic/212/",
-        "receipt_time": "2020-09-01T15:16:52",
-        "last_update_time": "2020-09-28T11:37:10"
-      },
-      {
-        "id": 186,
-        "display_id": "186",
-        "display_name": "Modules APTIC - n°186",
-        "digest": "Smartphones et Tablettes sous Androïd",
-        "text": "Smartphones et Tablettes sous Androïd",
-        "url": "https://services.formulaireextranet.grandlyon.com/backoffice/data/modules-aptic/186/",
-        "receipt_time": "2020-09-01T15:16:52",
-        "last_update_time": "2020-09-28T11:37:58"
-      },
-      {
-        "id": 183,
-        "display_id": "183",
-        "display_name": "Modules APTIC - n°183",
-        "digest": "Smartphone : Les principaux gestes pour l'écran tactile",
-        "text": "Smartphone : Les principaux gestes pour l'écran tactile",
-        "url": "https://services.formulaireextranet.grandlyon.com/backoffice/data/modules-aptic/183/",
-        "receipt_time": "2020-09-01T15:16:52",
-        "last_update_time": "2020-09-28T11:38:33"
-      }
-    ],
-    "name": "Les compétences de base",
-    "id": "baseSkills",
-    "__v": 0
-  },
-  {
-    "_id": { "$oid": "5fbb934180a5c257dc0161f6" },
-    "modules": [
-      {
-        "id": 176,
-        "display_id": "176",
-        "display_name": "Modules APTIC - n°176",
-        "digest": "Pôle Emploi : faire ses déclarations en ligne",
-        "text": "Pôle Emploi : faire ses déclarations en ligne",
-        "url": "https://services.formulaireextranet.grandlyon.com/backoffice/data/modules-aptic/176/",
-        "receipt_time": "2020-09-01T15:16:52",
-        "last_update_time": "2020-09-28T11:40:18"
-      },
-      {
-        "id": 175,
-        "display_id": "175",
-        "display_name": "Modules APTIC - n°175",
-        "digest": "Déclarer ses revenus en ligne et découvertes des services proposés",
-        "text": "Déclarer ses revenus en ligne et découvertes des services proposés",
-        "url": "https://services.formulaireextranet.grandlyon.com/backoffice/data/modules-aptic/175/",
-        "receipt_time": "2020-09-01T15:16:52",
-        "last_update_time": "2020-09-28T11:41:14"
-      },
-      {
-        "id": 174,
-        "display_id": "174",
-        "display_name": "Modules APTIC - n°174",
-        "digest": "Accéder à ses droits sociaux et les gérer en ligne (RSA…)",
-        "text": "Accéder à ses droits sociaux et les gérer en ligne (RSA…)",
-        "url": "https://services.formulaireextranet.grandlyon.com/backoffice/data/modules-aptic/174/",
-        "receipt_time": "2020-09-01T15:16:52",
-        "last_update_time": "2020-09-28T11:41:49"
-      },
-      {
-        "id": 173,
-        "display_id": "173",
-        "display_name": "Modules APTIC - n°173",
-        "digest": "Ouvrir et gérer son dossier de retraite (CNAF/CARSAT) en ligne",
-        "text": "Ouvrir et gérer son dossier de retraite (CNAF/CARSAT) en ligne",
-        "url": "https://services.formulaireextranet.grandlyon.com/backoffice/data/modules-aptic/173/",
-        "receipt_time": "2020-09-01T15:16:52",
-        "last_update_time": "2020-09-28T11:42:26"
-      },
-      {
-        "id": 172,
-        "display_id": "172",
-        "display_name": "Modules APTIC - n°172",
-        "digest": "Gérer son abonnement et ses factures d'électricité/gaz en ligne",
-        "text": "Gérer son abonnement et ses factures d'électricité/gaz en ligne",
-        "url": "https://services.formulaireextranet.grandlyon.com/backoffice/data/modules-aptic/172/",
-        "receipt_time": "2020-09-01T15:16:52",
-        "last_update_time": "2020-09-28T11:43:02"
-      },
-      {
-        "id": 171,
-        "display_id": "171",
-        "display_name": "Modules APTIC - n°171",
-        "digest": "Gérer ses droits d'assuré social en ligne/sur internet",
-        "text": "Gérer ses droits d'assuré social en ligne/sur internet",
-        "url": "https://services.formulaireextranet.grandlyon.com/backoffice/data/modules-aptic/171/",
-        "receipt_time": "2020-09-01T15:16:52",
-        "last_update_time": "2020-09-28T11:43:38"
-      },
-      {
-        "id": 167,
-        "display_id": "167",
-        "display_name": "Modules APTIC - n°167",
-        "digest": "Plateforme Ameli.fr : la sécurité sociale en ligne",
-        "text": "Plateforme Ameli.fr : la sécurité sociale en ligne",
-        "url": "https://services.formulaireextranet.grandlyon.com/backoffice/data/modules-aptic/167/",
-        "receipt_time": "2020-09-01T15:16:52",
-        "last_update_time": "2020-09-28T11:46:37"
-      },
-      {
-        "id": 165,
-        "display_id": "165",
-        "display_name": "Modules APTIC - n°165",
-        "digest": "Plateforme France Connect",
-        "text": "Plateforme France Connect",
-        "url": "https://services.formulaireextranet.grandlyon.com/backoffice/data/modules-aptic/165/",
-        "receipt_time": "2020-09-01T15:16:52",
-        "last_update_time": "2020-09-28T11:47:07"
-      }
-    ],
-    "name": "Accès aux droits",
-    "id": "accessRight",
-    "__v": 0
-  },
-  {
-    "_id": { "$oid": "5fbb934780a5c257dc0161f7" },
-    "modules": [
-      {
-        "id": 254,
-        "display_id": "254",
-        "display_name": "Modules APTIC - n°254",
-        "digest": "Utiliser les réseaux sociaux pour sa recherche d'emploi",
-        "text": "Utiliser les réseaux sociaux pour sa recherche d'emploi",
-        "url": "https://services.formulaireextranet.grandlyon.com/backoffice/data/modules-aptic/254/",
-        "receipt_time": "2020-09-01T15:16:52",
-        "last_update_time": "2020-10-08T17:00:45"
-      },
-      {
-        "id": 240,
-        "display_id": "240",
-        "display_name": "Modules APTIC - n°240",
-        "digest": "Panorama des plateformes de recherche d’emploi",
-        "text": "Panorama des plateformes de recherche d’emploi",
-        "url": "https://services.formulaireextranet.grandlyon.com/backoffice/data/modules-aptic/240/",
-        "receipt_time": "2020-09-01T15:16:52",
-        "last_update_time": "2020-10-08T17:00:16"
-      },
-      {
-        "id": 194,
-        "display_id": "194",
-        "display_name": "Modules APTIC - n°194",
-        "digest": "Traitement de texte : découverte",
-        "text": "Traitement de texte : découverte",
-        "url": "https://services.formulaireextranet.grandlyon.com/backoffice/data/modules-aptic/194/",
-        "receipt_time": "2020-09-01T15:16:52",
-        "last_update_time": "2020-10-08T17:01:59"
-      },
-      {
-        "id": 193,
-        "display_id": "193",
-        "display_name": "Modules APTIC - n°193",
-        "digest": "Traitement de texte : utilisation de base",
-        "text": "Traitement de texte : utilisation de base",
-        "url": "https://services.formulaireextranet.grandlyon.com/backoffice/data/modules-aptic/193/",
-        "receipt_time": "2020-09-01T15:16:52",
-        "last_update_time": "2020-10-08T17:03:40"
-      },
-      {
-        "id": 192,
-        "display_id": "192",
-        "display_name": "Modules APTIC - n°192",
-        "digest": "Traitement de texte : utilisation avancée",
-        "text": "Traitement de texte : utilisation avancée",
-        "url": "https://services.formulaireextranet.grandlyon.com/backoffice/data/modules-aptic/192/",
-        "receipt_time": "2020-09-01T15:16:52",
-        "last_update_time": "2020-10-08T17:01:15"
-      },
-      {
-        "id": 191,
-        "display_id": "191",
-        "display_name": "Modules APTIC - n°191",
-        "digest": "Tableur : découverte",
-        "text": "Tableur : découverte",
-        "url": "https://services.formulaireextranet.grandlyon.com/backoffice/data/modules-aptic/191/",
-        "receipt_time": "2020-09-01T15:16:52",
-        "last_update_time": "2020-10-08T16:59:55"
-      },
-      {
-        "id": 262,
-        "display_id": "262",
-        "display_name": "Modules APTIC - n°262",
-        "digest": "Réalisation CV",
-        "text": "Réalisation CV",
-        "url": "https://services.formulaireextranet.grandlyon.com/backoffice/data/modules-aptic/262/",
-        "receipt_time": "2020-09-28T12:16:43",
-        "last_update_time": "2020-09-28T12:16:43"
-      },
-      {
-        "id": 263,
-        "display_id": "263",
-        "display_name": "Modules APTIC - n°263",
-        "digest": "Diffuser son CV en ligne",
-        "text": "Diffuser son CV en ligne",
-        "url": "https://services.formulaireextranet.grandlyon.com/backoffice/data/modules-aptic/263/",
-        "receipt_time": "2020-09-28T12:18:40",
-        "last_update_time": "2020-09-28T12:18:40"
-      },
-      {
-        "id": 3,
-        "display_id": "3",
-        "display_name": "Modules APTIC - n°3",
-        "digest": "Organiser sa recherche d'emploi",
-        "text": "Organiser sa recherche d'emploi",
-        "url": "https://services.formulaireextranet.grandlyon.com/backoffice/data/modules-aptic/3/",
-        "receipt_time": "2020-09-01T15:13:48",
-        "last_update_time": "2020-10-08T17:01:53"
-      }
-    ],
-    "name": "Insertion sociale et professionnelle",
-    "id": "socialAndProfessional",
-    "__v": 0
-  },
-  {
-    "_id": { "$oid": "5fbb934c80a5c257dc0161f8" },
-    "modules": [
-      {
-        "id": 257,
-        "display_id": "257",
-        "display_name": "Modules APTIC - n\u00b0257",
-        "digest": "\u00catre parent \u00e0 l'\u00e8re num\u00e9rique: conna\u00eetre les usages, jouer son r\u00f4le de parent - 03",
-        "text": "\u00catre parent \u00e0 l'\u00e8re num\u00e9rique: conna\u00eetre les usages, jouer son r\u00f4le de parent - 03",
-        "url": "https://services.formulaireextranet.grandlyon.com/backoffice/data/modules-aptic/257/",
-        "receipt_time": "2020-09-01T15:16:52",
-        "last_update_time": "2020-10-08T17:04:33"
-      },
-      {
-        "id": 238,
-        "display_id": "238",
-        "display_name": "Modules APTIC - n\u00b0238",
-        "digest": "D\u00e9couvrir l\u2019univers des jeux vid\u00e9o - 22",
-        "text": "D\u00e9couvrir l\u2019univers des jeux vid\u00e9o - 22",
-        "url": "https://services.formulaireextranet.grandlyon.com/backoffice/data/modules-aptic/238/",
-        "receipt_time": "2020-09-01T15:16:52",
-        "last_update_time": "2020-09-28T12:27:06"
-      },
-      {
-        "id": 178,
-        "display_id": "178",
-        "display_name": "Modules APTIC - n\u00b0178",
-        "digest": "Suivre la scolarit\u00e9 de son enfant - 82",
-        "text": "Suivre la scolarit\u00e9 de son enfant - 82",
-        "url": "https://services.formulaireextranet.grandlyon.com/backoffice/data/modules-aptic/178/",
-        "receipt_time": "2020-09-01T15:16:52",
-        "last_update_time": "2020-09-28T12:27:28"
-      },
-      {
-        "id": 166,
-        "display_id": "166",
-        "display_name": "Modules APTIC - n\u00b0166",
-        "digest": "D\u00e9couvrir les services en ligne de l'enfance de votre commune - 94",
-        "text": "D\u00e9couvrir les services en ligne de l'enfance de votre commune - 94",
-        "url": "https://services.formulaireextranet.grandlyon.com/backoffice/data/modules-aptic/166/",
-        "receipt_time": "2020-09-01T15:16:52",
-        "last_update_time": "2020-09-28T12:27:49"
-      }
-    ],
-    "name": "Aide à la parentalité",
-    "id": "parentingHelp",
-    "__v": 0
-  },
-  {
-    "_id": { "$oid": "5fbb935080a5c257dc0161f9" },
-    "modules": [
-      {
-        "id": 264,
-        "display_id": "264",
-        "display_name": "Modules APTIC - n\u00b0264",
-        "digest": "Les conduites \u00e0 risques et les bons usages du num\u00e9rique - 02",
-        "text": "Les conduites \u00e0 risques et les bons usages du num\u00e9rique - 02",
-        "url": "https://services.formulaireextranet.grandlyon.com/backoffice/data/modules-aptic/264/",
-        "receipt_time": "2020-09-28T12:20:29",
-        "last_update_time": "2020-10-08T17:07:13"
-      },
-      {
-        "id": 255,
-        "display_id": "255",
-        "display_name": "Modules APTIC - n\u00b0255",
-        "digest": "D\u00e9couvrir les r\u00e9seaux sociaux : d\u00e9finition, fonctionnement - 05",
-        "text": "D\u00e9couvrir les r\u00e9seaux sociaux : d\u00e9finition, fonctionnement - 05",
-        "url": "https://services.formulaireextranet.grandlyon.com/backoffice/data/modules-aptic/255/",
-        "receipt_time": "2020-09-01T15:16:52",
-        "last_update_time": "2020-10-08T17:07:08"
-      },
-      {
-        "id": 265,
-        "display_id": "265",
-        "display_name": "Modules APTIC - n\u00b0265",
-        "digest": "Fablab : charte, valeurs et panorama des outils num\u00e9riques - 09",
-        "text": "Fablab : charte, valeurs et panorama des outils num\u00e9riques - 09",
-        "url": "https://services.formulaireextranet.grandlyon.com/backoffice/data/modules-aptic/265/",
-        "receipt_time": "2020-09-28T12:24:48",
-        "last_update_time": "2020-10-08T17:06:35"
-      },
-      {
-        "id": 232,
-        "display_id": "232",
-        "display_name": "Modules APTIC - n\u00b0232",
-        "digest": "Les paiements en ligne - 28",
-        "text": "Les paiements en ligne - 28",
-        "url": "https://services.formulaireextranet.grandlyon.com/backoffice/data/modules-aptic/232/",
-        "receipt_time": "2020-09-01T15:16:52",
-        "last_update_time": "2020-10-08T17:15:56"
-      },
-      {
-        "id": 225,
-        "display_id": "225",
-        "display_name": "Modules APTIC - n\u00b0225",
-        "digest": "Internet : comprendre les principes de fonctionnement - 35",
-        "text": "Internet : comprendre les principes de fonctionnement - 35",
-        "url": "https://services.formulaireextranet.grandlyon.com/backoffice/data/modules-aptic/225/",
-        "receipt_time": "2020-09-01T15:16:52",
-        "last_update_time": "2020-09-28T12:21:13"
-      },
-      {
-        "id": 221,
-        "display_id": "221",
-        "display_name": "Modules APTIC - n\u00b0221",
-        "digest": "Techniques de v\u00e9rification de l\u2019information - 39",
-        "text": "Techniques de v\u00e9rification de l\u2019information - 39",
-        "url": "https://services.formulaireextranet.grandlyon.com/backoffice/data/modules-aptic/221/",
-        "receipt_time": "2020-09-01T15:16:52",
-        "last_update_time": "2020-10-08T17:12:07"
-      },
-      {
-        "id": 218,
-        "display_id": "218",
-        "display_name": "Modules APTIC - n\u00b0218",
-        "digest": "Cr\u00e9er et param\u00e9trer un compte Google - 42",
-        "text": "Cr\u00e9er et param\u00e9trer un compte Google - 42",
-        "url": "https://services.formulaireextranet.grandlyon.com/backoffice/data/modules-aptic/218/",
-        "receipt_time": "2020-09-01T15:16:52",
-        "last_update_time": "2020-09-28T12:21:50"
-      },
-      {
-        "id": 209,
-        "display_id": "209",
-        "display_name": "Modules APTIC - n\u00b0209",
-        "digest": "G\u00e9rer ses donn\u00e9es : sauvegarde en ligne (dans le cloud) - 51",
-        "text": "G\u00e9rer ses donn\u00e9es : sauvegarde en ligne (dans le cloud) - 51",
-        "url": "https://services.formulaireextranet.grandlyon.com/backoffice/data/modules-aptic/209/",
-        "receipt_time": "2020-09-01T15:16:52",
-        "last_update_time": "2020-09-28T12:22:21"
-      },
-      {
-        "id": 208,
-        "display_id": "208",
-        "display_name": "Modules APTIC - n\u00b0208",
-        "digest": "G\u00e9rer ses donn\u00e9es : sauvegardes locales (disques durs externes, cl\u00e9 USB) - 52",
-        "text": "G\u00e9rer ses donn\u00e9es : sauvegardes locales (disques durs externes, cl\u00e9 USB) - 52",
-        "url": "https://services.formulaireextranet.grandlyon.com/backoffice/data/modules-aptic/208/",
-        "receipt_time": "2020-09-01T15:16:52",
-        "last_update_time": "2020-09-28T12:23:10"
-      },
-      {
-        "id": 206,
-        "display_id": "206",
-        "display_name": "Modules APTIC - n\u00b0206",
-        "digest": "Classer, g\u00e9rer et partager ses photos - 54",
-        "text": "Classer, g\u00e9rer et partager ses photos - 54",
-        "url": "https://services.formulaireextranet.grandlyon.com/backoffice/data/modules-aptic/206/",
-        "receipt_time": "2020-09-01T15:16:52",
-        "last_update_time": "2020-10-08T17:12:28"
-      },
-      {
-        "id": 195,
-        "display_id": "195",
-        "display_name": "Modules APTIC - n\u00b0195",
-        "digest": "Skype et autres outils de visioconf\u00e9rence - 65",
-        "text": "Skype et autres outils de visioconf\u00e9rence - 65",
-        "url": "https://services.formulaireextranet.grandlyon.com/backoffice/data/modules-aptic/195/",
-        "receipt_time": "2020-09-01T15:16:52",
-        "last_update_time": "2020-09-28T12:25:44"
-      },
-      {
-        "id": 164,
-        "display_id": "164",
-        "display_name": "Modules APTIC - n\u00b0164",
-        "digest": "Connaitre et g\u00e9rer son identit\u00e9 num\u00e9rique - 96",
-        "text": "Connaitre et g\u00e9rer son identit\u00e9 num\u00e9rique - 96",
-        "url": "https://services.formulaireextranet.grandlyon.com/backoffice/data/modules-aptic/164/",
-        "receipt_time": "2020-09-01T15:16:52",
-        "last_update_time": "2020-10-08T17:13:35"
-      },
-      {
-        "id": 163,
-        "display_id": "163",
-        "display_name": "Modules APTIC - n\u00b0163",
-        "digest": "Nettoyer son identit\u00e9 num\u00e9rique - 97",
-        "text": "Nettoyer son identit\u00e9 num\u00e9rique - 97",
-        "url": "https://services.formulaireextranet.grandlyon.com/backoffice/data/modules-aptic/163/",
-        "receipt_time": "2020-09-01T15:16:52",
-        "last_update_time": "2020-10-08T17:13:57"
-      },
-      {
-        "id": 162,
-        "display_id": "162",
-        "display_name": "Modules APTIC - n\u00b0162",
-        "digest": "Effacer ses traces sur le web, prot\u00e9ger ses donn\u00e9es personnelles - 98",
-        "text": "Effacer ses traces sur le web, prot\u00e9ger ses donn\u00e9es personnelles - 98",
-        "url": "https://services.formulaireextranet.grandlyon.com/backoffice/data/modules-aptic/162/",
-        "receipt_time": "2020-09-01T15:16:52",
-        "last_update_time": "2020-10-08T17:13:04"
-      }
-    ],
-    "name": "Culture et sécurité numérique",
-    "id": "digitalCultureSecurity",
-    "__v": 0
-  }
-]
diff --git a/src/app/form/form-view/form-view.component.scss b/src/app/form/form-view/form-view.component.scss
index c9d10754f..c2f7d73a9 100644
--- a/src/app/form/form-view/form-view.component.scss
+++ b/src/app/form/form-view/form-view.component.scss
@@ -57,6 +57,11 @@
       @include lato-bold-22;
     }
   }
+
+  h4 {
+    @include lato-bold-18;
+    margin-bottom: 0;
+  }
   p {
     @include lato-regular-18;
     color: $grey-3;
diff --git a/src/app/form/form-view/form-view.component.ts b/src/app/form/form-view/form-view.component.ts
index ef241ecd8..78e97bba4 100644
--- a/src/app/form/form-view/form-view.component.ts
+++ b/src/app/form/form-view/form-view.component.ts
@@ -234,13 +234,11 @@ export class FormViewComponent implements OnInit, AfterViewInit {
   // TODO: refacto
   private createPersonalOfferForm(personalOffer: PersonalOffer): void {
     this.personalOfferForm = new UntypedFormGroup({
-      publicsAccompaniment: new UntypedFormControl(personalOffer.publicsAccompaniment),
-      proceduresAccompaniment: new UntypedFormControl(personalOffer.proceduresAccompaniment),
-      baseSkills: new UntypedFormControl(personalOffer.baseSkills),
-      accessRight: new UntypedFormControl(personalOffer.accessRight),
-      digitalCultureSecurity: new UntypedFormControl(personalOffer.digitalCultureSecurity),
-      socialAndProfessional: new UntypedFormControl(personalOffer.socialAndProfessional),
-      parentingHelp: new UntypedFormControl(personalOffer.parentingHelp),
+      categories: new UntypedFormGroup({
+        onlineProcedures: new UntypedFormControl(personalOffer.categories.onlineProcedures),
+        baseSkills: new UntypedFormControl(personalOffer.categories.baseSkills),
+        advancedSkills: new UntypedFormControl(personalOffer.categories.advancedSkills),
+      }),
     });
   }
 
diff --git a/src/app/form/form-view/personal-offer-form/personal-offer-accompaniment/personal-offer-accompaniment.component.html b/src/app/form/form-view/personal-offer-form/personal-offer-accompaniment/personal-offer-accompaniment.component.html
index 266df0c6d..66fa0b65b 100644
--- a/src/app/form/form-view/personal-offer-form/personal-offer-accompaniment/personal-offer-accompaniment.component.html
+++ b/src/app/form/form-view/personal-offer-form/personal-offer-accompaniment/personal-offer-accompaniment.component.html
@@ -6,8 +6,8 @@
   </div>
 
   <div fxLayout="column" fxLayoutGap="32px">
-    <div *ngIf="proceduresAccompaniment" class="btn-grid">
-      <span *ngFor="let module of proceduresAccompaniment.modules">
+    <div *ngIf="onlineProcedures" class="btn-grid">
+      <span *ngFor="let module of onlineProcedures.modules">
         <app-button
           [ngClass]="{ selectedChoice: true }"
           [extraClass]="isSelectedModule(module) ? 'selected' : ''"
diff --git a/src/app/form/form-view/personal-offer-form/personal-offer-accompaniment/personal-offer-accompaniment.component.ts b/src/app/form/form-view/personal-offer-form/personal-offer-accompaniment/personal-offer-accompaniment.component.ts
index 50c47e282..4e5cb073e 100644
--- a/src/app/form/form-view/personal-offer-form/personal-offer-accompaniment/personal-offer-accompaniment.component.ts
+++ b/src/app/form/form-view/personal-offer-form/personal-offer-accompaniment/personal-offer-accompaniment.component.ts
@@ -1,10 +1,8 @@
 import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
 import { UntypedFormGroup } from '@angular/forms';
 import { ButtonType } from '../../../../shared/components/button/buttonType.enum';
-import { CategoryEnum } from '../../../../shared/enum/category.enum';
 import { Category } from '../../../../structure-list/models/category.model';
 import { Module } from '../../../../structure-list/models/module.model';
-import { SearchService } from '../../../../structure-list/services/search.service';
 
 @Component({
   selector: 'app-personal-offer-accompaniment',
@@ -14,24 +12,16 @@ import { SearchService } from '../../../../structure-list/services/search.servic
 export class PersonalOfferAccompanimentComponent implements OnInit {
   @Input() structureName: string;
   @Input() personalOfferForm: UntypedFormGroup;
+  @Input() onlineProcedures: Category;
   @Output() validateForm = new EventEmitter<any>();
 
   public buttonTypeEnum = ButtonType;
-  public proceduresAccompaniment: Category;
   public selectedModules: Module[] = [];
 
-  constructor(private searchService: SearchService) {}
+  constructor() {}
 
   ngOnInit(): void {
     this.validateForm.emit();
-    //TODO: refactor
-    this.searchService.getCategories().subscribe((categories: Category[]) => {
-      this.proceduresAccompaniment = categories.find((categorie) => categorie.id === CategoryEnum.onlineProcedures);
-      const proceduresAccompaniment = this.personalOfferForm.get('proceduresAccompaniment').value;
-      this.selectedModules = proceduresAccompaniment.map((procedure) =>
-        this.proceduresAccompaniment.modules.find((module) => module.id === procedure)
-      );
-    });
   }
 
   public toogleResult(module: Module): void {
@@ -41,7 +31,10 @@ export class PersonalOfferAccompanimentComponent implements OnInit {
     } else {
       this.selectedModules.push(module);
     }
-    this.personalOfferForm.get('proceduresAccompaniment').patchValue(this.selectedModules.map((_module) => _module.id));
+    this.personalOfferForm
+      .get('categories')
+      .get('onlineProcedures')
+      .patchValue(this.selectedModules.map((_module) => _module.id));
   }
 
   public isSelectedModule(module: Module): boolean {
diff --git a/src/app/form/form-view/personal-offer-form/personal-offer-form.component.html b/src/app/form/form-view/personal-offer-form/personal-offer-form.component.html
index 77d5ac7f7..b1cba7b30 100644
--- a/src/app/form/form-view/personal-offer-form/personal-offer-form.component.html
+++ b/src/app/form/form-view/personal-offer-form/personal-offer-form.component.html
@@ -3,12 +3,14 @@
     <app-personal-offer-accompaniment
       [structureName]="structureName"
       [personalOfferForm]="personalOfferForm"
+      [onlineProcedures]="onlineProcedures"
     ></app-personal-offer-accompaniment>
   </ng-container>
   <ng-container *ngIf="currentStep === personalOfferFormStep.personalOfferTrainingType">
     <app-personal-offer-training-type
       [structureName]="structureName"
       [personalOfferForm]="personalOfferForm"
+      [trainingCategories]="trainingCategories"
     ></app-personal-offer-training-type>
   </ng-container>
   <ng-container *ngIf="currentStep === personalOfferFormStep.personalOfferStructureChoice">
diff --git a/src/app/form/form-view/personal-offer-form/personal-offer-form.component.ts b/src/app/form/form-view/personal-offer-form/personal-offer-form.component.ts
index 6312c60da..0bb039b3f 100644
--- a/src/app/form/form-view/personal-offer-form/personal-offer-form.component.ts
+++ b/src/app/form/form-view/personal-offer-form/personal-offer-form.component.ts
@@ -1,6 +1,9 @@
-import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';
+import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';
 import { UntypedFormGroup } from '@angular/forms';
 import { Router } from '@angular/router';
+import { CategoryEnum } from 'src/app/shared/enum/category.enum';
+import { Category } from 'src/app/structure-list/models/category.model';
+import { SearchService } from 'src/app/structure-list/services/search.service';
 import { formType } from '../formType.enum';
 import { personalOfferFormStep } from './personalOfferFormStep.enum';
 
@@ -8,7 +11,7 @@ import { personalOfferFormStep } from './personalOfferFormStep.enum';
   selector: 'app-personal-offer-form',
   templateUrl: './personal-offer-form.component.html',
 })
-export class PersonalOfferFormComponent implements OnChanges {
+export class PersonalOfferFormComponent implements OnChanges, OnInit {
   @Input() nbSteps: number;
   @Input() currentStep: personalOfferFormStep;
   @Input() personalOfferForm: UntypedFormGroup;
@@ -16,11 +19,16 @@ export class PersonalOfferFormComponent implements OnChanges {
   @Output() setHasOtherOffer = new EventEmitter<boolean>();
   @Output() pageValid = new EventEmitter<any>();
 
+  public trainingCategories: { category: Category; openned: boolean }[] = [];
+  public onlineProcedures: Category;
   public personalOfferFormStep = personalOfferFormStep;
   public formTypeEnum = formType;
 
-  constructor(private router: Router) {}
+  constructor(private searchService: SearchService, private router: Router) {}
 
+  ngOnInit(): void {
+    this.setCategories();
+  }
   ngOnChanges(changes: SimpleChanges): void {
     if (changes.currentStep) {
       if (
@@ -32,6 +40,23 @@ export class PersonalOfferFormComponent implements OnChanges {
     }
   }
 
+  async setCategories(): Promise<void> {
+    const categories = await this.searchService.getCategories().toPromise();
+    categories.forEach((categ) => {
+      switch (categ.id) {
+        case CategoryEnum.onlineProcedures: {
+          this.onlineProcedures = categ;
+          break;
+        }
+        case CategoryEnum.baseSkills:
+        case CategoryEnum.advancedSkills: {
+          this.trainingCategories.push({ category: categ, openned: false });
+          break;
+        }
+      }
+    });
+  }
+
   public validPage(): void {
     this.pageValid.emit();
   }
diff --git a/src/app/form/form-view/personal-offer-form/personal-offer-training-type/personal-offer-training-type.component.html b/src/app/form/form-view/personal-offer-form/personal-offer-training-type/personal-offer-training-type.component.html
index 55da9d4e9..8aabfd7a2 100644
--- a/src/app/form/form-view/personal-offer-form/personal-offer-training-type/personal-offer-training-type.component.html
+++ b/src/app/form/form-view/personal-offer-form/personal-offer-training-type/personal-offer-training-type.component.html
@@ -5,11 +5,9 @@
     <p>Facultatif</p>
   </div>
   <app-training-type-picker
-    [baseSkills]="personalOfferForm.get('baseSkills').value"
-    [accessRight]="personalOfferForm.get('accessRight').value"
-    [digitalCultureSecurity]="personalOfferForm.get('digitalCultureSecurity').value"
-    [socialAndProfessional]="personalOfferForm.get('socialAndProfessional').value"
-    [parentingHelp]="personalOfferForm.get('parentingHelp').value"
+    [baseSkills]="personalOfferForm.get('categories').get('baseSkills').value"
+    [advancedSkills]="personalOfferForm.get('categories').get('advancedSkills').value"
+    [trainingCategories]="trainingCategories"
     (selectedType)="setTrainingsFromCategories($event)"
   ></app-training-type-picker>
 </form>
diff --git a/src/app/form/form-view/personal-offer-form/personal-offer-training-type/personal-offer-training-type.component.ts b/src/app/form/form-view/personal-offer-form/personal-offer-training-type/personal-offer-training-type.component.ts
index 59e5e07b9..4b1317d1e 100644
--- a/src/app/form/form-view/personal-offer-form/personal-offer-training-type/personal-offer-training-type.component.ts
+++ b/src/app/form/form-view/personal-offer-form/personal-offer-training-type/personal-offer-training-type.component.ts
@@ -9,12 +9,13 @@ import { Category } from '../../../../structure-list/models/category.model';
 export class PersonalOfferTrainingTypeComponent {
   @Input() structureName: string;
   @Input() personalOfferForm: UntypedFormGroup;
+  @Input() trainingCategories: { category: Category; openned: boolean }[];
 
   public setTrainingsFromCategories(categories: Category[]) {
     for (const categorie of categories) {
       const moduleIds: string[] = categorie.modules.map((module) => module.id);
-      if (this.personalOfferForm.get(categorie.id)) {
-        this.personalOfferForm.get(categorie.id).patchValue(moduleIds);
+      if (this.personalOfferForm.get('categories').get(categorie.id)) {
+        this.personalOfferForm.get('categories').get(categorie.id).patchValue(moduleIds);
       }
     }
   }
diff --git a/src/app/form/form-view/structure-form/structure-form.component.ts b/src/app/form/form-view/structure-form/structure-form.component.ts
index 7017cf513..1d3e7dd58 100644
--- a/src/app/form/form-view/structure-form/structure-form.component.ts
+++ b/src/app/form/form-view/structure-form/structure-form.component.ts
@@ -192,7 +192,7 @@ export class StructureFormComponent implements OnChanges, OnInit {
             !this.showSocialNetwork),
       };
       this.pagesValidation[structureFormStep.structurePublicTarget] = {
-        valid: this.structureForm.get('categories').get('publicsAccompaniment').valid,
+        valid: this.structureForm.get('categories').get('age').valid,
       };
       this.pagesValidation[structureFormStep.structureDigitalHelpingAccompaniment] = {
         valid: this.structureForm.get('categories').get('onlineProcedures').valid,
diff --git a/src/app/form/form-view/structure-form/structure-public-target/structure-public-target.component.html b/src/app/form/form-view/structure-form/structure-public-target/structure-public-target.component.html
index 03be25f78..838a9d05a 100644
--- a/src/app/form/form-view/structure-form/structure-public-target/structure-public-target.component.html
+++ b/src/app/form/form-view/structure-form/structure-public-target/structure-public-target.component.html
@@ -29,7 +29,9 @@
     </div>
   </div>
   <div *ngIf="age">
-    <h3>Âge</h3>
+    <div class="title">
+      <h4>Âge</h4>
+    </div>
     <div class="btn-grid">
       <app-button
         *ngFor="let choice of age.modules"
@@ -43,7 +45,10 @@
   </div>
 
   <div *ngIf="languageAndIlliteracy">
-    <h3>Langue et illettrisme</h3>
+    <div class="title">
+      <h4>Langue et illettrisme</h4>
+      <p>Facultatif</p>
+    </div>
     <div class="btn-grid">
       <app-button
         *ngFor="let choice of languageAndIlliteracy.modules"
@@ -57,7 +62,11 @@
   </div>
 
   <div *ngIf="handicaps">
-    <h3>Handicaps</h3>
+    <div class="title">
+      <h4>Handicaps</h4>
+      <p>Facultatif</p>
+    </div>
+
     <div class="btn-grid">
       <app-button
         *ngFor="let choice of handicaps.modules"
diff --git a/src/app/form/orientation-form/component/structure-print-header/structure-print-header.component.ts b/src/app/form/orientation-form/component/structure-print-header/structure-print-header.component.ts
index 58d2eecbd..bb8508542 100644
--- a/src/app/form/orientation-form/component/structure-print-header/structure-print-header.component.ts
+++ b/src/app/form/orientation-form/component/structure-print-header/structure-print-header.component.ts
@@ -34,6 +34,7 @@ export class StructurePrintHeaderComponent implements OnInit {
       minute: 'numeric',
     });
 
+    //TODO: refactor after merging with new orientation
     this.filters.forEach((elem) => {
       switch (elem.name) {
         case 'proceduresAccompaniment':
diff --git a/src/app/form/orientation-form/orientation-form.component.ts b/src/app/form/orientation-form/orientation-form.component.ts
index fcdbb4145..49cd9422a 100644
--- a/src/app/form/orientation-form/orientation-form.component.ts
+++ b/src/app/form/orientation-form/orientation-form.component.ts
@@ -58,11 +58,6 @@ export class OrientationFormComponent implements OnInit {
   public assistance: Module[] = [];
   public formation: Module[] = [];
   public selectedFormations: Category[] = [];
-  public baseSkillssReferentiel: Category;
-  public accessRightsReferentiel: Category;
-  public digitalCultureSecuritysReferentiel: Category;
-  public socialAndProfessionalsReferentiel: Category;
-  public parentingHelpsReferentiel: Category;
 
   public assistanceReferentiel: Category;
   public equipmentReferentiel: Category;
diff --git a/src/app/models/personalOffer.model.ts b/src/app/models/personalOffer.model.ts
index e2edde996..a6de2c41a 100644
--- a/src/app/models/personalOffer.model.ts
+++ b/src/app/models/personalOffer.model.ts
@@ -1,9 +1,22 @@
 export class PersonalOffer {
-  public publicsAccompaniment: string[] = [];
-  public proceduresAccompaniment: string[] = [];
-  public baseSkills: string[] = [];
-  public accessRight: string[] = [];
-  public digitalCultureSecurity: string[] = [];
-  public socialAndProfessional: string[] = [];
-  public parentingHelp: string[] = [];
+  public categories: { [key: string]: string[] };
+
+  constructor(obj?: any) {
+    Object.assign(this, obj, {
+      categories: {
+        accessModality: obj && obj.categories && obj.categories.accessModality ? obj.categories.accessModality : [],
+        labelsQualifications:
+          obj && obj.categories && obj.categories.labelsQualifications ? obj.categories.labelsQualifications : [],
+        onlineProcedures:
+          obj && obj.categories && obj.categories.onlineProcedures ? obj.categories.onlineProcedures : [],
+        baseSkills: obj && obj.categories && obj.categories.baseSkills ? obj.categories.baseSkills : [],
+        advancedSkills: obj && obj.categories && obj.categories.advancedSkills ? obj.categories.advancedSkills : [],
+        age: obj && obj.categories && obj.categories.age ? obj.categories.age : [],
+        languageAndIlliteracy:
+          obj && obj.categories && obj.categories.languageAndIlliteracy ? obj.categories.languageAndIlliteracy : [],
+        handicaps: obj && obj.categories && obj.categories.handicaps ? obj.categories.handicaps : [],
+        publicOthers: obj && obj.categories && obj.categories.publicOthers ? obj.categories.publicOthers : [],
+      },
+    });
+  }
 }
diff --git a/src/app/models/structure.model.ts b/src/app/models/structure.model.ts
index 22a6d1cd2..078bf2874 100644
--- a/src/app/models/structure.model.ts
+++ b/src/app/models/structure.model.ts
@@ -32,28 +32,17 @@ export class Structure {
   public contactPersonEmail: string = null;
   public categories: { [key: string]: string[] };
   public categoriesDisplay: { [key: string]: string[] };
-  // public publicsAccompaniment: string[] = [];
-  // public proceduresAccompaniment: string[] = [];
   public remoteAccompaniment: boolean = null;
-  // public accessModality: string[] = [];
-  // public labelsQualifications: string[] = [];
-  // public publics: string[] = [];
   public nbComputers: number = null;
   public nbPrinters: number = null;
   public nbScanners: number = null;
   public exceptionalClosures: string = null;
-  // public equipmentsAndServices: string[] = [];
   public hours: Week;
   public freeWorkShop: boolean = null;
   public otherDescription: string = null;
 
   public isOpen: boolean = false;
   public openedOn: OpeningDay = new OpeningDay();
-  // public baseSkills: string[] = [];
-  // public accessRight: string[] = [];
-  // public parentingHelp: string[] = [];
-  // public socialAndProfessional: string[] = [];
-  // public digitalCultureSecurity: string[] = [];
 
   public distance?: number;
   public coord?: number[] = [];
diff --git a/src/app/profile/structure-edition-summary/structure-edition-summary.component.ts b/src/app/profile/structure-edition-summary/structure-edition-summary.component.ts
index 95cdb0dba..eaf3b326a 100644
--- a/src/app/profile/structure-edition-summary/structure-edition-summary.component.ts
+++ b/src/app/profile/structure-edition-summary/structure-edition-summary.component.ts
@@ -40,16 +40,6 @@ export class StructureEditionSummaryComponent implements OnInit {
 
   //Digital learning
   public categories: Category[] = [];
-  public baseSkillssReferentiel: Category;
-  public accessRightsReferentiel: Category;
-  public digitalCultureSecuritysReferentiel: Category;
-  public socialAndProfessionalsReferentiel: Category;
-  public parentingHelpsReferentiel: Category;
-  // public baseSkills: Module[];
-  // public accessRights: Module[];
-  // public parentingHelp: Module[];
-  // public socialAndProfessional: Module[];
-  // public digitalCultureSecurity: Module[];
   public showBaseSkills = false;
   public showAdvancedSkills = false;
   public mailHref: string;
diff --git a/src/app/structure-list/components/structure-details/structure-details.component.html b/src/app/structure-list/components/structure-details/structure-details.component.html
index 7ce884c0f..a94499bf8 100644
--- a/src/app/structure-list/components/structure-details/structure-details.component.html
+++ b/src/app/structure-list/components/structure-details/structure-details.component.html
@@ -394,7 +394,7 @@
                 fxLayout="row"
                 fxLayoutGap="20px"
                 fxLayoutAlign=" center"
-                (click)="toggleAccessRights()"
+                (click)="toggleAdvancedSkills()"
               >
                 <div class="titleCollapse">Culture Numérique</div>
                 <div class="logo">
diff --git a/src/app/structure-list/components/structure-details/structure-details.component.ts b/src/app/structure-list/components/structure-details/structure-details.component.ts
index 3219361db..70c8e1040 100644
--- a/src/app/structure-list/components/structure-details/structure-details.component.ts
+++ b/src/app/structure-list/components/structure-details/structure-details.component.ts
@@ -79,7 +79,7 @@ export class StructureDetailsComponent implements OnInit {
         this.structure = new Structure(this.printService.structure);
         this.printMode = true;
         // Display formations for printing
-        this.toggleAccessRights();
+        this.toggleAdvancedSkills();
         this.toggleBaseSkills();
         this.initForm();
       }
@@ -315,7 +315,7 @@ export class StructureDetailsComponent implements OnInit {
     this.showBaseSkills = !this.showBaseSkills;
   }
 
-  public toggleAccessRights(): void {
+  public toggleAdvancedSkills(): void {
     this.showAdvancedSkills = !this.showAdvancedSkills;
   }
 
diff --git a/src/app/structure-list/components/structure-list-search/structure-list-search.component.ts b/src/app/structure-list/components/structure-list-search/structure-list-search.component.ts
index d2eb15a81..6b540e082 100644
--- a/src/app/structure-list/components/structure-list-search/structure-list-search.component.ts
+++ b/src/app/structure-list/components/structure-list-search/structure-list-search.component.ts
@@ -41,10 +41,6 @@ export class StructureListSearchComponent implements OnInit {
   public categoriesMoreFilters: Category[] = [];
 
   public queryString: string;
-  // Modal confirmation variable
-  public isConfirmationModalOpen = false;
-  public confirmationModalContent =
-    'Afin d’ajouter votre structure,vous allez être redirigé vers le formulaire Grand Lyon à remplir.';
 
   constructor(
     public searchService: SearchService,
@@ -129,21 +125,24 @@ export class StructureListSearchComponent implements OnInit {
   }
 
   // Check if some modules is checked on filter and store number of modules checked
-  //TODO: refactor
   public countCheckFiltersOnModules(checkedModules: Module[]): void {
-    this.numberAccompanimentChecked = checkedModules.filter(
-      (module) => module.name === 'proceduresAccompaniment'
-    ).length;
+    this.numberAccompanimentChecked = checkedModules.filter((module) => module.name === 'onlineProcedures').length;
     this.numberTrainingChecked = checkedModules.filter(
+      (module) => module.name === 'baseSkills' || module.name === 'advancedSkills'
+    ).length;
+    this.numberPublicChecked = checkedModules.filter(
+      (module) =>
+        module.name === 'age' ||
+        module.name === 'languageAndIlliteracy' ||
+        module.name === 'handicaps' ||
+        module.name === 'publicOthers'
+    ).length;
+    this.numberEquipmentChecked = checkedModules.filter(
       (module) =>
-        module.name === 'baseSkills' ||
-        module.name === 'socialAndProfessional' ||
-        module.name === 'parentingHelp' ||
-        module.name === 'accessRight' ||
-        module.name === 'digitalCultureSecurity'
+        module.name === 'solidarityMaterial' ||
+        module.name === 'selfServiceMaterial' ||
+        module.name === 'equipmentsServices'
     ).length;
-    this.numberPublicChecked = checkedModules.filter((module) => module.name === 'publicsAccompaniment').length;
-    this.numberEquipmentChecked = checkedModules.filter((module) => module.name === 'equipmentsAndServices').length;
     this.numberMoreFiltersChecked = checkedModules.filter(
       (module) => module.name === 'labelsQualifications' || module.name === 'accessModality'
     ).length;
diff --git a/src/app/structure-list/models/category.model.ts b/src/app/structure-list/models/category.model.ts
index 3a1f70af4..42c2d77e3 100644
--- a/src/app/structure-list/models/category.model.ts
+++ b/src/app/structure-list/models/category.model.ts
@@ -14,24 +14,4 @@ export class Category {
           : null,
     });
   }
-
-  public isBaseSkills(): boolean {
-    return this.name === 'baseSkills';
-  }
-
-  public isRigthtsAccess(): boolean {
-    return this.id === 'accessRight';
-  }
-
-  public isParentingHelp(): boolean {
-    return this.id === 'parentingHelp';
-  }
-
-  public isDigitalCultureSecurity(): boolean {
-    return this.id === 'digitalCultureSecurity';
-  }
-
-  public isSocialAndProfessional(): boolean {
-    return this.id === 'socialAndProfessional';
-  }
 }
diff --git a/src/app/utils/formUtils.ts b/src/app/utils/formUtils.ts
index a55f2670c..d9f9cfc42 100644
--- a/src/app/utils/formUtils.ts
+++ b/src/app/utils/formUtils.ts
@@ -123,15 +123,15 @@ export class formUtils {
         accessModality: this.loadArrayForCheckbox(structure.categories.accessModality, true),
         publicsAccompaniment: this.loadArrayForCheckbox(structure.categories.age, false), //TODO: add other categ ?
         onlineProcedures: this.loadArrayForCheckbox(structure.categories.onlineProcedures, false),
-        handicaps: this.loadArrayForCheckbox(structure.categories.handicaps, true),
+        handicaps: this.loadArrayForCheckbox(structure.categories.handicaps, false),
         age: this.loadArrayForCheckbox(structure.categories.age, true),
-        languageAndIlliteracy: this.loadArrayForCheckbox(structure.categories.languageAndIlliteracy, true),
+        languageAndIlliteracy: this.loadArrayForCheckbox(structure.categories.languageAndIlliteracy, false),
         selfServiceMaterial: this.loadArrayForCheckbox(structure.categories.selfServiceMaterial, true),
-        publicOthers: this.loadArrayForCheckbox(structure.categories.publicOthers, true),
+        publicOthers: this.loadArrayForCheckbox(structure.categories.publicOthers, false),
         equipmentsAndServices: this.loadArrayForCheckbox(structure.categories.equipmentsServices, false),
         baseSkills: new UntypedFormControl(structure.categories.baseSkills),
-        // solidarityMaterial: this.loadArrayForCheckbox(structure.categories.solidarityMaterial, false),
         advancedSkills: new UntypedFormControl(structure.categories.advancedSkills),
+        // solidarityMaterial: this.loadArrayForCheckbox(structure.categories.solidarityMaterial, false),
       }),
       //TODO: remettre ou migrer les données de accompagnements à distance
       remoteAccompaniment: new UntypedFormControl(false),
-- 
GitLab


From 5a7028c8f43f6227aefeb0803528142109a603c1 Mon Sep 17 00:00:00 2001
From: Hugo SUBTIL <ext.sopra.husubtil@grandlyon.com>
Date: Tue, 25 Oct 2022 14:04:23 +0200
Subject: [PATCH 06/32] fix: public others

---
 .../structure-details/structure-details.component.html   | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/src/app/structure-list/components/structure-details/structure-details.component.html b/src/app/structure-list/components/structure-details/structure-details.component.html
index a94499bf8..19c9d7cd8 100644
--- a/src/app/structure-list/components/structure-details/structure-details.component.html
+++ b/src/app/structure-list/components/structure-details/structure-details.component.html
@@ -234,7 +234,7 @@
         fxLayoutAlign="baseline baseline"
         fxLayoutGap="8px"
       >
-        <h2>Publics Accueillis</h2>
+        <h2></h2>
         <div fxLayout="column" fxLayoutGap="8px" class="services-block">
           <div
             *ngIf="structure.categoriesDisplay.age && structure.categoriesDisplay.age.length"
@@ -267,15 +267,14 @@
               {{ label }}
             </p>
           </div>
-
           <div
-            *ngIf="structure.categoriesDisplay.publicOther && structure.categoriesDisplay.publicOther.length"
+            *ngIf="structure.categoriesDisplay.publicOthers && structure.categoriesDisplay.publicOthers.length"
             fxLayout="column"
             fxLayoutGap="8px"
           >
-            <li *ngFor="let label of structure.categoriesDisplay.publicOther.sort()" class="no-margin-bottom">
+            <p *ngFor="let label of structure.categoriesDisplay.publicOthers.sort()" class="no-margin-bottom">
               {{ label }}
-            </li>
+            </p>
           </div>
         </div>
       </div>
-- 
GitLab


From 7f9d0317d29702399f51b32c005c388fd1d10e67 Mon Sep 17 00:00:00 2001
From: Hugo SUBTIL <ext.sopra.husubtil@grandlyon.com>
Date: Tue, 25 Oct 2022 17:07:43 +0200
Subject: [PATCH 07/32] clean

---
 .../structure-list-search.component.ts         | 18 ------------------
 src/app/utils/formUtils.ts                     |  8 +-------
 2 files changed, 1 insertion(+), 25 deletions(-)

diff --git a/src/app/structure-list/components/structure-list-search/structure-list-search.component.ts b/src/app/structure-list/components/structure-list-search/structure-list-search.component.ts
index 6b540e082..30189b580 100644
--- a/src/app/structure-list/components/structure-list-search/structure-list-search.component.ts
+++ b/src/app/structure-list/components/structure-list-search/structure-list-search.component.ts
@@ -224,24 +224,6 @@ export class StructureListSearchComponent implements OnInit {
         }
       });
     });
-    // this.searchService.getCategoriesTraining().subscribe((res) => {
-    //   const categories: Category[] = res;
-    //   categories.forEach((category) => {
-    //     this.categoriesTraining.push(category);
-    //   });
-    // });
-    // this.searchService.getCategoriesOthers().subscribe((res) => {
-    //   const categories: Category[] = res;
-    //   categories.forEach((category) => {
-    //     if (category.id === 'publicsAccompaniment') {
-    //       this.categoriesPublic.push(category);
-    //     } else if (category.id === 'equipmentsAndServices') {
-    //       this.categoriesEquipment.push(category);
-    //     } else if (category.id === 'labelsQualifications' || category.id === 'accessModality') {
-    //       this.categoriesMoreFilters.push(category);
-    //     }
-    //   });
-    // });
   }
 
   public resetFilters(): void {
diff --git a/src/app/utils/formUtils.ts b/src/app/utils/formUtils.ts
index d9f9cfc42..0266021ae 100644
--- a/src/app/utils/formUtils.ts
+++ b/src/app/utils/formUtils.ts
@@ -117,11 +117,10 @@ export class formUtils {
       placeOfReception: new UntypedFormControl(structure.placeOfReception, !isEditMode && Validators.required),
       choiceCompletion: new UntypedFormControl(structure.choiceCompletion, !isEditMode && Validators.required),
       exceptionalClosures: new UntypedFormControl(structure.exceptionalClosures),
-      //TODO: refactor
       categories: new UntypedFormGroup({
         labelsQualifications: this.loadArrayForCheckbox(structure.categories?.labelsQualifications, false),
         accessModality: this.loadArrayForCheckbox(structure.categories.accessModality, true),
-        publicsAccompaniment: this.loadArrayForCheckbox(structure.categories.age, false), //TODO: add other categ ?
+        publicsAccompaniment: this.loadArrayForCheckbox(structure.categories.age, false),
         onlineProcedures: this.loadArrayForCheckbox(structure.categories.onlineProcedures, false),
         handicaps: this.loadArrayForCheckbox(structure.categories.handicaps, false),
         age: this.loadArrayForCheckbox(structure.categories.age, true),
@@ -136,11 +135,6 @@ export class formUtils {
       //TODO: remettre ou migrer les données de accompagnements à distance
       remoteAccompaniment: new UntypedFormControl(false),
       otherDescription: new UntypedFormControl(structure.otherDescription),
-      //TODO: refactor
-      // accessRight: new UntypedFormControl(structure.accessRight),
-      // parentingHelp: new UntypedFormControl(structure.parentingHelp),
-      // socialAndProfessional: new UntypedFormControl(structure.socialAndProfessional),
-      // digitalCultureSecurity: new UntypedFormControl(structure.digitalCultureSecurity),
       nbComputers: new UntypedFormControl(
         structure.categories.selfServiceMaterial.includes('computer') ? structure.nbComputers : 0,
         [
-- 
GitLab


From c5a87828e60858534e12ccc8bd32359568b055fb Mon Sep 17 00:00:00 2001
From: Hugo SUBTIL <ext.sopra.husubtil@grandlyon.com>
Date: Wed, 26 Oct 2022 17:53:05 +0200
Subject: [PATCH 08/32] fix: removed title

---
 .../structure-details/structure-details.component.html          | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/app/structure-list/components/structure-details/structure-details.component.html b/src/app/structure-list/components/structure-details/structure-details.component.html
index 19c9d7cd8..dfd76b55b 100644
--- a/src/app/structure-list/components/structure-details/structure-details.component.html
+++ b/src/app/structure-list/components/structure-details/structure-details.component.html
@@ -234,7 +234,7 @@
         fxLayoutAlign="baseline baseline"
         fxLayoutGap="8px"
       >
-        <h2></h2>
+        <h2>Publics Accueillis</h2>
         <div fxLayout="column" fxLayoutGap="8px" class="services-block">
           <div
             *ngIf="structure.categoriesDisplay.age && structure.categoriesDisplay.age.length"
-- 
GitLab


From 8062c6bb7f564c9dc065469d06c5254d4a67a9c3 Mon Sep 17 00:00:00 2001
From: Etienne LOUPIAS <eloupias@grandlyon.com>
Date: Thu, 27 Oct 2022 11:19:27 +0000
Subject: [PATCH 09/32] Apply 1 suggestion(s) to 1 file(s)

---
 .../structure-digital-helping-accompaniment.component.html      | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/app/form/form-view/structure-form/structure-digital-helping-accompaniment/structure-digital-helping-accompaniment.component.html b/src/app/form/form-view/structure-form/structure-digital-helping-accompaniment/structure-digital-helping-accompaniment.component.html
index c5444a8e7..e9c68c498 100644
--- a/src/app/form/form-view/structure-form/structure-digital-helping-accompaniment/structure-digital-helping-accompaniment.component.html
+++ b/src/app/form/form-view/structure-form/structure-digital-helping-accompaniment/structure-digital-helping-accompaniment.component.html
@@ -12,7 +12,7 @@
       [icon]="'arrowBack'"
     ></app-svg-icon>
     <div class="titleContent">
-      <h3>Quelles aides au numérique propose la structure&nbsp;?</h3>
+       <h3>Quelles démarches en ligne propose la structure&nbsp;?</h3>
       <p>Facultatif</p>
     </div>
   </div>
-- 
GitLab


From 6367e8373e93068040c8c97e7f15006370fcfda5 Mon Sep 17 00:00:00 2001
From: Etienne LOUPIAS <eloupias@grandlyon.com>
Date: Thu, 27 Oct 2022 11:19:34 +0000
Subject: [PATCH 10/32] Apply 1 suggestion(s) to 1 file(s)

---
 .../personal-offer-training-type.component.html                 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/app/form/form-view/personal-offer-form/personal-offer-training-type/personal-offer-training-type.component.html b/src/app/form/form-view/personal-offer-form/personal-offer-training-type/personal-offer-training-type.component.html
index 8aabfd7a2..48295eb96 100644
--- a/src/app/form/form-view/personal-offer-form/personal-offer-training-type/personal-offer-training-type.component.html
+++ b/src/app/form/form-view/personal-offer-form/personal-offer-training-type/personal-offer-training-type.component.html
@@ -1,7 +1,7 @@
 <form [formGroup]="personalOfferForm" *ngIf="personalOfferForm">
   <div class="title">
     <p class="overtitle">{{ structureName }}</p>
-    <h3>Quelles formations au numérique proposez-vous&nbsp;?</h3>
+    <h3>Quels accompagnements au numérique proposez-vous&nbsp;?</h3>
     <p>Facultatif</p>
   </div>
   <app-training-type-picker
-- 
GitLab


From a3878ebc0a05474bb28cdbaa54ebc1a317b3a0e4 Mon Sep 17 00:00:00 2001
From: Etienne LOUPIAS <eloupias@grandlyon.com>
Date: Thu, 27 Oct 2022 11:19:43 +0000
Subject: [PATCH 11/32] Apply 1 suggestion(s) to 1 file(s)

---
 .../structure-other-services.component.html                     | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/app/form/form-view/structure-form/structure-other-services/structure-other-services.component.html b/src/app/form/form-view/structure-form/structure-other-services/structure-other-services.component.html
index 1741d5c21..cc6253864 100644
--- a/src/app/form/form-view/structure-form/structure-other-services/structure-other-services.component.html
+++ b/src/app/form/form-view/structure-form/structure-other-services/structure-other-services.component.html
@@ -8,7 +8,7 @@
       [icon]="'arrowBack'"
     ></app-svg-icon>
     <div class="titleContent">
-      <h3>Quels autres services sont proposés par la structure&nbsp;?</h3>
+      <h3>Quels sont les autres services proposés par la structure&nbsp;?</h3>
       <p>Facultatif</p>
     </div>
   </div>
-- 
GitLab


From 860ec3b929f0cec2dae805f4d174c4168f51e072 Mon Sep 17 00:00:00 2001
From: Hugo SUBTIL <ext.sopra.husubtil@grandlyon.com>
Date: Thu, 27 Oct 2022 13:41:21 +0200
Subject: [PATCH 12/32] fix: edit label

---
 .../structure-edition-summary.component.html                    | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/app/profile/structure-edition-summary/structure-edition-summary.component.html b/src/app/profile/structure-edition-summary/structure-edition-summary.component.html
index 08dedfca4..141fddbd1 100644
--- a/src/app/profile/structure-edition-summary/structure-edition-summary.component.html
+++ b/src/app/profile/structure-edition-summary/structure-edition-summary.component.html
@@ -290,7 +290,7 @@
 
     <div class="section proceduresAccompaniment">
       <div class="sectionHeader">
-        <p>Aides au numérique proposés</p>
+        <p>Public admis</p>
         <app-button
           [type]="'button'"
           [text]="'Modifier'"
-- 
GitLab


From 0aabc92e381536b8eeaa5e04104db13b110611d5 Mon Sep 17 00:00:00 2001
From: Hugo SUBTIL <ext.sopra.husubtil@grandlyon.com>
Date: Thu, 27 Oct 2022 14:08:28 +0200
Subject: [PATCH 13/32] update style

---
 .../structure-details/structure-details.component.html      | 2 +-
 .../structure-details/structure-details.component.scss      | 6 ++++--
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/app/structure-list/components/structure-details/structure-details.component.html b/src/app/structure-list/components/structure-details/structure-details.component.html
index dfd76b55b..b8e3d3833 100644
--- a/src/app/structure-list/components/structure-details/structure-details.component.html
+++ b/src/app/structure-list/components/structure-details/structure-details.component.html
@@ -242,7 +242,7 @@
             fxLayoutGap="8px"
           >
             <p *ngFor="let label of structure.categoriesDisplay.age.sort()" class="no-margin-bottom">
-              {{ label }}
+              <span>{{ label }}</span>
             </p>
           </div>
           <div
diff --git a/src/app/structure-list/components/structure-details/structure-details.component.scss b/src/app/structure-list/components/structure-details/structure-details.component.scss
index e1012414e..f75591248 100644
--- a/src/app/structure-list/components/structure-details/structure-details.component.scss
+++ b/src/app/structure-list/components/structure-details/structure-details.component.scss
@@ -180,8 +180,10 @@ ul {
   .services-block {
     margin-bottom: 8px;
     p {
-      display: list-item;
-      margin: 0 0 0 25px;
+      margin: 0;
+    }
+    p:last-child {
+      margin: 0;
     }
   }
 
-- 
GitLab


From 71b42538c60a1b72d4319bdb991d88db3090128f Mon Sep 17 00:00:00 2001
From: Bastien DUMONT <bdumont@grandlyon.com>
Date: Thu, 27 Oct 2022 13:40:45 +0000
Subject: [PATCH 14/32] Apply 1 suggestion(s) to 1 file(s)

---
 .../personal-offer-accompaniment.component.ts                    | 1 -
 1 file changed, 1 deletion(-)

diff --git a/src/app/form/form-view/personal-offer-form/personal-offer-accompaniment/personal-offer-accompaniment.component.ts b/src/app/form/form-view/personal-offer-form/personal-offer-accompaniment/personal-offer-accompaniment.component.ts
index 4e5cb073e..6f524fe37 100644
--- a/src/app/form/form-view/personal-offer-form/personal-offer-accompaniment/personal-offer-accompaniment.component.ts
+++ b/src/app/form/form-view/personal-offer-form/personal-offer-accompaniment/personal-offer-accompaniment.component.ts
@@ -18,7 +18,6 @@ export class PersonalOfferAccompanimentComponent implements OnInit {
   public buttonTypeEnum = ButtonType;
   public selectedModules: Module[] = [];
 
-  constructor() {}
 
   ngOnInit(): void {
     this.validateForm.emit();
-- 
GitLab


From f2dd578051c072343a5c7c02c750c085534554a4 Mon Sep 17 00:00:00 2001
From: Bastien DUMONT <bdumont@grandlyon.com>
Date: Thu, 27 Oct 2022 13:40:56 +0000
Subject: [PATCH 15/32] Apply 1 suggestion(s) to 1 file(s)

---
 .../personal-offer-accompaniment.component.ts                   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/app/form/form-view/personal-offer-form/personal-offer-accompaniment/personal-offer-accompaniment.component.ts b/src/app/form/form-view/personal-offer-form/personal-offer-accompaniment/personal-offer-accompaniment.component.ts
index 6f524fe37..105c54b0d 100644
--- a/src/app/form/form-view/personal-offer-form/personal-offer-accompaniment/personal-offer-accompaniment.component.ts
+++ b/src/app/form/form-view/personal-offer-form/personal-offer-accompaniment/personal-offer-accompaniment.component.ts
@@ -33,7 +33,7 @@ export class PersonalOfferAccompanimentComponent implements OnInit {
     this.personalOfferForm
       .get('categories')
       .get('onlineProcedures')
-      .patchValue(this.selectedModules.map((_module) => _module.id));
+      .patchValue(this.selectedModules.map((module) => module.id));
   }
 
   public isSelectedModule(module: Module): boolean {
-- 
GitLab


From fffc0b8eeeb850912cc8c1eeb3a2b7b0be7043f7 Mon Sep 17 00:00:00 2001
From: Hugo SUBTIL <ext.sopra.husubtil@grandlyon.com>
Date: Thu, 27 Oct 2022 15:43:28 +0200
Subject: [PATCH 16/32] fix: missing screen

---
 .../form/footer-form/footer-form.component.ts | 24 +++++++++++++++++
 src/app/form/form-view/form-view.component.ts |  6 +++--
 src/app/form/form-view/form-view.module.ts    |  2 ++
 .../structure-form.component.html             |  9 +++++++
 .../structure-form.component.ts               |  3 +++
 ...ructure-public-target-other.component.html | 27 +++++++++++++++++++
 ...ture-public-target-other.component.spec.ts | 24 +++++++++++++++++
 ...structure-public-target-other.component.ts | 27 +++++++++++++++++++
 .../structure-form/structureFormStep.enum.ts  |  1 +
 .../structure-edition-summary.component.html  | 21 ++++++++++++++-
 10 files changed, 141 insertions(+), 3 deletions(-)
 create mode 100644 src/app/form/form-view/structure-form/structure-public-target-other/structure-public-target-other.component.html
 create mode 100644 src/app/form/form-view/structure-form/structure-public-target-other/structure-public-target-other.component.spec.ts
 create mode 100644 src/app/form/form-view/structure-form/structure-public-target-other/structure-public-target-other.component.ts

diff --git a/src/app/form/footer-form/footer-form.component.ts b/src/app/form/footer-form/footer-form.component.ts
index 392723f27..92f8951d6 100644
--- a/src/app/form/footer-form/footer-form.component.ts
+++ b/src/app/form/footer-form/footer-form.component.ts
@@ -103,6 +103,13 @@ export class FooterFormComponent implements OnChanges {
     return this.form.value.categories.baseSkills.length > 0 || this.form.value.categories.advancedSkills.length > 0;
   }
 
+  /**
+   * Check if trainings are selected in order to ask for pricing
+   */
+  public isOtherAccompanimentSelected(): boolean {
+    return this.form.value.categories?.onlineProcedures.find((el) => el === 'autres') ? true : false;
+  }
+
   public prevPage(): void {
     if (!this.isEditMode && this.currentForm === formType.structure) {
       if (this.currentStep === structureFormStep.structureType) {
@@ -117,6 +124,14 @@ export class FooterFormComponent implements OnChanges {
         }
         return;
       }
+      if (this.currentStep === structureFormStep.structureTrainingType) {
+        if (this.isOtherAccompanimentSelected()) {
+          this.changeCurrentStep.emit(structureFormStep.structureDigitalHelpingAccompanimentOther);
+        } else {
+          this.changeCurrentStep.emit(structureFormStep.structureDigitalHelpingAccompaniment);
+        }
+        return;
+      }
       this.goToPreviousPage();
     } else {
       history.back();
@@ -167,6 +182,15 @@ export class FooterFormComponent implements OnChanges {
         }
         return;
       }
+      // Check if trainings are selected in order to ask for pricing
+      if (this.currentStep === structureFormStep.structureDigitalHelpingAccompaniment) {
+        if (this.isOtherAccompanimentSelected()) {
+          this.changeCurrentStep.emit(structureFormStep.structureDigitalHelpingAccompanimentOther);
+        } else {
+          this.changeCurrentStep.emit(structureFormStep.structureTrainingType);
+        }
+        return;
+      }
       if (this.currentStep === structureFormStep.structureContactCompletion) {
         //TODO Go to send mail page and send the mail
         return;
diff --git a/src/app/form/form-view/form-view.component.ts b/src/app/form/form-view/form-view.component.ts
index 78e97bba4..2950d4f0f 100644
--- a/src/app/form/form-view/form-view.component.ts
+++ b/src/app/form/form-view/form-view.component.ts
@@ -113,7 +113,6 @@ export class FormViewComponent implements OnInit, AfterViewInit {
       if (data.structure) {
         this.isEditMode = true;
         this.structure = data.structure;
-        // TODO: refactor ?
         this.editForm = this.formUtils.createStructureForm(data.structure, this.isEditMode);
         this.structureForm = this.editForm;
         this.hoursForm = this.formUtils.createHoursForm(data.structure);
@@ -231,7 +230,6 @@ export class FormViewComponent implements OnInit, AfterViewInit {
     this.userAcceptNewsletter = isAccepted;
   }
 
-  // TODO: refacto
   private createPersonalOfferForm(personalOffer: PersonalOffer): void {
     this.personalOfferForm = new UntypedFormGroup({
       categories: new UntypedFormGroup({
@@ -444,6 +442,10 @@ export class FormViewComponent implements OnInit, AfterViewInit {
             publicOthers: this.structureForm.get('categories').get('publicOthers').value,
           },
         };
+      case structureFormStep.structureDigitalHelpingAccompanimentOther:
+        return {
+          otherDescription: this.structureForm.get('otherDescription').value,
+        };
       case structureFormStep.structureDigitalHelpingAccompaniment:
         return {
           categories: {
diff --git a/src/app/form/form-view/form-view.module.ts b/src/app/form/form-view/form-view.module.ts
index fa1afdb3f..b157825f4 100644
--- a/src/app/form/form-view/form-view.module.ts
+++ b/src/app/form/form-view/form-view.module.ts
@@ -34,6 +34,7 @@ import { StructureLabelsComponent } from './structure-form/structure-labels/stru
 import { StructureNameAndAddressComponent } from './structure-form/structure-name-and-address/structure-name-and-address.component';
 import { StructureOtherServicesComponent } from './structure-form/structure-other-services/structure-other-services.component';
 import { StructurePmrComponent } from './structure-form/structure-pmr/structure-pmr.component';
+import { structureDigitalHelpingAccompanimentOtherComponent } from './structure-form/structure-public-target-other/structure-public-target-other.component';
 import { StructurePublicTargetComponent } from './structure-form/structure-public-target/structure-public-target.component';
 import { StructureTrainingPriceComponent } from './structure-form/structure-training-price/structure-training-price.component';
 import { StructureTrainingTypeComponent } from './structure-form/structure-training-type/structure-training-type.component';
@@ -66,6 +67,7 @@ import { StructureWifiComponent } from './structure-form/structure-wifi/structur
     StructurePmrComponent,
     StructureWebAndSocialNetworkComponent,
     StructurePublicTargetComponent,
+    structureDigitalHelpingAccompanimentOtherComponent,
     StructureDigitalHelpingAccompanimentComponent,
     StructureTrainingPriceComponent,
     StructureWifiComponent,
diff --git a/src/app/form/form-view/structure-form/structure-form.component.html b/src/app/form/form-view/structure-form/structure-form.component.html
index b246fa3be..601f83e1b 100644
--- a/src/app/form/form-view/structure-form/structure-form.component.html
+++ b/src/app/form/form-view/structure-form/structure-form.component.html
@@ -121,6 +121,15 @@
     >
     </app-structure-public-target>
   </div>
+  <div *ngIf="currentStep == structureFormStep.structureDigitalHelpingAccompanimentOther">
+    <app-structure-public-target-other
+      [isEditMode]="isEditMode"
+      [structureForm]="structureForm"
+      (validateForm)="setValidationsForm()"
+      (updateChoice)="updateChoice($event)"
+    >
+    </app-structure-public-target-other>
+  </div>
   <div *ngIf="currentStep == structureFormStep.structureTrainingType">
     <app-structure-training-type
       [isEditMode]="isEditMode"
diff --git a/src/app/form/form-view/structure-form/structure-form.component.ts b/src/app/form/form-view/structure-form/structure-form.component.ts
index 1d3e7dd58..193d45919 100644
--- a/src/app/form/form-view/structure-form/structure-form.component.ts
+++ b/src/app/form/form-view/structure-form/structure-form.component.ts
@@ -194,6 +194,9 @@ export class StructureFormComponent implements OnChanges, OnInit {
       this.pagesValidation[structureFormStep.structurePublicTarget] = {
         valid: this.structureForm.get('categories').get('age').valid,
       };
+      this.pagesValidation[structureFormStep.structureDigitalHelpingAccompanimentOther] = {
+        valid: this.structureForm.get('otherDescription').valid,
+      };
       this.pagesValidation[structureFormStep.structureDigitalHelpingAccompaniment] = {
         valid: this.structureForm.get('categories').get('onlineProcedures').valid,
       };
diff --git a/src/app/form/form-view/structure-form/structure-public-target-other/structure-public-target-other.component.html b/src/app/form/form-view/structure-form/structure-public-target-other/structure-public-target-other.component.html
new file mode 100644
index 000000000..30856f724
--- /dev/null
+++ b/src/app/form/form-view/structure-form/structure-public-target-other/structure-public-target-other.component.html
@@ -0,0 +1,27 @@
+<form [formGroup]="structureForm" *ngIf="structureForm" (keyup.enter)="isPageValid && !isEditMode ? nextPage() : null">
+  <div class="title" [ngClass]="{ editTitle: isEditMode }">
+    <app-svg-icon
+      (click)="goBack()"
+      *ngIf="isEditMode"
+      [iconClass]="'backArrow'"
+      [type]="'ico'"
+      [icon]="'arrowBack'"
+    ></app-svg-icon>
+    <div class="titleContent">
+      <h3>Quelles sont les autres démarches&nbsp;?</h3>
+    </div>
+  </div>
+  <div class="textareaBlock" fxLayout="column">
+    <textarea
+      rows="8"
+      placeholder="Exemple : tout ce qui est en lien avec la création d'entreprise..."
+      maxlength="500"
+      formControlName="otherDescription"
+    ></textarea>
+    <p>
+      {{
+        getStructureControl('otherDescription').value ? getStructureControl('otherDescription').value.length : 0
+      }}&nbsp;/&nbsp;500
+    </p>
+  </div>
+</form>
diff --git a/src/app/form/form-view/structure-form/structure-public-target-other/structure-public-target-other.component.spec.ts b/src/app/form/form-view/structure-form/structure-public-target-other/structure-public-target-other.component.spec.ts
new file mode 100644
index 000000000..f2ee9523d
--- /dev/null
+++ b/src/app/form/form-view/structure-form/structure-public-target-other/structure-public-target-other.component.spec.ts
@@ -0,0 +1,24 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { structureDigitalHelpingAccompanimentOtherComponent } from './structure-public-target-other.component';
+
+describe('StructurePublicTargetComponent', () => {
+  let component: structureDigitalHelpingAccompanimentOtherComponent;
+  let fixture: ComponentFixture<structureDigitalHelpingAccompanimentOtherComponent>;
+
+  beforeEach(async () => {
+    await TestBed.configureTestingModule({
+      declarations: [structureDigitalHelpingAccompanimentOtherComponent],
+    }).compileComponents();
+  });
+
+  beforeEach(() => {
+    fixture = TestBed.createComponent(structureDigitalHelpingAccompanimentOtherComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
diff --git a/src/app/form/form-view/structure-form/structure-public-target-other/structure-public-target-other.component.ts b/src/app/form/form-view/structure-form/structure-public-target-other/structure-public-target-other.component.ts
new file mode 100644
index 000000000..29da61e40
--- /dev/null
+++ b/src/app/form/form-view/structure-form/structure-public-target-other/structure-public-target-other.component.ts
@@ -0,0 +1,27 @@
+import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
+import { AbstractControl, UntypedFormGroup } from '@angular/forms';
+import { ButtonType } from '../../../../shared/components/button/buttonType.enum';
+
+@Component({
+  selector: 'app-structure-public-target-other',
+  templateUrl: './structure-public-target-other.component.html',
+})
+export class structureDigitalHelpingAccompanimentOtherComponent implements OnInit {
+  @Input() structureForm: UntypedFormGroup;
+  @Input() isEditMode: boolean;
+  @Output() updateChoice = new EventEmitter<any>();
+  @Output() validateForm = new EventEmitter<any>();
+
+  public buttonTypeEnum = ButtonType;
+
+  ngOnInit(): void {
+    this.validateForm.emit();
+  }
+
+  public getStructureControl(nameControl: string): AbstractControl {
+    return this.structureForm.get(nameControl);
+  }
+  public goBack(): void {
+    history.back();
+  }
+}
diff --git a/src/app/form/form-view/structure-form/structureFormStep.enum.ts b/src/app/form/form-view/structure-form/structureFormStep.enum.ts
index 3fdc5d4e1..bf9b11ab7 100644
--- a/src/app/form/form-view/structure-form/structureFormStep.enum.ts
+++ b/src/app/form/form-view/structure-form/structureFormStep.enum.ts
@@ -13,6 +13,7 @@ export enum structureFormStep {
   structureWebAndSocialNetwork,
   structurePublicTarget,
   structureDigitalHelpingAccompaniment,
+  structureDigitalHelpingAccompanimentOther,
   structureTrainingType,
   structureTrainingPrice,
   structureWifi,
diff --git a/src/app/profile/structure-edition-summary/structure-edition-summary.component.html b/src/app/profile/structure-edition-summary/structure-edition-summary.component.html
index 141fddbd1..863df30ff 100644
--- a/src/app/profile/structure-edition-summary/structure-edition-summary.component.html
+++ b/src/app/profile/structure-edition-summary/structure-edition-summary.component.html
@@ -290,7 +290,7 @@
 
     <div class="section proceduresAccompaniment">
       <div class="sectionHeader">
-        <p>Public admis</p>
+        <p>Aide au numérique</p>
         <app-button
           [type]="'button'"
           [text]="'Modifier'"
@@ -309,6 +309,25 @@
       </div>
     </div>
 
+    <div class="section proceduresAccompaniment">
+      <div class="sectionHeader">
+        <p>Autres démarches proposées</p>
+        <app-button
+          [type]="'button'"
+          [text]="'Modifier'"
+          [style]="buttonTypeEnum.Secondary"
+          [extraClass]="'editButton'"
+          (action)="goToEdit(structureFormStep.structureDigitalHelpingAccompanimentOther)"
+        ></app-button>
+      </div>
+      <div class="content">
+        <app-no-information *ngIf="!structure.otherDescription"></app-no-information>
+        <ng-container *ngIf="structure.otherDescription">
+            <p>{{ structure.otherDescription }}</p>
+        </ng-container>
+      </div>
+    </div>
+
     <div class="section learning">
       <div class="sectionHeader">
         <p>Formation au numérique proposés</p>
-- 
GitLab


From 92357959df4445a2aa4cf621e4e79b9707f49007 Mon Sep 17 00:00:00 2001
From: Bastien DUMONT <bdumont@grandlyon.com>
Date: Thu, 27 Oct 2022 14:01:30 +0000
Subject: [PATCH 17/32] Apply 1 suggestion(s) to 1 file(s)

---
 .../structure-edition-summary.component.ts                      | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/app/profile/structure-edition-summary/structure-edition-summary.component.ts b/src/app/profile/structure-edition-summary/structure-edition-summary.component.ts
index eaf3b326a..ec04cd7f3 100644
--- a/src/app/profile/structure-edition-summary/structure-edition-summary.component.ts
+++ b/src/app/profile/structure-edition-summary/structure-edition-summary.component.ts
@@ -133,7 +133,7 @@ export class StructureEditionSummaryComponent implements OnInit {
 
   public containsDigitalHelp(): boolean {
     return (
-      this.structure.categoriesDisplay.onlineProcedures && this.structure.categoriesDisplay.onlineProcedures.length > 0
+      this.structure.categoriesDisplay.onlineProcedures?.length > 0
     );
   }
 
-- 
GitLab


From 9a8f021cc399d3fc01c24ce66594e3effc82e259 Mon Sep 17 00:00:00 2001
From: Bastien DUMONT <bdumont@grandlyon.com>
Date: Thu, 27 Oct 2022 14:01:36 +0000
Subject: [PATCH 18/32] Apply 1 suggestion(s) to 1 file(s)

---
 .../structure-edition-summary.component.ts                      | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/app/profile/structure-edition-summary/structure-edition-summary.component.ts b/src/app/profile/structure-edition-summary/structure-edition-summary.component.ts
index ec04cd7f3..e69982217 100644
--- a/src/app/profile/structure-edition-summary/structure-edition-summary.component.ts
+++ b/src/app/profile/structure-edition-summary/structure-edition-summary.component.ts
@@ -142,7 +142,7 @@ export class StructureEditionSummaryComponent implements OnInit {
   }
 
   public isBaseSkills(): boolean {
-    return this.structure.categories.baseSkills !== undefined && this.structure.categories.baseSkills.length > 0;
+    return this.structure.categories.baseSkills?.length > 0;
   }
   public isAdvancedSkills(): boolean {
     return (
-- 
GitLab


From ebd1fee06aa0157422b525c406d7aa8f68ad99b5 Mon Sep 17 00:00:00 2001
From: Bastien DUMONT <bdumont@grandlyon.com>
Date: Thu, 27 Oct 2022 14:01:41 +0000
Subject: [PATCH 19/32] Apply 1 suggestion(s) to 1 file(s)

---
 .../structure-edition-summary.component.ts                      | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/app/profile/structure-edition-summary/structure-edition-summary.component.ts b/src/app/profile/structure-edition-summary/structure-edition-summary.component.ts
index e69982217..22dc57c7e 100644
--- a/src/app/profile/structure-edition-summary/structure-edition-summary.component.ts
+++ b/src/app/profile/structure-edition-summary/structure-edition-summary.component.ts
@@ -146,7 +146,7 @@ export class StructureEditionSummaryComponent implements OnInit {
   }
   public isAdvancedSkills(): boolean {
     return (
-      this.structure.categories.advancedSkills !== undefined && this.structure.categories.advancedSkills.length > 0
+      this.structure.categories.advancedSkills?.length > 0
     );
   }
 
-- 
GitLab


From 891f21921d0c3a64b46f0142578cbef475fb7c8e Mon Sep 17 00:00:00 2001
From: Bastien DUMONT <bdumont@grandlyon.com>
Date: Thu, 27 Oct 2022 14:01:58 +0000
Subject: [PATCH 20/32] Apply 1 suggestion(s) to 1 file(s)

---
 .../training-type-picker/training-type-picker.component.ts       | 1 -
 1 file changed, 1 deletion(-)

diff --git a/src/app/shared/components/training-type-picker/training-type-picker.component.ts b/src/app/shared/components/training-type-picker/training-type-picker.component.ts
index 7ef78bb4c..0a516a88b 100644
--- a/src/app/shared/components/training-type-picker/training-type-picker.component.ts
+++ b/src/app/shared/components/training-type-picker/training-type-picker.component.ts
@@ -21,7 +21,6 @@ export class TrainingTypePickerComponent implements OnInit {
   public categoriesExpanded: string[] = [];
   public selectedChoices: Category[] = [];
 
-  constructor() {}
 
   ngOnInit(): void {
     this.trainingCategories.forEach((data) => {
-- 
GitLab


From a7bf791e2856b735793f3b366fd4c72d1b360f18 Mon Sep 17 00:00:00 2001
From: Bastien DUMONT <bdumont@grandlyon.com>
Date: Thu, 27 Oct 2022 14:04:50 +0000
Subject: [PATCH 21/32] Apply 1 suggestion(s) to 1 file(s)

---
 .../components/structure-details/structure-details.component.ts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/app/structure-list/components/structure-details/structure-details.component.ts b/src/app/structure-list/components/structure-details/structure-details.component.ts
index 70c8e1040..2fc76f600 100644
--- a/src/app/structure-list/components/structure-details/structure-details.component.ts
+++ b/src/app/structure-list/components/structure-details/structure-details.component.ts
@@ -264,7 +264,7 @@ export class StructureDetailsComponent implements OnInit {
       const structureModuleIds = this.structure.categories[category.id];
       if (structureModuleIds) {
         const moduleNames = category.modules
-          .map((module: Module) => {
+          .map((module) => {
             if (structureModuleIds.includes(module.id)) {
               return module.name;
             }
-- 
GitLab


From ad199426d8d966d7e1bfba98d636e2d9bb0540fb Mon Sep 17 00:00:00 2001
From: Bastien DUMONT <bdumont@grandlyon.com>
Date: Thu, 27 Oct 2022 14:04:58 +0000
Subject: [PATCH 22/32] Apply 1 suggestion(s) to 1 file(s)

---
 .../components/structure-details/structure-details.component.ts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/app/structure-list/components/structure-details/structure-details.component.ts b/src/app/structure-list/components/structure-details/structure-details.component.ts
index 2fc76f600..9af1ceeb4 100644
--- a/src/app/structure-list/components/structure-details/structure-details.component.ts
+++ b/src/app/structure-list/components/structure-details/structure-details.component.ts
@@ -281,7 +281,7 @@ export class StructureDetailsComponent implements OnInit {
   public keepOriginalOrder = (a, b) => a.key;
 
   public hasBaseSkills(): boolean {
-    return this.structure.categories.baseSkills && this.structure.categories.baseSkills.length > 0;
+    return this.structure.categories.baseSkills?.length > 0;
   }
   public hasAdvancedSkills(): boolean {
     return this.structure.categories.advancedSkills && this.structure.categories.advancedSkills.length > 0;
-- 
GitLab


From 0ef763a123841c7425a2e3b93aea0da7e73b56ef Mon Sep 17 00:00:00 2001
From: Bastien DUMONT <bdumont@grandlyon.com>
Date: Thu, 27 Oct 2022 14:05:03 +0000
Subject: [PATCH 23/32] Apply 1 suggestion(s) to 1 file(s)

---
 .../components/structure-details/structure-details.component.ts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/app/structure-list/components/structure-details/structure-details.component.ts b/src/app/structure-list/components/structure-details/structure-details.component.ts
index 9af1ceeb4..82261e8cd 100644
--- a/src/app/structure-list/components/structure-details/structure-details.component.ts
+++ b/src/app/structure-list/components/structure-details/structure-details.component.ts
@@ -284,7 +284,7 @@ export class StructureDetailsComponent implements OnInit {
     return this.structure.categories.baseSkills?.length > 0;
   }
   public hasAdvancedSkills(): boolean {
-    return this.structure.categories.advancedSkills && this.structure.categories.advancedSkills.length > 0;
+    return this.structure.categories.advancedSkills?.length > 0;
   }
 
   public getTclStopPoints(): void {
-- 
GitLab


From d6106643560273d26dd0522d0a7a1458b78cf016 Mon Sep 17 00:00:00 2001
From: Bastien DUMONT <bdumont@grandlyon.com>
Date: Thu, 27 Oct 2022 14:05:10 +0000
Subject: [PATCH 24/32] Apply 1 suggestion(s) to 1 file(s)

---
 src/app/structure-list/models/module.model.ts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/app/structure-list/models/module.model.ts b/src/app/structure-list/models/module.model.ts
index e51ea5ce9..ec92c00a1 100644
--- a/src/app/structure-list/models/module.model.ts
+++ b/src/app/structure-list/models/module.model.ts
@@ -7,7 +7,7 @@ export class Module {
   constructor(id: string, name: string, displayText?: string, apticIds?: string[]) {
     this.id = id;
     this.name = name;
-    this.displayText = displayText ? displayText : name;
+    this.displayText = displayText || name;
     this.apticIds = apticIds;
   }
 }
-- 
GitLab


From ab7dd7674eb44ebdf4929c28bbe2861216dfe350 Mon Sep 17 00:00:00 2001
From: Hugo SUBTIL <ext.sopra.husubtil@grandlyon.com>
Date: Thu, 27 Oct 2022 16:06:20 +0200
Subject: [PATCH 25/32] MR return

---
 .../personal-offer-form.component.ts          |  3 ++-
 .../personal-offer-training-type.component.ts |  3 ++-
 .../structure-equipments.component.ts         |  4 +--
 .../structure-form.component.ts               |  3 ++-
 .../structure-training-type.component.ts      |  3 ++-
 src/app/models/categoriesToogle.model.ts      |  6 +++++
 src/app/models/personalOffer.model.ts         | 21 +++++++--------
 src/app/models/structure.model.ts             | 27 +++++++------------
 .../training-type-picker.component.ts         | 13 ++++-----
 src/app/utils/utils.ts                        | 17 ------------
 10 files changed, 41 insertions(+), 59 deletions(-)
 create mode 100644 src/app/models/categoriesToogle.model.ts

diff --git a/src/app/form/form-view/personal-offer-form/personal-offer-form.component.ts b/src/app/form/form-view/personal-offer-form/personal-offer-form.component.ts
index 0bb039b3f..1cfd020e3 100644
--- a/src/app/form/form-view/personal-offer-form/personal-offer-form.component.ts
+++ b/src/app/form/form-view/personal-offer-form/personal-offer-form.component.ts
@@ -1,6 +1,7 @@
 import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';
 import { UntypedFormGroup } from '@angular/forms';
 import { Router } from '@angular/router';
+import { CategoriesToogle } from 'src/app/models/categoriesToogle.model';
 import { CategoryEnum } from 'src/app/shared/enum/category.enum';
 import { Category } from 'src/app/structure-list/models/category.model';
 import { SearchService } from 'src/app/structure-list/services/search.service';
@@ -19,7 +20,7 @@ export class PersonalOfferFormComponent implements OnChanges, OnInit {
   @Output() setHasOtherOffer = new EventEmitter<boolean>();
   @Output() pageValid = new EventEmitter<any>();
 
-  public trainingCategories: { category: Category; openned: boolean }[] = [];
+  public trainingCategories: CategoriesToogle[] = [];
   public onlineProcedures: Category;
   public personalOfferFormStep = personalOfferFormStep;
   public formTypeEnum = formType;
diff --git a/src/app/form/form-view/personal-offer-form/personal-offer-training-type/personal-offer-training-type.component.ts b/src/app/form/form-view/personal-offer-form/personal-offer-training-type/personal-offer-training-type.component.ts
index 4b1317d1e..7582dad99 100644
--- a/src/app/form/form-view/personal-offer-form/personal-offer-training-type/personal-offer-training-type.component.ts
+++ b/src/app/form/form-view/personal-offer-form/personal-offer-training-type/personal-offer-training-type.component.ts
@@ -1,5 +1,6 @@
 import { Component, Input } from '@angular/core';
 import { UntypedFormGroup } from '@angular/forms';
+import { CategoriesToogle } from 'src/app/models/categoriesToogle.model';
 import { Category } from '../../../../structure-list/models/category.model';
 
 @Component({
@@ -9,7 +10,7 @@ import { Category } from '../../../../structure-list/models/category.model';
 export class PersonalOfferTrainingTypeComponent {
   @Input() structureName: string;
   @Input() personalOfferForm: UntypedFormGroup;
-  @Input() trainingCategories: { category: Category; openned: boolean }[];
+  @Input() trainingCategories: CategoriesToogle[];
 
   public setTrainingsFromCategories(categories: Category[]) {
     for (const categorie of categories) {
diff --git a/src/app/form/form-view/structure-form/structure-equipments/structure-equipments.component.ts b/src/app/form/form-view/structure-form/structure-equipments/structure-equipments.component.ts
index ffff79608..8639baf4f 100644
--- a/src/app/form/form-view/structure-form/structure-equipments/structure-equipments.component.ts
+++ b/src/app/form/form-view/structure-form/structure-equipments/structure-equipments.component.ts
@@ -1,6 +1,6 @@
 import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
 import { AbstractControl, UntypedFormGroup } from '@angular/forms';
-import { Category } from '../../../../structure-list/models/category.model';
+import { CategoriesToogle } from 'src/app/models/categoriesToogle.model';
 
 @Component({
   selector: 'app-structure-equipments',
@@ -10,7 +10,7 @@ import { Category } from '../../../../structure-list/models/category.model';
 export class StructureEquipmentsComponent implements OnInit {
   @Input() structureForm: UntypedFormGroup;
   @Input() isEditMode: boolean;
-  @Input() equipmentsAndServices: { category: Category; openned: boolean }[];
+  @Input() equipmentsAndServices: CategoriesToogle[];
   @Output() validateForm = new EventEmitter<any>();
 
   private vowels = ['a', 'e', 'i', 'o', 'u', 'y'];
diff --git a/src/app/form/form-view/structure-form/structure-form.component.ts b/src/app/form/form-view/structure-form/structure-form.component.ts
index 193d45919..d96731218 100644
--- a/src/app/form/form-view/structure-form/structure-form.component.ts
+++ b/src/app/form/form-view/structure-form/structure-form.component.ts
@@ -1,6 +1,7 @@
 import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';
 import { AbstractControl, UntypedFormArray, UntypedFormControl, UntypedFormGroup } from '@angular/forms';
 import { ActivatedRoute } from '@angular/router';
+import { CategoriesToogle } from 'src/app/models/categoriesToogle.model';
 import { Address } from '../../../models/address.model';
 import { Structure } from '../../../models/structure.model';
 import { User } from '../../../models/user.model';
@@ -45,7 +46,7 @@ export class StructureFormComponent implements OnChanges, OnInit {
   // Form var
   public equipmentsServices: { module: Module; openned: boolean }[] = [];
   public equipments: { module: Module; openned: boolean }[] = [];
-  public trainingCategories: { category: Category; openned: boolean }[] = [];
+  public trainingCategories: CategoriesToogle[] = [];
   public accessModality: Category;
   public labelsQualifications: Category;
   public onlineProcedures: Category;
diff --git a/src/app/form/form-view/structure-form/structure-training-type/structure-training-type.component.ts b/src/app/form/form-view/structure-form/structure-training-type/structure-training-type.component.ts
index 4616b175a..e5e2f4ef2 100644
--- a/src/app/form/form-view/structure-form/structure-training-type/structure-training-type.component.ts
+++ b/src/app/form/form-view/structure-form/structure-training-type/structure-training-type.component.ts
@@ -1,5 +1,6 @@
 import { Component, EventEmitter, Input, Output } from '@angular/core';
 import { UntypedFormGroup } from '@angular/forms';
+import { CategoriesToogle } from 'src/app/models/categoriesToogle.model';
 import { Category } from '../../../../structure-list/models/category.model';
 
 @Component({
@@ -8,7 +9,7 @@ import { Category } from '../../../../structure-list/models/category.model';
 })
 export class StructureTrainingTypeComponent {
   @Input() structureForm: UntypedFormGroup;
-  @Input() trainingCategories: { category: Category; openned: boolean }[];
+  @Input() trainingCategories: CategoriesToogle[];
   @Input() isEditMode: boolean;
   @Output() validateForm = new EventEmitter<any>();
 
diff --git a/src/app/models/categoriesToogle.model.ts b/src/app/models/categoriesToogle.model.ts
new file mode 100644
index 000000000..e1a9800c7
--- /dev/null
+++ b/src/app/models/categoriesToogle.model.ts
@@ -0,0 +1,6 @@
+import { Category } from '../structure-list/models/category.model';
+
+export class CategoriesToogle {
+  category: Category;
+  openned: boolean;
+}
diff --git a/src/app/models/personalOffer.model.ts b/src/app/models/personalOffer.model.ts
index a6de2c41a..1a596e5d0 100644
--- a/src/app/models/personalOffer.model.ts
+++ b/src/app/models/personalOffer.model.ts
@@ -4,18 +4,15 @@ export class PersonalOffer {
   constructor(obj?: any) {
     Object.assign(this, obj, {
       categories: {
-        accessModality: obj && obj.categories && obj.categories.accessModality ? obj.categories.accessModality : [],
-        labelsQualifications:
-          obj && obj.categories && obj.categories.labelsQualifications ? obj.categories.labelsQualifications : [],
-        onlineProcedures:
-          obj && obj.categories && obj.categories.onlineProcedures ? obj.categories.onlineProcedures : [],
-        baseSkills: obj && obj.categories && obj.categories.baseSkills ? obj.categories.baseSkills : [],
-        advancedSkills: obj && obj.categories && obj.categories.advancedSkills ? obj.categories.advancedSkills : [],
-        age: obj && obj.categories && obj.categories.age ? obj.categories.age : [],
-        languageAndIlliteracy:
-          obj && obj.categories && obj.categories.languageAndIlliteracy ? obj.categories.languageAndIlliteracy : [],
-        handicaps: obj && obj.categories && obj.categories.handicaps ? obj.categories.handicaps : [],
-        publicOthers: obj && obj.categories && obj.categories.publicOthers ? obj.categories.publicOthers : [],
+        accessModality: obj?.categories?.accessModality || [],
+        advancedSkills: obj?.categories?.advancedSkills || [],
+        age: obj?.categories?.age || [],
+        baseSkills: obj?.categories?.baseSkills || [],
+        handicaps: obj?.categories?.handicaps || [],
+        labelsQualifications: obj?.categories?.labelsQualifications || [],
+        languageAndIlliteracy: obj?.categories?.languageAndIlliteracy || [],
+        onlineProcedures: obj?.categories?.onlineProcedures || [],
+        publicOthers: obj?.categories?.publicOthers || [],
       },
     });
   }
diff --git a/src/app/models/structure.model.ts b/src/app/models/structure.model.ts
index 078bf2874..bbb9f92ea 100644
--- a/src/app/models/structure.model.ts
+++ b/src/app/models/structure.model.ts
@@ -59,24 +59,15 @@ export class Structure {
     Object.assign(this, obj, {
       hours: obj && obj.hours ? new Week(obj.hours) : new Week(),
       categories: {
-        accessModality: obj && obj.categories && obj.categories.accessModality ? obj.categories.accessModality : [],
-        labelsQualifications:
-          obj && obj.categories && obj.categories.labelsQualifications ? obj.categories.labelsQualifications : [],
-        onlineProcedures:
-          obj && obj.categories && obj.categories.onlineProcedures ? obj.categories.onlineProcedures : [],
-        selfServiceMaterial:
-          obj && obj.categories && obj.categories.selfServiceMaterial ? obj.categories.selfServiceMaterial : [],
-        solidarityMaterial:
-          obj && obj.categories && obj.categories.solidarityMaterial ? obj.categories.solidarityMaterial : [],
-        equipmentsServices:
-          obj && obj.categories && obj.categories.equipmentsServices ? obj.categories.equipmentsServices : [],
-        baseSkills: obj && obj.categories && obj.categories.baseSkills ? obj.categories.baseSkills : [],
-        advancedSkills: obj && obj.categories && obj.categories.advancedSkills ? obj.categories.advancedSkills : [],
-        age: obj && obj.categories && obj.categories.age ? obj.categories.age : [],
-        languageAndIlliteracy:
-          obj && obj.categories && obj.categories.languageAndIlliteracy ? obj.categories.languageAndIlliteracy : [],
-        handicaps: obj && obj.categories && obj.categories.handicaps ? obj.categories.handicaps : [],
-        publicOthers: obj && obj.categories && obj.categories.publicOthers ? obj.categories.publicOthers : [],
+        accessModality: obj?.categories?.accessModality || [],
+        advancedSkills: obj?.categories?.advancedSkills || [],
+        age: obj?.categories?.age || [],
+        baseSkills: obj?.categories?.baseSkills || [],
+        handicaps: obj?.categories?.handicaps || [],
+        labelsQualifications: obj?.categories?.labelsQualifications || [],
+        languageAndIlliteracy: obj?.categories?.languageAndIlliteracy || [],
+        onlineProcedures: obj?.categories?.onlineProcedures || [],
+        publicOthers: obj?.categories?.publicOthers || [],
       },
     });
   }
diff --git a/src/app/shared/components/training-type-picker/training-type-picker.component.ts b/src/app/shared/components/training-type-picker/training-type-picker.component.ts
index 7ef78bb4c..f02a888bf 100644
--- a/src/app/shared/components/training-type-picker/training-type-picker.component.ts
+++ b/src/app/shared/components/training-type-picker/training-type-picker.component.ts
@@ -1,5 +1,6 @@
 import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
 import { cloneDeep, remove } from 'lodash';
+import { CategoriesToogle } from 'src/app/models/categoriesToogle.model';
 import { Category } from '../../../structure-list/models/category.model';
 import { Module } from '../../../structure-list/models/module.model';
 import { CategoryEnum } from '../../enum/category.enum';
@@ -13,7 +14,7 @@ import { ButtonType } from '../button/buttonType.enum';
 export class TrainingTypePickerComponent implements OnInit {
   @Input() public baseSkills: string[];
   @Input() public advancedSkills: string[];
-  @Input() public trainingCategories: { category: Category; openned: boolean }[];
+  @Input() public trainingCategories: CategoriesToogle[];
   @Output() selectedType: EventEmitter<Category[]> = new EventEmitter<Category[]>();
 
   public buttonTypeEnum = ButtonType;
@@ -28,9 +29,9 @@ export class TrainingTypePickerComponent implements OnInit {
       this.categories.push(data.category);
     });
     this.selectedChoices = cloneDeep(this.categories);
-    this.selectedChoices.forEach((categorie) => {
+    this.selectedChoices.forEach((category) => {
       let selectedModulesId: string[] = [];
-      switch (categorie.id) {
+      switch (category.id) {
         case CategoryEnum.baseSkills:
           selectedModulesId = this.baseSkills;
           break;
@@ -38,12 +39,12 @@ export class TrainingTypePickerComponent implements OnInit {
           selectedModulesId = this.advancedSkills;
           break;
         default:
-          throw new Error(`Unimplemented training type ${categorie.id}`);
+          throw new Error(`Unimplemented training type ${category.id}`);
       }
       if (selectedModulesId.length) {
-        this.categoriesExpanded.push(categorie.id);
+        this.categoriesExpanded.push(category.id);
       }
-      categorie.modules = categorie.modules.filter((module) => selectedModulesId.includes(module.id));
+      category.modules = category.modules.filter((module) => selectedModulesId.includes(module.id));
     });
   }
 
diff --git a/src/app/utils/utils.ts b/src/app/utils/utils.ts
index c502cfa9e..8f1549928 100644
--- a/src/app/utils/utils.ts
+++ b/src/app/utils/utils.ts
@@ -7,7 +7,6 @@ import { FreeWorkshop } from '../shared/enum/freeWorkshop.enum';
 import { OtherServices } from '../shared/enum/otherServices.enum';
 import { AccessModality } from '../structure-list/enum/access-modality.enum';
 import { Equipment } from '../structure-list/enum/equipment.enum';
-import { PublicCategorie } from '../structure-list/enum/public.enum';
 
 @Injectable({
   providedIn: 'root',
@@ -71,22 +70,6 @@ export class Utils {
     return structure.website !== null && structure.website !== '';
   }
 
-  //TODO: refactor: remove ?
-  public getPublicLabel(tagetPublic: PublicCategorie): string {
-    switch (tagetPublic) {
-      case PublicCategorie.age:
-        return 'Jeunes (16 - 25 ans)';
-      case PublicCategorie.handicaps:
-        return 'Adultes';
-      case PublicCategorie.languageAndIlliteracy:
-        return 'Séniors (+ de 65 ans)';
-      case PublicCategorie.other:
-        return 'Tout public';
-      default:
-        return null;
-    }
-  }
-
   public getDigitalHelpLabel(digitalHelp: Demarches) {
     return Demarches[digitalHelp];
   }
-- 
GitLab


From 80d12dcf64d42ed738d22ebaa5ef936e7078f27d Mon Sep 17 00:00:00 2001
From: Hugo SUBTIL <ext.sopra.husubtil@grandlyon.com>
Date: Thu, 27 Oct 2022 16:10:19 +0200
Subject: [PATCH 26/32] remove unused code

---
 .../structure-edition-summary.component.html       |  3 +--
 .../structure-details.component.ts                 | 14 --------------
 2 files changed, 1 insertion(+), 16 deletions(-)

diff --git a/src/app/profile/structure-edition-summary/structure-edition-summary.component.html b/src/app/profile/structure-edition-summary/structure-edition-summary.component.html
index 863df30ff..007aec27d 100644
--- a/src/app/profile/structure-edition-summary/structure-edition-summary.component.html
+++ b/src/app/profile/structure-edition-summary/structure-edition-summary.component.html
@@ -323,7 +323,7 @@
       <div class="content">
         <app-no-information *ngIf="!structure.otherDescription"></app-no-information>
         <ng-container *ngIf="structure.otherDescription">
-            <p>{{ structure.otherDescription }}</p>
+          <p>{{ structure.otherDescription }}</p>
         </ng-container>
       </div>
     </div>
@@ -461,7 +461,6 @@
         ></app-button>
       </div>
       <div class="content">
-        <!-- TODO:refactor -->
         <app-no-information *ngIf="structure.categories.labelsQualifications.length === 0"></app-no-information>
         <div *ngFor="let labels of structure.categories.labelsQualifications">
           <app-logo-card [name]="labels"></app-logo-card>
diff --git a/src/app/structure-list/components/structure-details/structure-details.component.ts b/src/app/structure-list/components/structure-details/structure-details.component.ts
index 70c8e1040..3f983118b 100644
--- a/src/app/structure-list/components/structure-details/structure-details.component.ts
+++ b/src/app/structure-list/components/structure-details/structure-details.component.ts
@@ -242,20 +242,6 @@ export class StructureDetailsComponent implements OnInit {
     }
   }
 
-  // public getAccessLabel(accessModality: AccessModality): string {
-  //   switch (accessModality) {
-  //     case AccessModality.free:
-  //       return 'Accès libre';
-  //     case AccessModality.meeting:
-  //       return 'Sur rendez-vous';
-  //     case AccessModality.meetingOnly:
-  //       return 'Uniquement sur RDV';
-  //     case AccessModality.numeric:
-  //       return 'Téléphone / Visio';
-  //     default:
-  //       return null;
-  //   }
-  // }
   /**
    * Map categories ids to there real names
    */
-- 
GitLab


From 85aff2defec9d9c94946f98d782cc1a01c0fc5b4 Mon Sep 17 00:00:00 2001
From: Hugo SUBTIL <ext.sopra.husubtil@grandlyon.com>
Date: Thu, 27 Oct 2022 16:27:37 +0200
Subject: [PATCH 27/32] fix: missing type

---
 src/app/models/structure.model.ts | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/app/models/structure.model.ts b/src/app/models/structure.model.ts
index bbb9f92ea..59e27cf41 100644
--- a/src/app/models/structure.model.ts
+++ b/src/app/models/structure.model.ts
@@ -68,6 +68,8 @@ export class Structure {
         languageAndIlliteracy: obj?.categories?.languageAndIlliteracy || [],
         onlineProcedures: obj?.categories?.onlineProcedures || [],
         publicOthers: obj?.categories?.publicOthers || [],
+        selfServiceMaterial: obj?.categories?.selfServiceMaterial || [],
+        equipmentsServices: obj?.categories?.equipmentsServices || [],
       },
     });
   }
-- 
GitLab


From 946e9659abd6a244285a18dc62ee0964e5ede94a Mon Sep 17 00:00:00 2001
From: Hugo SUBTIL <ext.sopra.husubtil@grandlyon.com>
Date: Thu, 27 Oct 2022 16:35:55 +0200
Subject: [PATCH 28/32] fix: leftover code

---
 .../form-view/structure-form/structure-form.component.ts     | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/src/app/form/form-view/structure-form/structure-form.component.ts b/src/app/form/form-view/structure-form/structure-form.component.ts
index d96731218..59f8b26e0 100644
--- a/src/app/form/form-view/structure-form/structure-form.component.ts
+++ b/src/app/form/form-view/structure-form/structure-form.component.ts
@@ -50,7 +50,6 @@ export class StructureFormComponent implements OnChanges, OnInit {
   public accessModality: Category;
   public labelsQualifications: Category;
   public onlineProcedures: Category;
-  public publicsAccompaniment: Category;
   public age: Category;
   public publicOthers: Category;
   public handicaps: Category;
@@ -287,10 +286,6 @@ export class StructureFormComponent implements OnChanges, OnInit {
           this.handicaps = categ;
           break;
         }
-        case CategoryEnum.handicaps: {
-          this.publicsAccompaniment = categ;
-          break;
-        }
       }
     });
   }
-- 
GitLab


From 83394e1f07695b26c38809cbdeb40ca1fbc21eb7 Mon Sep 17 00:00:00 2001
From: Hugo SUBTIL <ext.sopra.husubtil@grandlyon.com>
Date: Thu, 27 Oct 2022 16:47:06 +0200
Subject: [PATCH 29/32] feat: refactor of multiple method usage

---
 .../structure-access-modality.component.ts             |  8 ++++----
 .../structure-labels/structure-labels.component.ts     |  8 +++-----
 .../structure-other-services.component.ts              | 10 ++++------
 .../structure-public-target.component.ts               |  8 ++------
 .../structure-wifi/structure-wifi.component.ts         |  7 +++----
 src/app/utils/formUtils.ts                             |  7 +++++++
 6 files changed, 23 insertions(+), 25 deletions(-)

diff --git a/src/app/form/form-view/structure-form/structure-access-modality/structure-access-modality.component.ts b/src/app/form/form-view/structure-form/structure-access-modality/structure-access-modality.component.ts
index ed6f06ded..fb59cf6bd 100644
--- a/src/app/form/form-view/structure-form/structure-access-modality/structure-access-modality.component.ts
+++ b/src/app/form/form-view/structure-form/structure-access-modality/structure-access-modality.component.ts
@@ -1,5 +1,6 @@
 import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
 import { UntypedFormGroup } from '@angular/forms';
+import { formUtils } from 'src/app/utils/formUtils';
 import { Category } from '../../../../structure-list/models/category.model';
 
 @Component({
@@ -13,6 +14,8 @@ export class StructureAccessModalityComponent implements OnInit {
   @Output() checkChange = new EventEmitter<any>();
   @Output() validateForm = new EventEmitter<any>();
 
+  public formUtils = new formUtils();
+
   ngOnInit(): void {
     this.validateForm.emit();
   }
@@ -26,10 +29,7 @@ export class StructureAccessModalityComponent implements OnInit {
   }
 
   public isInArray(formControlName: string, term: string) {
-    if (this.structureForm.get('categories').get(formControlName).value) {
-      return this.structureForm.get('categories').get(formControlName).value.includes(term);
-    }
-    return false;
+    return this.formUtils.isInCategoryArray(term, formControlName, this.structureForm);
   }
 
   public goBack(): void {
diff --git a/src/app/form/form-view/structure-form/structure-labels/structure-labels.component.ts b/src/app/form/form-view/structure-form/structure-labels/structure-labels.component.ts
index 98ef48c8c..32d9087c2 100644
--- a/src/app/form/form-view/structure-form/structure-labels/structure-labels.component.ts
+++ b/src/app/form/form-view/structure-form/structure-labels/structure-labels.component.ts
@@ -1,5 +1,6 @@
 import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
 import { UntypedFormGroup } from '@angular/forms';
+import { formUtils } from 'src/app/utils/formUtils';
 import { Category } from '../../../../structure-list/models/category.model';
 
 @Component({
@@ -14,17 +15,14 @@ export class StructureLabelsComponent implements OnInit {
   @Output() validateForm = new EventEmitter<any>();
   @Output() checkChange = new EventEmitter<any>();
 
+  public formUtils = new formUtils();
   async ngOnInit(): Promise<void> {
     this.validateForm.emit();
   }
   // Check if a FormControl value is in FormArray
   public isInArray(term: string, formControlName: string): boolean {
-    if (this.structureForm.get('categories').get(formControlName).value) {
-      return this.structureForm.get('categories').get(formControlName).value.includes(term);
-    }
-    return false;
+    return this.formUtils.isInCategoryArray(term, formControlName, this.structureForm);
   }
-
   public onCheckChange(event: boolean, formControlName: string, modality: string) {
     this.checkChange.emit({
       event,
diff --git a/src/app/form/form-view/structure-form/structure-other-services/structure-other-services.component.ts b/src/app/form/form-view/structure-form/structure-other-services/structure-other-services.component.ts
index c5548330b..7229c2d8f 100644
--- a/src/app/form/form-view/structure-form/structure-other-services/structure-other-services.component.ts
+++ b/src/app/form/form-view/structure-form/structure-other-services/structure-other-services.component.ts
@@ -1,5 +1,6 @@
 import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
 import { UntypedFormGroup } from '@angular/forms';
+import { formUtils } from 'src/app/utils/formUtils';
 import { Category } from '../../../../structure-list/models/category.model';
 
 @Component({
@@ -12,18 +13,15 @@ export class StructureOtherServicesComponent implements OnInit {
   @Input() equipmentsAndServices: Category;
   @Output() validateForm = new EventEmitter<any>();
   @Output() checkChange = new EventEmitter<any>();
+  public formUtils = new formUtils();
 
   async ngOnInit(): Promise<void> {
     this.validateForm.emit();
   }
 
-  public isInArray(formControlName: string, term: string) {
-    if (this.structureForm.get('categories').get(formControlName).value) {
-      return this.structureForm.get('categories').get(formControlName).value.includes(term);
-    }
-    return false;
+  public isInArray(formControlName: string, term: string): boolean {
+    return this.formUtils.isInCategoryArray(term, formControlName, this.structureForm);
   }
-
   public onCheckChange(event: boolean, formControlName: string, modality: string) {
     this.checkChange.emit({
       event,
diff --git a/src/app/form/form-view/structure-form/structure-public-target/structure-public-target.component.ts b/src/app/form/form-view/structure-form/structure-public-target/structure-public-target.component.ts
index 0813380e1..def473a16 100644
--- a/src/app/form/form-view/structure-form/structure-public-target/structure-public-target.component.ts
+++ b/src/app/form/form-view/structure-form/structure-public-target/structure-public-target.component.ts
@@ -27,12 +27,8 @@ export class StructurePublicTargetComponent implements OnInit {
     this.updateChoice.emit({ formControlName: `categories.${formControlName}`, choice });
   }
 
-  public isInArray(choice: string, formControlName: string) {
-    if (
-      this.structureForm.get('categories').get(formControlName) &&
-      this.structureForm.get('categories').get(formControlName).value.includes(choice)
-    )
-      return true;
+  public isInArray(choice: string, formControlName: string): boolean {
+    if (this.structureForm.get('categories').get(formControlName)?.value.includes(choice)) return true;
     return false;
   }
   public goBack(): void {
diff --git a/src/app/form/form-view/structure-form/structure-wifi/structure-wifi.component.ts b/src/app/form/form-view/structure-form/structure-wifi/structure-wifi.component.ts
index 66e37771e..7ecde8dc6 100644
--- a/src/app/form/form-view/structure-form/structure-wifi/structure-wifi.component.ts
+++ b/src/app/form/form-view/structure-form/structure-wifi/structure-wifi.component.ts
@@ -1,5 +1,6 @@
 import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
 import { UntypedFormGroup } from '@angular/forms';
+import { formUtils } from 'src/app/utils/formUtils';
 
 @Component({
   selector: 'app-structure-wifi',
@@ -11,14 +12,12 @@ export class StructureWifiComponent implements OnInit {
   @Output() validateForm = new EventEmitter<any>();
   @Output() checkChange = new EventEmitter<any>();
 
+  public formUtils = new formUtils();
   ngOnInit(): void {
     if (this.isEditMode) this.validateForm.emit();
   }
   public isInArray(formControlName: string, term: string): boolean {
-    if (this.structureForm.get('categories').get(formControlName).value) {
-      return this.structureForm.get('categories').get(formControlName).value.includes(term);
-    }
-    return false;
+    return this.formUtils.isInCategoryArray(term, formControlName, this.structureForm);
   }
   public onCheckChange(event, catId: string, modId: string): void {
     this.checkChange.emit({ event, formControlName: catId, value: modId });
diff --git a/src/app/utils/formUtils.ts b/src/app/utils/formUtils.ts
index 0266021ae..fd5d9d0bf 100644
--- a/src/app/utils/formUtils.ts
+++ b/src/app/utils/formUtils.ts
@@ -198,4 +198,11 @@ export class formUtils {
       sunday: this.createDay(structure.hours.sunday),
     });
   }
+
+  public isInCategoryArray(term: string, formControlName: string, form: UntypedFormGroup): boolean {
+    if (form.get('categories').get(formControlName).value) {
+      return form.get('categories').get(formControlName).value.includes(term);
+    }
+    return false;
+  }
 }
-- 
GitLab


From 8d6ca31157f2e525b6e580139cabd45a9657d529 Mon Sep 17 00:00:00 2001
From: Hugo SUBTIL <ext.sopra.husubtil@grandlyon.com>
Date: Thu, 27 Oct 2022 18:24:00 +0200
Subject: [PATCH 30/32] fix: merge issue with orientation

---
 package-lock.json                             | 64 +++++++++----------
 src/app/app-routing.module.ts                 |  1 -
 .../online-demarch.component.html             |  2 +-
 .../online-demarch.component.ts               |  7 +-
 src/app/models/structure.model.ts             |  4 --
 src/assets/form/sprite.svg                    | 22 ++++++-
 6 files changed, 57 insertions(+), 43 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index d76654cfb..89302c21f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
 {
   "name": "pamn",
-  "version": "2.0.0-beta2.1",
+  "version": "2.0.0-beta2.2",
   "lockfileVersion": 1,
   "requires": true,
   "dependencies": {
@@ -12294,7 +12294,7 @@
     "bytes": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
-      "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=",
+      "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==",
       "dev": true
     },
     "cacache": {
@@ -12825,7 +12825,7 @@
     "commondir": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
-      "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
+      "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
       "dev": true
     },
     "compare-func": {
@@ -12874,7 +12874,7 @@
         "ms": {
           "version": "2.0.0",
           "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
-          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+          "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
           "dev": true
         }
       }
@@ -12935,7 +12935,7 @@
     "console-control-strings": {
       "version": "1.1.0",
       "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
-      "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
+      "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==",
       "dev": true
     },
     "content-disposition": {
@@ -13271,7 +13271,7 @@
     "cookie-signature": {
       "version": "1.0.6",
       "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
-      "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=",
+      "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==",
       "dev": true
     },
     "copy-anything": {
@@ -13665,7 +13665,7 @@
     "custom-event": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz",
-      "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=",
+      "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==",
       "dev": true
     },
     "d": {
@@ -13779,7 +13779,7 @@
     "decode-uri-component": {
       "version": "0.2.0",
       "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
-      "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
+      "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==",
       "dev": true
     },
     "dedent": {
@@ -13826,7 +13826,7 @@
     "defaults": {
       "version": "1.0.3",
       "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
-      "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
+      "integrity": "sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA==",
       "dev": true,
       "requires": {
         "clone": "^1.0.2"
@@ -13856,7 +13856,7 @@
     "delegates": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
-      "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
+      "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==",
       "dev": true
     },
     "depd": {
@@ -13904,7 +13904,7 @@
     "di": {
       "version": "0.0.1",
       "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz",
-      "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=",
+      "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==",
       "dev": true
     },
     "diff": {
@@ -13931,7 +13931,7 @@
     "dns-equal": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz",
-      "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=",
+      "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==",
       "dev": true
     },
     "dns-packet": {
@@ -13955,7 +13955,7 @@
     "dom-serialize": {
       "version": "2.2.1",
       "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz",
-      "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=",
+      "integrity": "sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==",
       "dev": true,
       "requires": {
         "custom-event": "~1.0.0",
@@ -14221,7 +14221,7 @@
     "ent": {
       "version": "2.2.0",
       "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz",
-      "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=",
+      "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==",
       "dev": true
     },
     "entities": {
@@ -16050,7 +16050,7 @@
     "has-unicode": {
       "version": "2.0.1",
       "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
-      "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
+      "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==",
       "dev": true
     },
     "hat": {
@@ -16102,7 +16102,7 @@
     "hpack.js": {
       "version": "2.1.6",
       "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz",
-      "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=",
+      "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==",
       "dev": true,
       "requires": {
         "inherits": "^2.0.1",
@@ -16201,7 +16201,7 @@
     "http-deceiver": {
       "version": "1.2.7",
       "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz",
-      "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=",
+      "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==",
       "dev": true
     },
     "http-errors": {
@@ -16404,7 +16404,7 @@
     "humanize-ms": {
       "version": "1.2.1",
       "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz",
-      "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=",
+      "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==",
       "dev": true,
       "requires": {
         "ms": "^2.0.0"
@@ -16478,7 +16478,7 @@
     "image-size": {
       "version": "0.5.5",
       "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz",
-      "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=",
+      "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==",
       "dev": true,
       "optional": true
     },
@@ -16785,7 +16785,7 @@
     "is-lambda": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz",
-      "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=",
+      "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==",
       "dev": true
     },
     "is-module": {
@@ -16914,7 +16914,7 @@
     "isobject": {
       "version": "3.0.1",
       "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
-      "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+      "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
       "dev": true
     },
     "isstream": {
@@ -19850,7 +19850,7 @@
     "merge-descriptors": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
-      "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=",
+      "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==",
       "dev": true
     },
     "merge-stream": {
@@ -19868,7 +19868,7 @@
     "methods": {
       "version": "1.1.2",
       "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
-      "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
+      "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
       "dev": true
     },
     "micromatch": {
@@ -20502,7 +20502,7 @@
     "normalize-range": {
       "version": "0.1.2",
       "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
-      "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=",
+      "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
       "dev": true
     },
     "npm-bundled": {
@@ -21308,7 +21308,7 @@
     "path-to-regexp": {
       "version": "0.1.7",
       "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
-      "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=",
+      "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==",
       "dev": true
     },
     "path-type": {
@@ -21969,7 +21969,7 @@
     "promise-inflight": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
-      "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=",
+      "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==",
       "dev": true
     },
     "promise-retry": {
@@ -22378,7 +22378,7 @@
     "prr": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
-      "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
+      "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==",
       "dev": true,
       "optional": true
     },
@@ -22489,7 +22489,7 @@
     "read-cache": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
-      "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=",
+      "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
       "dev": true,
       "requires": {
         "pify": "^2.3.0"
@@ -22498,7 +22498,7 @@
         "pify": {
           "version": "2.3.0",
           "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
-          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+          "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
           "dev": true
         }
       }
@@ -23159,7 +23159,7 @@
     "select-hose": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
-      "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=",
+      "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==",
       "dev": true
     },
     "selenium-webdriver": {
@@ -25053,7 +25053,7 @@
     "void-elements": {
       "version": "2.0.1",
       "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz",
-      "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=",
+      "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==",
       "dev": true
     },
     "w3c-hr-time": {
@@ -25105,7 +25105,7 @@
     "wcwidth": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
-      "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=",
+      "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==",
       "dev": true,
       "requires": {
         "defaults": "^1.0.3"
diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts
index f859d770c..12e3b5477 100644
--- a/src/app/app-routing.module.ts
+++ b/src/app/app-routing.module.ts
@@ -5,7 +5,6 @@ import { CartoComponent } from './carto/carto.component';
 import { ContactComponent } from './contact/contact.component';
 import { FooterComponent } from './footer/footer.component';
 import { StructureListPrintComponent } from './form/orientation-form/component/structure-list-print/structure-list-print.component';
-import { OrientationFormComponent } from './form/orientation-form/orientation-form.component';
 import { AdminGuard } from './guards/admin.guard';
 import { AuthGuard } from './guards/auth.guard';
 import { LegalNoticeComponent } from './legal-notice/legal-notice.component';
diff --git a/src/app/form/orientation-form-view/online-demarch/online-demarch/online-demarch.component.html b/src/app/form/orientation-form-view/online-demarch/online-demarch/online-demarch.component.html
index 753fbf914..94ed0cb52 100644
--- a/src/app/form/orientation-form-view/online-demarch/online-demarch/online-demarch.component.html
+++ b/src/app/form/orientation-form-view/online-demarch/online-demarch/online-demarch.component.html
@@ -6,7 +6,7 @@
         [ngClass]="{ selectedChoice: true }"
         [extraClass]="isSelectedModule(module.id) ? 'selected' : ''"
         [style]="buttonTypeEnum.CheckButton"
-        [text]="module.text"
+        [text]="module.name"
         (action)="handleClick(module)"
       ></app-button>
     </span>
diff --git a/src/app/form/orientation-form-view/online-demarch/online-demarch/online-demarch.component.ts b/src/app/form/orientation-form-view/online-demarch/online-demarch/online-demarch.component.ts
index 0d26adefe..2cd531357 100644
--- a/src/app/form/orientation-form-view/online-demarch/online-demarch/online-demarch.component.ts
+++ b/src/app/form/orientation-form-view/online-demarch/online-demarch/online-demarch.component.ts
@@ -1,5 +1,6 @@
-import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';
+import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
 import { UntypedFormGroup } from '@angular/forms';
+import { CategoryEnum } from 'src/app/shared/enum/category.enum';
 import { ButtonType } from '../../../../shared/components/button/buttonType.enum';
 import { Category } from '../../../../structure-list/models/category.model';
 import { Module } from '../../../../structure-list/models/module.model';
@@ -20,8 +21,8 @@ export class OnlineDemarchComponent implements OnInit {
 
   ngOnInit(): void {
     this.selectedModules = this.form.get('onlineDemarchType').value;
-    this.searchService.getCategoriesAccompaniment().subscribe((categories: Category[]) => {
-      this.accompanimentType = categories[0].modules;
+    this.searchService.getCategories().subscribe((categories: Category[]) => {
+      this.accompanimentType = categories.find((el) => el.id === CategoryEnum.onlineProcedures).modules;
     });
     this.checkValidation.emit();
   }
diff --git a/src/app/models/structure.model.ts b/src/app/models/structure.model.ts
index 8e648d840..8bdb053ef 100644
--- a/src/app/models/structure.model.ts
+++ b/src/app/models/structure.model.ts
@@ -175,12 +175,8 @@ export class Structure {
     switch (equipment) {
       case Equipment.wifi:
         return 'Wifi en accès libre';
-      case Equipment.bornes:
-        return this.nbNumericTerminal > 1 ? 'Bornes numériques' : 'Borne numérique';
       case Equipment.printer:
         return this.nbPrinters > 1 ? 'Imprimantes' : 'Imprimante';
-      case Equipment.tablet:
-        return this.nbTablets > 1 ? 'Tablettes' : 'Tablette';
       case Equipment.computer:
         return this.nbComputers > 1 ? 'Ordinateurs' : 'Ordinateur';
       case Equipment.scanner:
diff --git a/src/assets/form/sprite.svg b/src/assets/form/sprite.svg
index 57a2b85d4..9ff457931 100644
--- a/src/assets/form/sprite.svg
+++ b/src/assets/form/sprite.svg
@@ -862,5 +862,23 @@
       fill="#12A3FF"></path>
   </symbol>
 
-
-</svg>
+  <symbol id="finish" width="22" height="28" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
+    <rect x="6.01224" y="2.61237" width="1" height="17" rx="0.5" transform="rotate(15 6.01224 2.61237)"
+      stroke="white" />
+    <rect x="6.90873" y="6.99372" width="1" height="1" transform="rotate(15 6.90873 6.99372)" stroke="white" />
+    <rect x="5.87357" y="10.8574" width="1" height="1" transform="rotate(15 5.87357 10.8574)" stroke="white" />
+    <rect x="10.7725" y="8.029" width="1" height="1" transform="rotate(15 10.7725 8.029)" stroke="white" />
+    <rect x="9.73685" y="11.8926" width="1" height="1" transform="rotate(15 9.73685 11.8926)" stroke="white" />
+    <rect x="14.6363" y="9.06428" width="1" height="1" transform="rotate(15 14.6363 9.06428)" stroke="white" />
+    <rect x="13.6006" y="12.9279" width="1" height="1" transform="rotate(15 13.6006 12.9279)" stroke="white" />
+    <rect x="8.32279" y="9.44318" width="1" height="1" transform="rotate(15 8.32279 9.44318)" stroke="white" />
+    <rect x="12.1866" y="10.4785" width="1" height="1" transform="rotate(15 12.1866 10.4785)" stroke="white" />
+    <rect x="16.0503" y="11.5137" width="1" height="1" transform="rotate(15 16.0503 11.5137)" stroke="white" />
+    <rect x="9.35795" y="5.57941" width="1" height="1" transform="rotate(15 9.35795 5.57941)" stroke="white" />
+    <rect x="13.2217" y="6.61469" width="1" height="1" transform="rotate(15 13.2217 6.61469)" stroke="white" />
+    <rect x="17.0855" y="7.64997" width="1" height="1" transform="rotate(15 17.0855 7.64997)" stroke="white" />
+    <rect x="6.71928" y="3.8371" width="13" height="9" transform="rotate(15 6.71928 3.8371)" stroke="white" />
+  </symbol>
+
+
+</svg>
\ No newline at end of file
-- 
GitLab


From 0c92fff880c5ebf8211fd0c6b706757a3e97c8f7 Mon Sep 17 00:00:00 2001
From: Hugo SUBTIL <ext.sopra.husubtil@grandlyon.com>
Date: Fri, 28 Oct 2022 09:38:05 +0200
Subject: [PATCH 31/32] fix: typo

---
 .../personal-offer-form/personal-offer-form.component.ts     | 4 ++--
 .../personal-offer-training-type.component.ts                | 4 ++--
 .../structure-equipments/structure-equipments.component.ts   | 4 ++--
 .../form-view/structure-form/structure-form.component.ts     | 4 ++--
 .../structure-training-type.component.ts                     | 4 ++--
 src/app/models/categoriesToogle.model.ts                     | 2 +-
 .../training-type-picker/training-type-picker.component.ts   | 5 ++---
 7 files changed, 13 insertions(+), 14 deletions(-)

diff --git a/src/app/form/form-view/personal-offer-form/personal-offer-form.component.ts b/src/app/form/form-view/personal-offer-form/personal-offer-form.component.ts
index 1cfd020e3..a85b6e3e8 100644
--- a/src/app/form/form-view/personal-offer-form/personal-offer-form.component.ts
+++ b/src/app/form/form-view/personal-offer-form/personal-offer-form.component.ts
@@ -1,7 +1,7 @@
 import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';
 import { UntypedFormGroup } from '@angular/forms';
 import { Router } from '@angular/router';
-import { CategoriesToogle } from 'src/app/models/categoriesToogle.model';
+import { CategoriesToggle } from 'src/app/models/CategoriesToggle.model';
 import { CategoryEnum } from 'src/app/shared/enum/category.enum';
 import { Category } from 'src/app/structure-list/models/category.model';
 import { SearchService } from 'src/app/structure-list/services/search.service';
@@ -20,7 +20,7 @@ export class PersonalOfferFormComponent implements OnChanges, OnInit {
   @Output() setHasOtherOffer = new EventEmitter<boolean>();
   @Output() pageValid = new EventEmitter<any>();
 
-  public trainingCategories: CategoriesToogle[] = [];
+  public trainingCategories: CategoriesToggle[] = [];
   public onlineProcedures: Category;
   public personalOfferFormStep = personalOfferFormStep;
   public formTypeEnum = formType;
diff --git a/src/app/form/form-view/personal-offer-form/personal-offer-training-type/personal-offer-training-type.component.ts b/src/app/form/form-view/personal-offer-form/personal-offer-training-type/personal-offer-training-type.component.ts
index 7582dad99..7b07f34e7 100644
--- a/src/app/form/form-view/personal-offer-form/personal-offer-training-type/personal-offer-training-type.component.ts
+++ b/src/app/form/form-view/personal-offer-form/personal-offer-training-type/personal-offer-training-type.component.ts
@@ -1,6 +1,6 @@
 import { Component, Input } from '@angular/core';
 import { UntypedFormGroup } from '@angular/forms';
-import { CategoriesToogle } from 'src/app/models/categoriesToogle.model';
+import { CategoriesToggle } from 'src/app/models/CategoriesToggle.model';
 import { Category } from '../../../../structure-list/models/category.model';
 
 @Component({
@@ -10,7 +10,7 @@ import { Category } from '../../../../structure-list/models/category.model';
 export class PersonalOfferTrainingTypeComponent {
   @Input() structureName: string;
   @Input() personalOfferForm: UntypedFormGroup;
-  @Input() trainingCategories: CategoriesToogle[];
+  @Input() trainingCategories: CategoriesToggle[];
 
   public setTrainingsFromCategories(categories: Category[]) {
     for (const categorie of categories) {
diff --git a/src/app/form/form-view/structure-form/structure-equipments/structure-equipments.component.ts b/src/app/form/form-view/structure-form/structure-equipments/structure-equipments.component.ts
index 8639baf4f..6389ccfda 100644
--- a/src/app/form/form-view/structure-form/structure-equipments/structure-equipments.component.ts
+++ b/src/app/form/form-view/structure-form/structure-equipments/structure-equipments.component.ts
@@ -1,6 +1,6 @@
 import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
 import { AbstractControl, UntypedFormGroup } from '@angular/forms';
-import { CategoriesToogle } from 'src/app/models/categoriesToogle.model';
+import { CategoriesToggle } from 'src/app/models/CategoriesToggle.model';
 
 @Component({
   selector: 'app-structure-equipments',
@@ -10,7 +10,7 @@ import { CategoriesToogle } from 'src/app/models/categoriesToogle.model';
 export class StructureEquipmentsComponent implements OnInit {
   @Input() structureForm: UntypedFormGroup;
   @Input() isEditMode: boolean;
-  @Input() equipmentsAndServices: CategoriesToogle[];
+  @Input() equipmentsAndServices: CategoriesToggle[];
   @Output() validateForm = new EventEmitter<any>();
 
   private vowels = ['a', 'e', 'i', 'o', 'u', 'y'];
diff --git a/src/app/form/form-view/structure-form/structure-form.component.ts b/src/app/form/form-view/structure-form/structure-form.component.ts
index 59f8b26e0..c713b1a40 100644
--- a/src/app/form/form-view/structure-form/structure-form.component.ts
+++ b/src/app/form/form-view/structure-form/structure-form.component.ts
@@ -1,7 +1,7 @@
 import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';
 import { AbstractControl, UntypedFormArray, UntypedFormControl, UntypedFormGroup } from '@angular/forms';
 import { ActivatedRoute } from '@angular/router';
-import { CategoriesToogle } from 'src/app/models/categoriesToogle.model';
+import { CategoriesToggle } from 'src/app/models/CategoriesToggle.model';
 import { Address } from '../../../models/address.model';
 import { Structure } from '../../../models/structure.model';
 import { User } from '../../../models/user.model';
@@ -46,7 +46,7 @@ export class StructureFormComponent implements OnChanges, OnInit {
   // Form var
   public equipmentsServices: { module: Module; openned: boolean }[] = [];
   public equipments: { module: Module; openned: boolean }[] = [];
-  public trainingCategories: CategoriesToogle[] = [];
+  public trainingCategories: CategoriesToggle[] = [];
   public accessModality: Category;
   public labelsQualifications: Category;
   public onlineProcedures: Category;
diff --git a/src/app/form/form-view/structure-form/structure-training-type/structure-training-type.component.ts b/src/app/form/form-view/structure-form/structure-training-type/structure-training-type.component.ts
index e5e2f4ef2..4d7c529d8 100644
--- a/src/app/form/form-view/structure-form/structure-training-type/structure-training-type.component.ts
+++ b/src/app/form/form-view/structure-form/structure-training-type/structure-training-type.component.ts
@@ -1,6 +1,6 @@
 import { Component, EventEmitter, Input, Output } from '@angular/core';
 import { UntypedFormGroup } from '@angular/forms';
-import { CategoriesToogle } from 'src/app/models/categoriesToogle.model';
+import { CategoriesToggle } from 'src/app/models/CategoriesToggle.model';
 import { Category } from '../../../../structure-list/models/category.model';
 
 @Component({
@@ -9,7 +9,7 @@ import { Category } from '../../../../structure-list/models/category.model';
 })
 export class StructureTrainingTypeComponent {
   @Input() structureForm: UntypedFormGroup;
-  @Input() trainingCategories: CategoriesToogle[];
+  @Input() trainingCategories: CategoriesToggle[];
   @Input() isEditMode: boolean;
   @Output() validateForm = new EventEmitter<any>();
 
diff --git a/src/app/models/categoriesToogle.model.ts b/src/app/models/categoriesToogle.model.ts
index e1a9800c7..7df66e6c8 100644
--- a/src/app/models/categoriesToogle.model.ts
+++ b/src/app/models/categoriesToogle.model.ts
@@ -1,6 +1,6 @@
 import { Category } from '../structure-list/models/category.model';
 
-export class CategoriesToogle {
+export class CategoriesToggle {
   category: Category;
   openned: boolean;
 }
diff --git a/src/app/shared/components/training-type-picker/training-type-picker.component.ts b/src/app/shared/components/training-type-picker/training-type-picker.component.ts
index e03e5c8c1..af7e74c46 100644
--- a/src/app/shared/components/training-type-picker/training-type-picker.component.ts
+++ b/src/app/shared/components/training-type-picker/training-type-picker.component.ts
@@ -1,6 +1,6 @@
 import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
 import { cloneDeep, remove } from 'lodash';
-import { CategoriesToogle } from 'src/app/models/categoriesToogle.model';
+import { CategoriesToggle } from 'src/app/models/CategoriesToggle.model';
 import { Category } from '../../../structure-list/models/category.model';
 import { Module } from '../../../structure-list/models/module.model';
 import { CategoryEnum } from '../../enum/category.enum';
@@ -14,7 +14,7 @@ import { ButtonType } from '../button/buttonType.enum';
 export class TrainingTypePickerComponent implements OnInit {
   @Input() public baseSkills: string[];
   @Input() public advancedSkills: string[];
-  @Input() public trainingCategories: CategoriesToogle[];
+  @Input() public trainingCategories: CategoriesToggle[];
   @Output() selectedType: EventEmitter<Category[]> = new EventEmitter<Category[]>();
 
   public buttonTypeEnum = ButtonType;
@@ -22,7 +22,6 @@ export class TrainingTypePickerComponent implements OnInit {
   public categoriesExpanded: string[] = [];
   public selectedChoices: Category[] = [];
 
-
   ngOnInit(): void {
     this.trainingCategories.forEach((data) => {
       this.categories.push(data.category);
-- 
GitLab


From 91c4f849d536cd87297a2d1846a3aace2dcb33b5 Mon Sep 17 00:00:00 2001
From: Hugo SUBTIL <ext.sopra.husubtil@grandlyon.com>
Date: Fri, 28 Oct 2022 09:44:34 +0200
Subject: [PATCH 32/32] fix: file typo

---
 .../personal-offer-form/personal-offer-form.component.ts        | 2 +-
 .../personal-offer-training-type.component.ts                   | 2 +-
 .../structure-equipments/structure-equipments.component.ts      | 2 +-
 .../form/form-view/structure-form/structure-form.component.ts   | 2 +-
 .../structure-training-type.component.ts                        | 2 +-
 .../{categoriesToogle.model.ts => categoriesToggle.model.ts}    | 0
 .../training-type-picker/training-type-picker.component.ts      | 2 +-
 7 files changed, 6 insertions(+), 6 deletions(-)
 rename src/app/models/{categoriesToogle.model.ts => categoriesToggle.model.ts} (100%)

diff --git a/src/app/form/form-view/personal-offer-form/personal-offer-form.component.ts b/src/app/form/form-view/personal-offer-form/personal-offer-form.component.ts
index a85b6e3e8..6b8c88fa4 100644
--- a/src/app/form/form-view/personal-offer-form/personal-offer-form.component.ts
+++ b/src/app/form/form-view/personal-offer-form/personal-offer-form.component.ts
@@ -1,7 +1,7 @@
 import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';
 import { UntypedFormGroup } from '@angular/forms';
 import { Router } from '@angular/router';
-import { CategoriesToggle } from 'src/app/models/CategoriesToggle.model';
+import { CategoriesToggle } from 'src/app/models/categoriesToggle.model';
 import { CategoryEnum } from 'src/app/shared/enum/category.enum';
 import { Category } from 'src/app/structure-list/models/category.model';
 import { SearchService } from 'src/app/structure-list/services/search.service';
diff --git a/src/app/form/form-view/personal-offer-form/personal-offer-training-type/personal-offer-training-type.component.ts b/src/app/form/form-view/personal-offer-form/personal-offer-training-type/personal-offer-training-type.component.ts
index 7b07f34e7..c88bf56e9 100644
--- a/src/app/form/form-view/personal-offer-form/personal-offer-training-type/personal-offer-training-type.component.ts
+++ b/src/app/form/form-view/personal-offer-form/personal-offer-training-type/personal-offer-training-type.component.ts
@@ -1,6 +1,6 @@
 import { Component, Input } from '@angular/core';
 import { UntypedFormGroup } from '@angular/forms';
-import { CategoriesToggle } from 'src/app/models/CategoriesToggle.model';
+import { CategoriesToggle } from 'src/app/models/categoriesToggle.model';
 import { Category } from '../../../../structure-list/models/category.model';
 
 @Component({
diff --git a/src/app/form/form-view/structure-form/structure-equipments/structure-equipments.component.ts b/src/app/form/form-view/structure-form/structure-equipments/structure-equipments.component.ts
index 6389ccfda..b616dd970 100644
--- a/src/app/form/form-view/structure-form/structure-equipments/structure-equipments.component.ts
+++ b/src/app/form/form-view/structure-form/structure-equipments/structure-equipments.component.ts
@@ -1,6 +1,6 @@
 import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
 import { AbstractControl, UntypedFormGroup } from '@angular/forms';
-import { CategoriesToggle } from 'src/app/models/CategoriesToggle.model';
+import { CategoriesToggle } from 'src/app/models/categoriesToggle.model';
 
 @Component({
   selector: 'app-structure-equipments',
diff --git a/src/app/form/form-view/structure-form/structure-form.component.ts b/src/app/form/form-view/structure-form/structure-form.component.ts
index c713b1a40..13ea981b7 100644
--- a/src/app/form/form-view/structure-form/structure-form.component.ts
+++ b/src/app/form/form-view/structure-form/structure-form.component.ts
@@ -1,7 +1,7 @@
 import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';
 import { AbstractControl, UntypedFormArray, UntypedFormControl, UntypedFormGroup } from '@angular/forms';
 import { ActivatedRoute } from '@angular/router';
-import { CategoriesToggle } from 'src/app/models/CategoriesToggle.model';
+import { CategoriesToggle } from 'src/app/models/categoriesToggle.model';
 import { Address } from '../../../models/address.model';
 import { Structure } from '../../../models/structure.model';
 import { User } from '../../../models/user.model';
diff --git a/src/app/form/form-view/structure-form/structure-training-type/structure-training-type.component.ts b/src/app/form/form-view/structure-form/structure-training-type/structure-training-type.component.ts
index 4d7c529d8..80bb8d9b5 100644
--- a/src/app/form/form-view/structure-form/structure-training-type/structure-training-type.component.ts
+++ b/src/app/form/form-view/structure-form/structure-training-type/structure-training-type.component.ts
@@ -1,6 +1,6 @@
 import { Component, EventEmitter, Input, Output } from '@angular/core';
 import { UntypedFormGroup } from '@angular/forms';
-import { CategoriesToggle } from 'src/app/models/CategoriesToggle.model';
+import { CategoriesToggle } from 'src/app/models/categoriesToggle.model';
 import { Category } from '../../../../structure-list/models/category.model';
 
 @Component({
diff --git a/src/app/models/categoriesToogle.model.ts b/src/app/models/categoriesToggle.model.ts
similarity index 100%
rename from src/app/models/categoriesToogle.model.ts
rename to src/app/models/categoriesToggle.model.ts
diff --git a/src/app/shared/components/training-type-picker/training-type-picker.component.ts b/src/app/shared/components/training-type-picker/training-type-picker.component.ts
index af7e74c46..751387b08 100644
--- a/src/app/shared/components/training-type-picker/training-type-picker.component.ts
+++ b/src/app/shared/components/training-type-picker/training-type-picker.component.ts
@@ -1,6 +1,6 @@
 import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
 import { cloneDeep, remove } from 'lodash';
-import { CategoriesToggle } from 'src/app/models/CategoriesToggle.model';
+import { CategoriesToggle } from 'src/app/models/categoriesToggle.model';
 import { Category } from '../../../structure-list/models/category.model';
 import { Module } from '../../../structure-list/models/module.model';
 import { CategoryEnum } from '../../enum/category.enum';
-- 
GitLab