Skip to content

Commit 931a661

Browse files
committed
fix: new schema for orientation
1 parent 3d32d32 commit 931a661

File tree

10 files changed

+56
-54
lines changed

10 files changed

+56
-54
lines changed

src/features/orientation/components/besoin-link/besoin-link.component.html

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
class="btn orientation-btn bg-light mb-3 px-lg-3 px-2 py-0 rounded-0 d-flex position-relative">
44
<span
55
class="position-absolute top-0 start-0 z-index-over-base ms-lg-4 mt-sm-4 ms-sm-3 mt-1 ms-1 translate-middle square d-flex text-center small bg-secondary text-primary border border-primary rounded-circle"
6-
*ngIf="serviceItem.value === serviceFilter">
6+
*ngIf="serviceFilter?.includes(serviceItem.value)">
77
<span class="visually-hidden">Service sélectionné</span>
88
<span role="img" class="ri-check-line m-auto" aria-hidden="true"></span>
99
</span>
@@ -16,14 +16,13 @@ <h3 class="fs-6 mb-0">
1616
class="stretched-link text-decoration-none text-body"
1717
routerLink="../localisation"
1818
queryParamsHandling="merge"
19-
[queryParams]="{ service: serviceItem.value }"
20-
(click)="selectServiceValue.emit(serviceItem.value); addLastFilter.emit(serviceItem.value)">
19+
[queryParams]="{ service: [serviceItem.value] }"
20+
(click)="selectServiceValue.emit([serviceItem.value]); addLastFilter.emit(serviceItem.value)">
2121
<span class="orientation-btn-label d-block">{{ serviceItem.label }}</span>
2222
</a>
2323
</h3>
24-
<i class="small text-muted-dark">{{ serviceItem.description }}</i>
24+
<em class="small text-muted-dark">{{ serviceItem.description }}</em>
2525
</div>
26-
2726
<span class="ms-auto d-flex align-items-center mt-3">
2827
<button
2928
class="btn btn-link p-0 text-decoration-none z-index-over-base mb-auto"

src/features/orientation/components/besoin-link/besoin-link.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ export class BesoinLinkComponent {
1212

1313
@Input() public selectedServiceItem?: string;
1414

15-
@Input() public serviceFilter: string | null = '';
15+
@Input() public serviceFilter: string[] | null = [];
1616

17-
@Output() public selectServiceValue: EventEmitter<string> = new EventEmitter<string>();
17+
@Output() public selectServiceValue: EventEmitter<string[]> = new EventEmitter<string[]>();
1818

1919
@Output() public addLastFilter: EventEmitter<string> = new EventEmitter<string>();
2020

src/features/orientation/components/selected-filters/selected-filters.component.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2-
import { DispositifProgrammeNational } from '@gouvfr-anct/lieux-de-mediation-numerique';
2+
import { DispositifProgrammeNational, PriseEnChargeSpecifique } from '@gouvfr-anct/lieux-de-mediation-numerique';
33
import { FormGroup } from '@angular/forms';
44
import { FilterFormPresentation } from '../../../core/presenters';
5-
import publicSpecifiqueAcceuilli from '../../pages/accessibilite/public-specifique-accueilli.json';
5+
import prisesEnChargeSpecifiques from '../../pages/accessibilite/prise-en-charge-specifique.json';
66

77
@Component({
88
changeDetection: ChangeDetectionStrategy.OnPush,
@@ -36,7 +36,7 @@ export class SelectedFiltersComponent {
3636

3737
public getLabelFromValue(value: string): string {
3838
return (
39-
[...publicSpecifiqueAcceuilli].find((field: { value: string; label: string }) => {
39+
[...prisesEnChargeSpecifiques].find((field: { value: string; label: string }) => {
4040
return field.value === value;
4141
})?.label ?? ''
4242
);

src/features/orientation/layouts/orientation/orientation.layout.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ export class OrientationLayout {
6767
public lastFilterAdded: { key: string; value: string } | null = null;
6868

6969
public addLastFilter(value: string, key: string, event?: Event) {
70-
const shouldUpdate: boolean = key === 'publics_accueillis' ? (event?.target as HTMLInputElement).checked : true;
70+
const shouldUpdate: boolean = key === 'prise_en_charge_specifique' ? (event?.target as HTMLInputElement).checked : true;
7171
if (shouldUpdate) this.lastFilterAdded = { key, value };
7272
}
7373

src/features/orientation/pages/accessibilite/accessibilite-information-modal-texts.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,7 @@ export const ACCESSIBILITE_INFORMATION_MODAL_TEXTS: Record<
77
'accueil-specifique': {
88
titre: 'Accueil adapté',
99
description: `Si vous sélectionnez certaines de ces options, vous restreindrez votre recherche aux lieux en capacité d'accueillir certains types de publics. Pour toute information concernant les déplacements des personnes en situation de handicap, rendez-vous sur <a href="https://acceslibre.beta.gouv.fr/" target="_blank" title="Accès libre (nouvel onglet)" rel="noopener noreferrer">Accès libre</a>`,
10-
elements: [
11-
'Handicap psychique : trouble psychiatrique donnant lieu à des atteintes comportementales',
12-
'Handicap mental : déficience limitant les activités d’une personne'
13-
],
14-
label: 'Détails de certaines options'
10+
elements: [],
11+
label: undefined
1512
}
1613
};

src/features/orientation/pages/accessibilite/accessibilite.page.html

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,18 @@ <h1 class="h2 text-center fw-bold mt-sm-5 mt-3">
2222
<div class="bg-light px-3 py-2">
2323
<div
2424
class="form-check form-check-inline form-chip my-2"
25-
*ngFor="let accueilSpecifiqueOption of publicSpecifiqueAcceuilliOptions; index as i">
25+
*ngFor="let priseEnChargeSpecifiqueOption of priseEnChargeSpecifiqueOptions; index as i">
2626
<input
2727
type="checkbox"
28-
name="publics_accueillis"
28+
name="prise_en_charge_specifique"
2929
appCheckboxArray
30-
formControlName="publics_accueillis"
30+
formControlName="prise_en_charge_specifique"
3131
class="form-check-input"
32-
[value]="accueilSpecifiqueOption.value"
33-
[attr.id]="'accueilSpecifiqueLabelChip' + i"
34-
(change)="orientationLayout.addLastFilter(accueilSpecifiqueOption.value, 'publics_accueillis', $event)" />
35-
<label class="form-check-label bg-white" [attr.for]="'accueilSpecifiqueLabelChip' + i">
36-
<b>{{ accueilSpecifiqueOption.label }}</b>
32+
[value]="priseEnChargeSpecifiqueOption.value"
33+
[attr.id]="'priseEnChargeSpecifique' + i"
34+
(change)="orientationLayout.addLastFilter(priseEnChargeSpecifiqueOption.value, 'prise_en_charge_specifique', $event)" />
35+
<label class="form-check-label bg-white" [attr.for]="'priseEnChargeSpecifique' + i">
36+
<b>{{ priseEnChargeSpecifiqueOption.label }}</b>
3737
</label>
3838
</div>
3939
</div>

src/features/orientation/pages/accessibilite/accessibilite.page.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import {
66
OrientationInformationContent,
77
OrientationItemPresentation
88
} from '../../presenters';
9-
import publicSpecifiqueAcceuilli from './public-specifique-accueilli.json';
9+
import priseEnChargeSpecifique from './prise-en-charge-specifique.json';
1010
import { ACCESSIBILITE_INFORMATION_MODAL_TEXTS } from './accessibilite-information-modal-texts';
1111

1212
@Component({
@@ -16,7 +16,7 @@ import { ACCESSIBILITE_INFORMATION_MODAL_TEXTS } from './accessibilite-informati
1616
export class AccessibilitePage {
1717
public selectedOrientationInformation: OrientationInformationContent | null = null;
1818

19-
public publicSpecifiqueAcceuilliOptions: OrientationItemPresentation<string>[] = publicSpecifiqueAcceuilli;
19+
public priseEnChargeSpecifiqueOptions: OrientationItemPresentation<string>[] = priseEnChargeSpecifique;
2020

2121
public readonly orientationInformations: Record<AccessibiliteOrientationInformationTypes, OrientationInformationContent> =
2222
ACCESSIBILITE_INFORMATION_MODAL_TEXTS;
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
[
2+
{
3+
"label": "Illettrisme",
4+
"value": "Illettrisme"
5+
},
6+
{
7+
"label": "Langues étrangères (anglais)",
8+
"value": "Langues étrangères (anglais)"
9+
},
10+
{
11+
"label": "Langues étrangères (autres)",
12+
"value": "Langues étrangères (autres)"
13+
},
14+
{
15+
"label": "Handicaps moteurs",
16+
"value": "Handicaps moteurs"
17+
},
18+
{
19+
"label": "Handicaps mentaux",
20+
"value": "Handicaps mentaux"
21+
},
22+
{
23+
"label": "Déficience visuelle",
24+
"value": "Déficience visuelle"
25+
},
26+
{
27+
"label": "Surdité",
28+
"value": "Surdité"
29+
}
30+
]

src/features/orientation/pages/accessibilite/public-specifique-accueilli.json

Lines changed: 0 additions & 26 deletions
This file was deleted.

src/features/orientation/pages/besoin/besoin.page.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,10 @@ export class BesoinPage {
4343

4444
public serviceControl: AbstractControl | null = this.orientationLayout.filterForm.get('service');
4545

46-
public serviceFilter$: Observable<string | null> = this.route.queryParamMap.pipe(
47-
map((paramMap: ParamMap) => paramMap.get('service'))
46+
public serviceFilter$: Observable<string[]> = this.route.queryParamMap.pipe(
47+
map((paramMap: ParamMap) => paramMap.get('service')),
48+
map((service: string | null) => (Array.isArray(service) || service == null ? service : [service])),
49+
map((services: string[] | null) => (services == null ? [] : services))
4850
);
4951

5052
public selectedOrientationInformation: OrientationInformationContent | null = null;

0 commit comments

Comments
 (0)