From bc5ea8e9062232bd080be706a7b93c82fbd418b1 Mon Sep 17 00:00:00 2001 From: Christophe Robillard Date: Fri, 12 Aug 2022 17:19:42 +0200 Subject: [PATCH] update zones with new government --- config/zones.yml | 57 ++++++++++++++++++--------- lib/tasks/populate_zones.rake | 13 +++++- spec/lib/tasks/populate_zones_spec.rb | 4 ++ 3 files changed, 54 insertions(+), 20 deletions(-) diff --git a/config/zones.yml b/config/zones.yml index 4d8ddc04e..54c83ec7c 100644 --- a/config/zones.yml +++ b/config/zones.yml @@ -1,37 +1,58 @@ ministeres: - MAA: - label: "Ministère de l'Agriculture et de l'Alimentation" + - '2022-05-20': "Ministère de l'Agriculture et de la Souveraineté alimentaire" + - '2020-07-06': "Ministère de l'Agriculture et de l'Alimentation" - MC: - label: "Ministère de la Culture" + - '2020-07-06': "Ministère de la Culture" - MAS: - label: "Ministère des Solidarités et de la Santé" + - '2022-05-20': "Ministère de la Santé et de la Prévention" + - '2020-07-06': "Ministère des Solidarités et de la Santé" + - MSAPH: + - '2022-05-20': "Ministère des Solidarités, de l'Autonomie et des personnes handicapées" + - '2020-07-06': "NA" - MTEI: - label: "Ministère du Travail" + - '2022-05-20': "Ministère du Travail, du Plein emploi et de l'Insertion" + - '2020-07-06': "Ministère du Travail" - MEAE: - label: "Ministère de l'Europe et des Affaires étrangères" + - '2020-07-06': "Ministère de l'Europe et des Affaires étrangères" - MEF: - label: "Ministère de l'Économie, des Finances et de la Relance" + - '2022-05-20': "Ministère de l'Économie, des Finances et de la Souveraineté industrielle et numérique" + - '2020-07-06': "Ministère de l'Économie, des Finances et de la Relance" - MJS: - label: "Ministère de la Jeunesse et des Sports" + - '2022-05-20': "NA" + - '2020-07-06': "Ministère de la Jeunesse et des Sports" + - MSJO: + - '2022-05-20': "Ministère des Sports et des Jeux olympiques et paralympiques" + - '2020-07-06': "NA" - MEN: - label: "Ministère de l'Éducation nationale, de la Jeunesse et des Sports" + - '2022-05-20': "Ministère de l'Éducation nationale et de la Jeunesse" + - '2020-07-06': "Ministère de l'Éducation nationale, de la Jeunesse et des Sports" - ESR: - label: "Ministère de l'Enseignement supérieur, de la Recherche et de l'Innovation" + - '2022-05-20': "Ministère de l'Enseignement supérieur et de la Recherche" + - '2020-07-06': "Ministère de l'Enseignement supérieur, de la Recherche et de l'Innovation" - MI: - label: "Ministère de l'Intérieur" + - '2022-05-20': "Ministère de l'Intérieur et des Outre-mer" + - '2020-07-06': "Ministère de l'Intérieur" - MINARM: - label: "Ministère des Armées" + - '2020-07-06': "Ministère des Armées" - MJ: - label: "Ministère de la Justice" + - '2020-07-06': "Ministère de la Justice" - MTES: - label: "Ministère de la Transition écologique" + - '2022-05-20': "Ministère de la Transition écologique et de la Cohésion des territoires" + - '2020-07-06': "Ministère de la Transition écologique" + - MTE: + - '2022-05-20': "Ministère de la Transition énergétique" + - '2020-07-06': "NA" - MCTRCT: - label: "Ministère de la Cohésion des territoires et des Relations avec les collectivités territoriales" + - '2022-05-20': "NA" + - '2020-07-06': "Ministère de la Cohésion des territoires et des Relations avec les collectivités territoriales" - PM: - label: "Premier ministre" + - '2020-07-06': "Premier ministre" - MER: - label: "Ministère de la Mer" + - '2022-05-20': "NA" + - '2020-07-06': "Ministère de la Mer" - MTFP: - label: "Ministère de la Transformation et de la Fonction publiques" + - '2020-07-06': "Ministère de la Transformation et de la Fonction publiques" - OM: - label: "Ministère des Outre-mer" + - '2022-05-20': "NA" + - '2020-07-06': "Ministère des Outre-mer" diff --git a/lib/tasks/populate_zones.rake b/lib/tasks/populate_zones.rake index b7fce39f8..74c206452 100644 --- a/lib/tasks/populate_zones.rake +++ b/lib/tasks/populate_zones.rake @@ -2,11 +2,20 @@ namespace :zones do task populate_zones: :environment do puts "Running deploy task 'populate_zones'" - Zone.create!(acronym: 'COLLECTIVITE', label: 'Collectivité territoriale') + collectivite = Zone.find_or_create_by!(acronym: 'COLLECTIVITE') + coll_label = collectivite.labels.find_or_initialize_by(designated_on: Date.parse('1977-07-30')) + coll_label.update(name: 'Collectivité territoriale') + config = Psych.safe_load(File.read(Rails.root.join("config", "zones.yml"))) config["ministeres"].each do |ministere| acronym = ministere.keys.first - Zone.create!(acronym: acronym, label: ministere["label"]) + zone = Zone.find_or_create_by!(acronym: acronym) + labels_a = ministere[acronym] + labels_a.each do |label_h| + designated_on = label_h.keys.first + label = zone.labels.find_or_initialize_by(designated_on: designated_on) + label.update(name: label_h[designated_on]) + end end end end diff --git a/spec/lib/tasks/populate_zones_spec.rb b/spec/lib/tasks/populate_zones_spec.rb index e96fbdc5a..f6aa50b59 100644 --- a/spec/lib/tasks/populate_zones_spec.rb +++ b/spec/lib/tasks/populate_zones_spec.rb @@ -10,5 +10,9 @@ describe 'populate_zones' do it 'populates zones' do run_task expect(Zone.find_by(acronym: 'PM').label).to eq "Premier ministre" + expect(Zone.find_by(acronym: 'MTEI').labels.first.designated_on).to eq Date.parse('2022-05-20') + expect(Zone.find_by(acronym: 'MTEI').labels.first.name).to eq "Ministère du Travail, du Plein emploi et de l'Insertion" + expect(Zone.find_by(acronym: 'MTEI').labels.last.designated_on).to eq Date.parse('2020-07-06') + expect(Zone.find_by(acronym: 'MTEI').labels.last.name).to eq "Ministère du Travail" end end