From c719a42f8a593e1e9cd7dd6c3d0bc6279dfb3054 Mon Sep 17 00:00:00 2001 From: Martin Date: Thu, 15 Feb 2024 18:03:35 +0100 Subject: [PATCH] feat(procedure.instructeurs_self_management_enabled): backfill instructeurs_self_management_enabled since routing_enabled is not one of the option conditionning it --- .../instructeurs_options_component.html.haml | 2 +- ...res_instructeurs_self_management_enabled.rb | 5 +++++ db/schema.rb | 4 ++-- ...e_instructeurs_self_management_enabled.rake | 18 ++++++++++++++++++ 4 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 db/migrate/20240215164247_change_column_default_procedures_instructeurs_self_management_enabled.rb create mode 100644 lib/tasks/deployment/20240215164807_backfill_procedure_instructeurs_self_management_enabled.rake diff --git a/app/components/procedure/instructeurs_options_component/instructeurs_options_component.html.haml b/app/components/procedure/instructeurs_options_component/instructeurs_options_component.html.haml index caecf2e7a..ac06d1ba5 100644 --- a/app/components/procedure/instructeurs_options_component/instructeurs_options_component.html.haml +++ b/app/components/procedure/instructeurs_options_component/instructeurs_options_component.html.haml @@ -12,7 +12,7 @@ = render Dsfr::ToggleComponent.new(form: f, target: :instructeurs_self_management_enabled, title: 'Autogestion des instructeurs', - hint: "L’autogestion des instructeurs permet aux instructeurs de gérer eux-mêmes la liste des instructeurs de la démarche.#{ ' Lorsque la démarche est routée, l’autogestion est activée d’office. A moins que votre démarche requiert une validation des instructeurs (ex: signer une clause de confidentialité), nous recommandons de laisser l’autogestion des instructeurs activée.' if @procedure.routing_enabled? }", + hint: "L’autogestion des instructeurs permet aux instructeurs de gérer eux-mêmes la liste des instructeurs de la démarche.#{ 'Nous recommandons de laisser l’autogestion des instructeurs activée.' if @procedure.routing_enabled? }", disabled: false) %p.fr-mt-2w Routage %p.fr-mt-2w= t('.routing_configuration_notice_1') diff --git a/db/migrate/20240215164247_change_column_default_procedures_instructeurs_self_management_enabled.rb b/db/migrate/20240215164247_change_column_default_procedures_instructeurs_self_management_enabled.rb new file mode 100644 index 000000000..14652b41e --- /dev/null +++ b/db/migrate/20240215164247_change_column_default_procedures_instructeurs_self_management_enabled.rb @@ -0,0 +1,5 @@ +class ChangeColumnDefaultProceduresInstructeursSelfManagementEnabled < ActiveRecord::Migration[7.0] + def change + change_column_default :procedures, :instructeurs_self_management_enabled, false + end +end diff --git a/db/schema.rb b/db/schema.rb index d07a0121e..8474af94a 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[7.0].define(version: 2024_01_26_071130) do +ActiveRecord::Schema[7.0].define(version: 2024_02_15_164247) do # These are extensions that must be enabled in order to support this database enable_extension "pgcrypto" enable_extension "plpgsql" @@ -871,7 +871,7 @@ ActiveRecord::Schema[7.0].define(version: 2024_01_26_071130) do t.boolean "for_individual", default: false t.datetime "hidden_at", precision: nil t.datetime "hidden_at_as_template", precision: nil - t.boolean "instructeurs_self_management_enabled" + t.boolean "instructeurs_self_management_enabled", default: false t.boolean "juridique_required", default: true t.string "libelle" t.string "lien_demarche" diff --git a/lib/tasks/deployment/20240215164807_backfill_procedure_instructeurs_self_management_enabled.rake b/lib/tasks/deployment/20240215164807_backfill_procedure_instructeurs_self_management_enabled.rake new file mode 100644 index 000000000..7cbeefc60 --- /dev/null +++ b/lib/tasks/deployment/20240215164807_backfill_procedure_instructeurs_self_management_enabled.rake @@ -0,0 +1,18 @@ +namespace :after_party do + desc 'Deployment task: backfill_procedure_instructeurs_self_management_enabled' + task backfill_procedure_instructeurs_self_management_enabled: :environment do + puts "Running deploy task 'backfill_procedure_instructeurs_self_management_enabled'" + + # rubocop:disable DS/Unscoped + procedures = Procedure.unscoped.all + # rubocop:enable DS/Unscoped + progress = ProgressReport.new(procedures.count) + + Procedure.find_each do |procedure| + procedure.update_column(:instructeurs_self_management_enabled, procedure.routing_enabled?) + progress.inc(1) + end + + progress.finish + end +end