From b987688d194c7457b7183528dd6e591f5553159b Mon Sep 17 00:00:00 2001 From: Colin Darie Date: Mon, 9 Sep 2024 16:48:07 +0200 Subject: [PATCH 1/3] refactor: disable auto hide instructeurs toggle by admin --- .../instructeurs_options_component.html.haml | 11 ------ .../groupe_instructeurs_controller.rb | 7 ---- config/routes.rb | 1 - .../groupe_instructeurs_controller_spec.rb | 37 ------------------- 4 files changed, 56 deletions(-) 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 244b4bc98..903cf6e64 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 @@ -15,17 +15,6 @@ 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) - %li - = form_for @procedure, - method: :patch, - url: update_hide_instructeurs_email_admin_procedure_groupe_instructeurs_path(@procedure), - data: { controller: 'autosubmit', turbo: 'true' } do |f| - - = render Dsfr::ToggleComponent.new(form: f, - target: :hide_instructeurs_email, - title: "Anonymat des instructeurs", - hint: "Permet de cacher l'adresse mail des instructeurs aux usagers lors de leurs interactions par le biais de la messagerie. Cette option est à activer pour les démarches sensibles.", - disabled: false) %hr %p.fr-mt-2w Routage %p.fr-mt-2w= t('.routing_configuration_notice_1') diff --git a/app/controllers/administrateurs/groupe_instructeurs_controller.rb b/app/controllers/administrateurs/groupe_instructeurs_controller.rb index f7bdc59e7..8bc9fd900 100644 --- a/app/controllers/administrateurs/groupe_instructeurs_controller.rb +++ b/app/controllers/administrateurs/groupe_instructeurs_controller.rb @@ -320,13 +320,6 @@ module Administrateurs notice: "L’autogestion des instructeurs est #{procedure.instructeurs_self_management_enabled? ? "activée" : "désactivée"}." end - def update_hide_instructeurs_email - procedure.update!(hide_instructeurs_email_params) - - redirect_to options_admin_procedure_groupe_instructeurs_path(procedure), - notice: "L'anonymisation des instructeurs est #{procedure.hide_instructeurs_email? ? "activée" : "désactivée"}." - end - def import if procedure.publiee_or_close? if !CSV_ACCEPTED_CONTENT_TYPES.include?(csv_file.content_type) && !CSV_ACCEPTED_CONTENT_TYPES.include?(marcel_content_type) diff --git a/config/routes.rb b/config/routes.rb index 367471c18..57031dc7c 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -672,7 +672,6 @@ Rails.application.routes.draw do post 'create_simple_routing' delete 'destroy_all_groups_but_defaut' patch 'update_instructeurs_self_management_enabled' - patch 'update_hide_instructeurs_email' post 'import' get 'export_groupe_instructeurs' end diff --git a/spec/controllers/administrateurs/groupe_instructeurs_controller_spec.rb b/spec/controllers/administrateurs/groupe_instructeurs_controller_spec.rb index 2ab7037b1..1269856da 100644 --- a/spec/controllers/administrateurs/groupe_instructeurs_controller_spec.rb +++ b/spec/controllers/administrateurs/groupe_instructeurs_controller_spec.rb @@ -995,41 +995,4 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do expect(gi_1_1.signature).to be_attached end end - - describe '#update_hide_instructeurs_email' do - let(:administrateur) { administrateurs(:default_admin) } - let(:procedure) { create(:procedure, administrateurs: [administrateur]) } - - before do - sign_in(administrateur.user) - end - - context 'when activating hide_instructeurs_email' do - it 'updates the procedure and redirects with correct notice' do - patch :update_hide_instructeurs_email, params: { - procedure_id: procedure.id, - procedure: { hide_instructeurs_email: "1" } - } - - expect(procedure.reload.hide_instructeurs_email).to be true - expect(response).to redirect_to(options_admin_procedure_groupe_instructeurs_path(procedure)) - expect(flash[:notice]).to eq("L'anonymisation des instructeurs est activée.") - end - end - - context 'when deactivating hide_instructeurs_email' do - let(:procedure) { create(:procedure, hide_instructeurs_email: true, administrateurs: [administrateur]) } - - it 'updates the procedure and redirects with correct notice' do - patch :update_hide_instructeurs_email, params: { - procedure_id: procedure.id, - procedure: { hide_instructeurs_email: "0" } - } - - expect(procedure.reload.hide_instructeurs_email).to be false - expect(response).to redirect_to(options_admin_procedure_groupe_instructeurs_path(procedure)) - expect(flash[:notice]).to eq("L'anonymisation des instructeurs est désactivée.") - end - end - end end From 615b4a6bc423c5d3027dcc2a38d3ee5e1afb55a8 Mon Sep 17 00:00:00 2001 From: Colin Darie Date: Tue, 10 Sep 2024 18:10:17 +0200 Subject: [PATCH 2/3] fix(afterparty): use actual procedure ids and not gate ids --- ...92553_backfill_hide_instructeurs_email.rake | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/lib/tasks/deployment/20240830192553_backfill_hide_instructeurs_email.rake b/lib/tasks/deployment/20240830192553_backfill_hide_instructeurs_email.rake index 56f2fbb70..56d04a32d 100644 --- a/lib/tasks/deployment/20240830192553_backfill_hide_instructeurs_email.rake +++ b/lib/tasks/deployment/20240830192553_backfill_hide_instructeurs_email.rake @@ -14,30 +14,28 @@ namespace :after_party do total_gates = gates.count progress = ProgressReport.new(total_gates) - puts 'Collecte des démarches avec le feature flag' + rake_puts 'Collecte des démarches avec le feature flag' - procedure_ids = gates.ids - puts procedure_ids + procedure_ids = gates.pluck(:value).map { _1.split(";").last.to_i } + rake_puts procedure_ids.inspect progress.finish - puts progress - puts "Mise à jour des #{procedure_ids.size} démarches" update_progress = ProgressReport.new(procedure_ids.size) - Procedure.where(id: procedure_ids).in_batches(of: 500) do |batch| + # rubocop:disable DS/Unscoped + Procedure.unscoped.where(id: procedure_ids).in_batches(of: 500) do |batch| batch.update_all(hide_instructeurs_email: true) update_progress.inc(batch.size) - puts update_progress end + # rubocop:enable DS/Unscoped update_progress.finish - puts update_progress - puts "Suppression du feature flag '#{feature_name}'" + rake_puts "Suppression du feature flag '#{feature_name}'" Flipper.remove(feature_name) - puts "Feature flag '#{feature_name}' supprimé avec succès" + rake_puts "Feature flag '#{feature_name}' supprimé avec succès" AfterParty::TaskRecord .create version: AfterParty::TaskRecorder.new(__FILE__).timestamp From 0201feec65b57b48157903ff89def279e5c8af1a Mon Sep 17 00:00:00 2001 From: Colin Darie Date: Tue, 10 Sep 2024 18:16:40 +0200 Subject: [PATCH 3/3] feat(manager): can hide instructeurs email from procedure --- app/dashboards/procedure_dashboard.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/dashboards/procedure_dashboard.rb b/app/dashboards/procedure_dashboard.rb index 99c9f22c6..79f77b233 100644 --- a/app/dashboards/procedure_dashboard.rb +++ b/app/dashboards/procedure_dashboard.rb @@ -51,7 +51,8 @@ class ProcedureDashboard < Administrate::BaseDashboard for_tiers_enabled: Field::Boolean, replaced_by_procedure_id: Field::String, tags: Field::Text, - template: Field::Boolean + template: Field::Boolean, + hide_instructeurs_email: Field::Boolean }.freeze # COLLECTION_ATTRIBUTES @@ -113,6 +114,7 @@ class ProcedureDashboard < Administrate::BaseDashboard :estimated_duration_visible, :piece_justificative_multiple, :for_tiers_enabled, + :hide_instructeurs_email, :replaced_by_procedure_id ].freeze @@ -126,6 +128,7 @@ class ProcedureDashboard < Administrate::BaseDashboard :estimated_duration_visible, :piece_justificative_multiple, :for_tiers_enabled, + :hide_instructeurs_email, :replaced_by_procedure_id ].freeze