diff --git a/frontend/src/components/ResultPage.vue b/frontend/src/components/ResultPage.vue index 1f6a218fd..e6e331dbd 100644 --- a/frontend/src/components/ResultPage.vue +++ b/frontend/src/components/ResultPage.vue @@ -20,7 +20,7 @@ const img = computed(() => resultStore.img) const typology = TYPOLOGIES[resultStore.typology] const isDummy = computed(() => stepsStore.isDummy) -const isDummyTypology = computed(() => typology?.isDummyTypology === true) +const hasGuideFactice = typology?.guideFactice !== undefined const isCardDetected = computed(() => resultStore.gunLength !== null && resultStore.gunBarrelLength !== null) const isUp = ref(false) @@ -75,7 +75,7 @@ function sendFeedback (isCorrect: boolean) {
@@ -178,7 +178,7 @@ function sendFeedback (isCorrect: boolean) {
diff --git a/frontend/src/utils/firearms-utils/autre-pistolet.ts b/frontend/src/utils/firearms-utils/autre-pistolet.ts index 1f7e38c25..24c20e28e 100644 --- a/frontend/src/utils/firearms-utils/autre-pistolet.ts +++ b/frontend/src/utils/firearms-utils/autre-pistolet.ts @@ -17,7 +17,6 @@ export const autre_pistolet = { typologie: 'autre_pistolet', displayLabel: 'Pistolet divers', getCategory: () => 'A, B ou D', - isDummyTypology: false, options_text: '', securingSteps: [ { diff --git a/frontend/src/utils/firearms-utils/epaule-a-levier-sous-garde.ts b/frontend/src/utils/firearms-utils/epaule-a-levier-sous-garde.ts index 730742ad1..d0c126ed1 100644 --- a/frontend/src/utils/firearms-utils/epaule-a-levier-sous-garde.ts +++ b/frontend/src/utils/firearms-utils/epaule-a-levier-sous-garde.ts @@ -11,7 +11,6 @@ Armes d’épaule à levier de sous-garde export const epaule_a_levier_sous_garde = { displayLabel: "Arme d'épaule à levier de sous-garde", getCategory: getCommonCategory, - isDummyTypology: false, options_text: 'En manipulant l’arme avec précaution dans une direction sans risque, inspectez l’extrémité du tube sous le canon. Sélectionnez ce que vous voyez :', securingSteps: [ { diff --git a/frontend/src/utils/firearms-utils/epaule-a-pompe.ts b/frontend/src/utils/firearms-utils/epaule-a-pompe.ts index 9954dfb47..8b1a7d70c 100644 --- a/frontend/src/utils/firearms-utils/epaule-a-pompe.ts +++ b/frontend/src/utils/firearms-utils/epaule-a-pompe.ts @@ -5,7 +5,6 @@ export const epaule_a_pompe = { getCategory: (gunLength: number, gunBarrelLength: number) => { if (gunLength && gunBarrelLength) { return gunLength > 75 && gunBarrelLength > 55 ? 'C' : 'B' } else { return 'B ou C' } }, - isDummyTypology: false, options_text: '', securingSteps: [ { diff --git a/frontend/src/utils/firearms-utils/epaule-a-un-coup-par-canon.ts b/frontend/src/utils/firearms-utils/epaule-a-un-coup-par-canon.ts index b20ea42a3..cea1ab63e 100644 --- a/frontend/src/utils/firearms-utils/epaule-a-un-coup-par-canon.ts +++ b/frontend/src/utils/firearms-utils/epaule-a-un-coup-par-canon.ts @@ -15,7 +15,6 @@ export const epaule_a_un_coup_par_canon = { getCategory: (gunLength: number, gunBarrelLength: number) => { if (gunLength && gunBarrelLength) { return (gunLength > 75 && gunBarrelLength > 40) ? 'C' : 'B' } else { return 'B ou C' } }, - isDummyTypology: false, options_text: 'Sélectionnez ce que vous voyez sur la zone centrale de l’arme', securingSteps: [ { diff --git a/frontend/src/utils/firearms-utils/epaule-a-verrou.ts b/frontend/src/utils/firearms-utils/epaule-a-verrou.ts index d0693cdac..c4fe48da4 100644 --- a/frontend/src/utils/firearms-utils/epaule-a-verrou.ts +++ b/frontend/src/utils/firearms-utils/epaule-a-verrou.ts @@ -10,7 +10,6 @@ Armes d’épaule à verrou export const epaule_a_verrou = { displayLabel: 'Arme d’épaule à verrou', getCategory: getCommonCategory, - isDummyTypology: true, securingSteps: [ { options: [ @@ -29,17 +28,21 @@ export const epaule_a_verrou = { ], }, ], - guideFactice: { - cartouches: { - label: 'Balles', - value: 'cartouches', - img_ammo: epauleAVerrouCartridges, - }, - billes: { - label: 'Billes ou trou pour billes', - value: 'billes', - img_ammo: epauleAVerrouBalls, + guideFactice: [ + { + options: [ + { + label: 'Balles', + value: 'cartouches', + img_ammo: epauleAVerrouCartridges, + }, + { + label: 'Billes ou trou pour billes', + value: 'billes', + img_ammo: epauleAVerrouBalls, + }, + ], }, - }, + ], getDisclaimer: getEpaulLevierVerrouDisclaimer, } as const diff --git a/frontend/src/utils/firearms-utils/epaule-semi-auto-militaire-milieu-20e.ts b/frontend/src/utils/firearms-utils/epaule-semi-auto-militaire-milieu-20e.ts index 479cd8d71..4397a4e3d 100644 --- a/frontend/src/utils/firearms-utils/epaule-semi-auto-militaire-milieu-20e.ts +++ b/frontend/src/utils/firearms-utils/epaule-semi-auto-militaire-milieu-20e.ts @@ -4,6 +4,5 @@ Armes d’épaule semi-automatiques ou automatiques type militaire milieu 20e export const epaule_semi_auto_style_militaire_milieu_20e = { displayLabel: 'Arme d’épaule semi-automatique ou automatique', getCategory: () => 'A ou B', - isDummyTypology: false, getDisclaimer: () => "Catégorie A si à l'origine l’arme était à répétition automatique puis a été transformée en arme semi automatique, ou si l’arme possède une crosse rétractable / pliable et qu’en configuration la plus courte elle mesure moins de 60 cm.", } as const diff --git a/frontend/src/utils/firearms-utils/epaule-semi-auto-style-chasse.ts b/frontend/src/utils/firearms-utils/epaule-semi-auto-style-chasse.ts index 81f850f74..18904e80b 100644 --- a/frontend/src/utils/firearms-utils/epaule-semi-auto-style-chasse.ts +++ b/frontend/src/utils/firearms-utils/epaule-semi-auto-style-chasse.ts @@ -11,7 +11,6 @@ Armes d’épaule semi-automatiques ou automatiques type chasse export const epaule_semi_auto_style_chasse = { displayLabel: 'Arme d’épaule semi-automatique', getCategory: getCommonCategory, - isDummyTypology: false, getDisclaimer: (category: string, isCardDetected: boolean) => { if (['B ou C', 'C'].includes(category)) { if (isCardDetected === false) { diff --git a/frontend/src/utils/firearms-utils/epaule_mecanisme_ancien.ts b/frontend/src/utils/firearms-utils/epaule_mecanisme_ancien.ts index a9b960888..275f3704e 100644 --- a/frontend/src/utils/firearms-utils/epaule_mecanisme_ancien.ts +++ b/frontend/src/utils/firearms-utils/epaule_mecanisme_ancien.ts @@ -4,5 +4,4 @@ Armes d’épaule à mécanisme ancien export const epaule_mecanisme_ancien = { displayLabel: "Arme d'épaule à mécanisme ancien", getCategory: () => 'D', - isDummyTypology: false, } as const diff --git a/frontend/src/utils/firearms-utils/pistolet-mecanisme-ancien.ts b/frontend/src/utils/firearms-utils/pistolet-mecanisme-ancien.ts index bbd1e49b6..fb1bda984 100644 --- a/frontend/src/utils/firearms-utils/pistolet-mecanisme-ancien.ts +++ b/frontend/src/utils/firearms-utils/pistolet-mecanisme-ancien.ts @@ -4,5 +4,4 @@ Pistolet à mécanisme ancien export const pistolet_mecanisme_ancien = { displayLabel: 'Pistolet à mécanisme ancien', getCategory: () => 'D', - isDummyTypology: false, } as const diff --git a/frontend/src/utils/firearms-utils/pistolet-semi-auto-moderne.ts b/frontend/src/utils/firearms-utils/pistolet-semi-auto-moderne.ts index ae03cf969..62e365c9a 100644 --- a/frontend/src/utils/firearms-utils/pistolet-semi-auto-moderne.ts +++ b/frontend/src/utils/firearms-utils/pistolet-semi-auto-moderne.ts @@ -12,7 +12,6 @@ Pistolets semi-auto modernes export const pistolet_semi_auto_moderne = { displayLabel: 'Pistolet semi-automatique', getCategory: () => 'B', - isDummyTypology: true, pistolet_semi_auto_moderne_text_option: 'Sélectionner ce que vous voyez sur votre arme : bouton à proximité du pontet du côté gauche de la poignée, OU bouton sur le talon de la crosse.', textOptions: '', securingSteps: [ @@ -51,18 +50,22 @@ export const pistolet_semi_auto_moderne = { ], }, ], - guideFactice: { - cartouche: { - label: 'Cartouches', - value: 'cartouches', - img_ammo: pistoletSemiAutoModerneCartridges, - }, - billes: { - label: 'Billes', - value: 'billes', - img_ammo: pistoletSemiAutoModerneBalls, + guideFactice: [ + { + options: [ + { + label: 'Cartouches', + value: 'cartouches', + img_ammo: pistoletSemiAutoModerneCartridges, + }, + { + label: 'Billes', + value: 'billes', + img_ammo: pistoletSemiAutoModerneBalls, + }, + ], }, - }, + ], getDisclaimer: (category: string) => { if (category === 'D') { return 'Les armes d’alarmes sont susceptibles d’être modifiées pour tirer des munitions létales. Pour des raisons de sécurité, faites si possible expertiser l’arme.' diff --git a/frontend/src/utils/firearms-utils/revolver.ts b/frontend/src/utils/firearms-utils/revolver.ts index d8bc60ec3..52d81ae09 100644 --- a/frontend/src/utils/firearms-utils/revolver.ts +++ b/frontend/src/utils/firearms-utils/revolver.ts @@ -32,7 +32,6 @@ export const revolver = { displayLabel: 'Revolver', getCategory: () => 'B', categoryWithoutSecuring: 'B ou D', - isDummyTypology: true, securingSteps: [ { text: 'En maintenant l’arme dans une direction sécurisée , sélectionnez ce que vous voyez.', @@ -164,18 +163,22 @@ export const revolver = { ], }, ], - guideFactice: { - cartouches: { - label: 'Balles', - value: 'cartouches', - img_ammo: revolverCartridges, - }, - billes: { - label: 'Billes ou trou pour billes', - value: 'billes', - img_ammo: revolverBalls, + guideFactice: [ + { + options: [ + { + label: 'Balles', + value: 'cartouches', + img_ammo: revolverCartridges, + }, + { + label: 'Billes ou trou pour billes', + value: 'billes', + img_ammo: revolverBalls, + }, + ], }, - }, + ], getDisclaimer: (category: string) => { if (category === 'D') { return 'Les armes d’alarmes sont susceptibles d’être modifiées pour tirer des munitions létales. Pour des raisons de sécurité, faites si possible expertiser l’arme.' @@ -186,5 +189,4 @@ export const revolver = { export const revolver_black_powder = { displayLabel: 'Revolver à poudre noire', getCategory: () => 'D', - isDummyTypology: false, } as const diff --git a/frontend/src/utils/firearms-utils/semi-auto-style-militaire-autre.ts b/frontend/src/utils/firearms-utils/semi-auto-style-militaire-autre.ts index 476feeb8c..b53c80fa3 100644 --- a/frontend/src/utils/firearms-utils/semi-auto-style-militaire-autre.ts +++ b/frontend/src/utils/firearms-utils/semi-auto-style-militaire-autre.ts @@ -21,7 +21,6 @@ Armes d’épaule semi-automatiques ou automatiques type militaire moderne export const semi_auto_style_militaire_autre = { displayLabel: 'Arme semi-automatique ou automatique', getCategory: () => 'A ou B', - isDummyTypology: true, securingSteps: [ { text: 'Observez la position du chargeur et sélectionnez ce que vous voyez :', @@ -102,17 +101,21 @@ export const semi_auto_style_militaire_autre = { ], }, ], - guideFactice: { - cartouches: { - label: 'Cartouches', - value: 'cartouches', - img_ammo: semiAutoMilitaireCartridges, - }, - billes: { - label: 'Billes', - value: 'billes', - img_ammo: semiAutoMilitaireBalls, + guideFactice: [ + { + options: [ + { + label: 'Cartouches', + value: 'cartouches', + img_ammo: semiAutoMilitaireCartridges, + }, + { + label: 'Billes', + value: 'billes', + img_ammo: semiAutoMilitaireBalls, + }, + ], }, - }, + ], getDisclaimer: () => "Catégorie A si à l'origine l’arme était à répétition automatique puis a été transformée en arme semi automatique, ou si l’arme possède une crosse rétractable / pliable et qu’en configuration la plus courte elle mesure moins de 60 cm.", } as const diff --git a/frontend/src/views/GuideIdentificationFirearm/GuideIdentificationFirearm.vue b/frontend/src/views/GuideIdentificationFirearm/GuideIdentificationFirearm.vue index 535d57e74..fd0ed91fb 100644 --- a/frontend/src/views/GuideIdentificationFirearm/GuideIdentificationFirearm.vue +++ b/frontend/src/views/GuideIdentificationFirearm/GuideIdentificationFirearm.vue @@ -20,12 +20,10 @@ const confidenceLevel = computed(() => resultStore.confidenceLevel) const typology = computed(() => resultStore.typology) const currentStep = ref(1) - -const isDummyTypology = TYPOLOGIES[resultStore.typology].isDummyTypology const isLowConfidence = confidenceLevel.value === 'low' const steps = computed(() => { - if (isDummyTypology || !isLowConfidence) { + if (TYPOLOGIES[typology]?.guideFactice || !isLowConfidence) { if (ALARM_GUNS_TYPOLOGIES.includes(resultStore.typology) && stepsStore.selectedAmmo === 'cartouches') { return ['Typologie de l\'arme', 'Compléments', 'Typologie de munitions', 'Identification d\'une arme d\'alarme', 'Résultat final'] } else { @@ -99,7 +97,7 @@ const showDiv = ref(false)