diff --git a/frontend/src/components/CanteenIndicators.vue b/frontend/src/components/CanteenIndicators.vue index fac07d3300..da3ba8dae5 100644 --- a/frontend/src/components/CanteenIndicators.vue +++ b/frontend/src/components/CanteenIndicators.vue @@ -78,7 +78,7 @@ export default { return this.canteen.dailyMealCount && this.canteen.productionType !== "central" }, managementType() { - return Constants.ManagementTypes.find((type) => type.value === this.canteen.managementType)?.text + return Constants.ManagementTypes.items.find((type) => type.value === this.canteen.managementType)?.text }, }, } diff --git a/frontend/src/components/DiagnosticSummary/CanteenSummary.vue b/frontend/src/components/DiagnosticSummary/CanteenSummary.vue index 1a8a449802..6500c100e7 100644 --- a/frontend/src/components/DiagnosticSummary/CanteenSummary.vue +++ b/frontend/src/components/DiagnosticSummary/CanteenSummary.vue @@ -39,7 +39,7 @@ {{ canteen.centralProducerSiret || "—" }}

-

Mode de gestion

+

{{ managementTypes.label }}

{{ managementType || "—" }}

@@ -58,7 +58,7 @@

{{ lineMinistry || "—" }}

-

Type d'établissement

+

{{ economicModels.label }}

{{ economicModel || "—" }}

@@ -141,15 +141,19 @@ export default { { text: "SIRET", value: "siret" }, ], lastYear: lastYear(), + economicModels: Constants.EconomicModels, + managementTypes: Constants.ManagementTypes, } }, computed: { productionType() { - const productionType = Constants.ProductionTypesDetailed.find((x) => x.value === this.canteen.productionType) + const productionType = Constants.ProductionTypesDetailed.items.find( + (x) => x.value === this.canteen.productionType + ) return productionType?.body }, managementType() { - const managementType = Constants.ManagementTypes.find((x) => x.value === this.canteen.managementType) + const managementType = this.managementTypes.items.find((x) => x.value === this.canteen.managementType) return managementType?.text }, sectors() { @@ -165,8 +169,8 @@ export default { return ministry?.text }, economicModel() { - const managementType = Constants.EconomicModels.find((x) => x.value === this.canteen.economicModel) - return managementType?.text + const economicModel = this.economicModels.items.find((x) => x.value === this.canteen.economicModel) + return economicModel?.text }, hasSite() { return this.canteen.productionType !== "central" diff --git a/frontend/src/components/TeledeclarationPreview/PreviewTable.vue b/frontend/src/components/TeledeclarationPreview/PreviewTable.vue index a527d2fbd2..934077cc80 100644 --- a/frontend/src/components/TeledeclarationPreview/PreviewTable.vue +++ b/frontend/src/components/TeledeclarationPreview/PreviewTable.vue @@ -111,17 +111,17 @@ export default { return true }, canteenItems() { - const productionTypeDetail = Constants.ProductionTypesDetailed.find( + const productionTypeDetail = Constants.ProductionTypesDetailed.items.find( (x) => x.value === this.canteen.productionType ) - const managementTypeDetail = Constants.ManagementTypes.find((x) => x.value === this.canteen.managementType) + const managementType = Constants.ManagementTypes.items.find((x) => x.value === this.canteen.managementType) const ministryDetail = this.$store.state.lineMinistries.find((x) => x.value === this.canteen.lineMinistry) let items = [ { value: this.canteen.name, label: "Nom de la cantine" }, { value: this.canteen.siret, label: "Numéro SIRET" }, { value: this.canteen.city, label: "Ville" }, - { value: managementTypeDetail ? managementTypeDetail.text : "", label: "Mode de gestion" }, - { value: productionTypeDetail ? productionTypeDetail.body : "", label: "Type d'établissement" }, + { value: managementType ? managementType.text : "", label: Constants.ManagementTypes.label }, + { value: productionTypeDetail ? productionTypeDetail.body : "", label: Constants.EconomicModels.label }, ] if (this.usesCentralProducer) items.push({ value: this.canteen.centralProducerSiret, label: "SIRET du livreur" }) if (this.showSatelliteCanteensCount) diff --git a/frontend/src/constants.js b/frontend/src/constants.js index c10ba18335..481d372c3a 100644 --- a/frontend/src/constants.js +++ b/frontend/src/constants.js @@ -27,52 +27,68 @@ export default Object.freeze({ communicationSupportUrl: null, communicatesOnFoodPlan: null, }, - ManagementTypes: [ - { - text: "Directe", - value: "direct", - }, - { - text: "Concédée", - value: "conceded", - }, - ], - ProductionTypes: [ - { - text: "Livreurs des repas", - value: "central,central_serving", - }, - { - text: "Cantines satellites et autogérées", - value: "site,site_cooked_elsewhere", - }, - ], - ProductionTypesDetailed: [ - { - title: "produit sur place les repas qu'il sert à ses convives", - body: "Mon établissement prépare ce qu'il sert à ses convives", - value: "site", - }, - { - title: "sert des repas preparés par un autre établissement", - body: "Les repas que mon établissement sert à ses convives sont cuisinés ailleurs", - value: "site_cooked_elsewhere", - }, - { - title: "livre des repas mais n'a pas de lieu de service en propre", - body: "Mon établissement livre des repas mais n'a pas de lieu de service en propre", - value: "central", - }, - { - title: "livre des repas et accueille aussi des convives sur place", - body: "Mon établissement livre des repas et accueille aussi des convives sur place", - value: "central_serving", - }, - ], - EconomicModels: [ - { text: "Public", value: "public" }, - { text: "Privé", value: "private" }, - ], + ManagementTypes: { + label: "Mode de gestion", + items: [ + { + text: "Directe", + value: "direct", + }, + { + text: "Concédée", + value: "conceded", + }, + ], + }, + ProductionTypes: { + label: "Type de production", + items: [ + { + text: "Livreurs des repas", + value: "central,central_serving", + }, + { + text: "Cantines satellites et autogérées", + value: "site,site_cooked_elsewhere", + }, + ], + }, + ProductionTypesDetailed: { + label: "Type de production", + items: [ + { + title: "produit sur place les repas qu'il sert à ses convives", + body: "Mon établissement prépare ce qu'il sert à ses convives", + value: "site", + }, + { + title: "sert des repas preparés par un autre établissement", + body: "Les repas que mon établissement sert à ses convives sont cuisinés ailleurs", + value: "site_cooked_elsewhere", + }, + { + title: "livre des repas mais n'a pas de lieu de service en propre", + body: "Mon établissement livre des repas mais n'a pas de lieu de service en propre", + value: "central", + }, + { + title: "livre des repas et accueille aussi des convives sur place", + body: "Mon établissement livre des repas et accueille aussi des convives sur place", + value: "central_serving", + }, + ], + }, + EconomicModels: { + label: "Type d'établissement", + items: [ + { text: "Public", value: "public" }, + { text: "Privé", value: "private" }, + ], + description: [ + "Cantine publique : tout restaurant sous la responsabilité d’une personne morale de droit publique, qu’il soit opéré en gestion directe ou en gestion concédée (notamment avec une société de restauration collective privée). Les restaurants gérés par une association de gestion sont considérés comme publics dès lors que l’association de gestion est rattachée à une administration ou un établissement du secteur public (État, collectivité, fonction publique hospitalière)", + "Cantine privée : restaurant sous la responsabilité d’une structure privée : entreprise, association (hors associations de gestion d’un restaurant de structure publique), établissement scolaire privé, etc.", + ], + }, ProductFamilies: { VIANDES_VOLAILLES: { text: "Viandes et volailles fraîches et surgelées", diff --git a/frontend/src/views/CanteenEditor/CanteenForm.vue b/frontend/src/views/CanteenEditor/CanteenForm.vue index 503515193b..de5590deb4 100644 --- a/frontend/src/views/CanteenEditor/CanteenForm.vue +++ b/frontend/src/views/CanteenEditor/CanteenForm.vue @@ -127,36 +127,29 @@ -

- Cantine publique - : tout restaurant sous la responsabilité d’une personne morale de droit publique, qu’il soit opéré en - gestion directe ou en gestion concédée (notamment avec une société de restauration collective privée). Les - restaurants gérés par une association de gestion sont considérés comme publics dès lors que l’association - de gestion est rattachée à une administration ou un établissement du secteur public (État, collectivité, - fonction publique hospitalière) -

-

- Cantine privée - : restaurant sous la responsabilité d’une structure privée : entreprise, association (hors associations de - gestion d’un restaurant de structure publique), établissement scolaire privé, etc. -

+

@@ -165,7 +158,7 @@ @@ -388,7 +381,7 @@ export default { satelliteSiretMessage: "Le numéro SIRET du livreur ne peut pas être le même que celui de la cantine satellite.", economicModels: Constants.EconomicModels, managementTypes: Constants.ManagementTypes, - productionTypes: Constants.ProductionTypesDetailed.map((pt) => ({ text: pt.title, value: pt.value })), + productionTypesDetailed: Constants.ProductionTypesDetailed, sectorCategory: null, chosenSector: null, ministries: this.$store.state.lineMinistries, @@ -452,6 +445,12 @@ export default { id: sectorId, })) }, + productionTypesDetailedItems() { + return this.productionTypesDetailed.items.map((pt) => ({ + text: pt.title, + value: pt.value, + })) + }, }, mounted() { if (this.$route.query && this.$route.query["valider"]) { diff --git a/frontend/src/views/CanteensPage/CanteensHome.vue b/frontend/src/views/CanteensPage/CanteensHome.vue index 28672cd3e4..8561f221e4 100644 --- a/frontend/src/views/CanteensPage/CanteensHome.vue +++ b/frontend/src/views/CanteensPage/CanteensHome.vue @@ -112,9 +112,9 @@ /> -1 || enabledProductionTypes.indexOf("site_cooked_elsewhere") > -1) { whitelistedProductionTypes.push(siteQuery) } if (enabledProductionTypes.indexOf("central") > -1 || enabledProductionTypes.indexOf("central_serving") > -1) { whitelistedProductionTypes.push(centralQuery) } - this.productionTypes = Constants.ProductionTypes.map((x) => + this.productionTypes.items = Constants.ProductionTypes.items.map((x) => Object.assign(x, { disabled: whitelistedProductionTypes.indexOf(x.value) === -1, }) diff --git a/frontend/src/views/DashboardManager/CanteenInfoWidget.vue b/frontend/src/views/DashboardManager/CanteenInfoWidget.vue index d3dfffe08d..f595956140 100644 --- a/frontend/src/views/DashboardManager/CanteenInfoWidget.vue +++ b/frontend/src/views/DashboardManager/CanteenInfoWidget.vue @@ -95,7 +95,7 @@ export default { return `${this.canteen.city}${departmentString}` }, canteenProductionType() { - const type = Constants.ProductionTypesDetailed.find((mt) => mt.value === this.canteen.productionType) + const type = Constants.ProductionTypesDetailed.items.find((mt) => mt.value === this.canteen.productionType) return type?.title ? capitalise(type?.title) : "Mode de production non renseigné" }, sectors() { @@ -107,8 +107,8 @@ export default { return sectorString ? capitalise(sectorString) : "Non renseigné" }, canteenMgmt() { - const type = Constants.ManagementTypes.find((mt) => mt.value === this.canteen.managementType) - return type?.text || "Non renseigné" + const managementType = Constants.ManagementTypes.items.find((mt) => mt.value === this.canteen.managementType) + return managementType?.text || "Non renseigné" }, canteenImage() { if (!this.canteen.images || this.canteen.images.length === 0) return null diff --git a/frontend/src/views/ManagementPage/CanteensPagination.vue b/frontend/src/views/ManagementPage/CanteensPagination.vue index 404822e396..7d0906c9e5 100644 --- a/frontend/src/views/ManagementPage/CanteensPagination.vue +++ b/frontend/src/views/ManagementPage/CanteensPagination.vue @@ -90,7 +90,7 @@ export default { searchTerm: null, filterProductionType: "all", inProgress: false, - productionTypeOptions: [{ text: "Toutes les cantines", value: "all" }].concat(Constants.ProductionTypes), + productionTypeOptions: [{ text: "Toutes les cantines", value: "all" }].concat(Constants.ProductionTypes.items), } }, computed: {