diff --git a/app/controllers/new_administrateur/experts_procedures_controller.rb b/app/controllers/new_administrateur/experts_procedures_controller.rb index dada4d873..3aae682d3 100644 --- a/app/controllers/new_administrateur/experts_procedures_controller.rb +++ b/app/controllers/new_administrateur/experts_procedures_controller.rb @@ -40,6 +40,13 @@ module NewAdministrateur redirect_to admin_procedure_experts_path(@procedure) end + def update + @procedure + .experts_procedures + .find(params[:id]) + .update!(expert_procedure_params) + end + def destroy expert_procedure = ExpertsProcedure.find_by!(procedure: @procedure, id: params[:id]) expert_email = expert_procedure.expert.email @@ -53,5 +60,9 @@ module NewAdministrateur def experts_procedure_emails @procedure.experts.map(&:email).sort end + + def expert_procedure_params + params.require(:experts_procedure).permit(:allow_decision_access) + end end end diff --git a/app/controllers/new_administrateur/procedures_controller.rb b/app/controllers/new_administrateur/procedures_controller.rb index 637b6d3ad..4211fdcd7 100644 --- a/app/controllers/new_administrateur/procedures_controller.rb +++ b/app/controllers/new_administrateur/procedures_controller.rb @@ -1,6 +1,6 @@ module NewAdministrateur class ProceduresController < AdministrateurController - before_action :retrieve_procedure, only: [:champs, :annotations, :edit, :monavis, :update_monavis, :jeton, :update_jeton, :publication, :publish, :transfert, :allow_expert_review, :update_allow_decision_access] + before_action :retrieve_procedure, only: [:champs, :annotations, :edit, :monavis, :update_monavis, :jeton, :update_jeton, :publication, :publish, :transfert, :allow_expert_review] before_action :procedure_locked?, only: [:champs, :annotations] ITEMS_PER_PAGE = 25 @@ -185,13 +185,6 @@ module NewAdministrateur end end - def update_allow_decision_access - @procedure - .experts_procedures - .find(params[:expert_procedure]) - .update!(allow_decision_access_params) - end - private def apercu_tab diff --git a/app/views/new_administrateur/experts_procedures/index.html.haml b/app/views/new_administrateur/experts_procedures/index.html.haml index 5e5e60f4a..bed3d724b 100644 --- a/app/views/new_administrateur/experts_procedures/index.html.haml +++ b/app/views/new_administrateur/experts_procedures/index.html.haml @@ -46,7 +46,7 @@ - if @procedure.feature_enabled?(:admin_affect_experts_to_avis) %td.text-center = form_for expert_procedure, - url: admin_procedure_update_allow_decision_access_path(expert_procedure: expert_procedure), + url: admin_procedure_expert_path(id: expert_procedure), remote: true, method: :put, authenticity_token: true, diff --git a/config/routes.rb b/config/routes.rb index ee2b37e7b..21499cd0a 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -406,7 +406,6 @@ Rails.application.routes.draw do put 'publish' => 'procedures#publish', as: :publish get 'transfert' => 'procedures#transfert', as: :transfert post 'transfer' => 'procedures#transfer', as: :transfer - put 'update_allow_decision_access' => 'procedures#update_allow_decision_access', as: :update_allow_decision_access resources :mail_templates, only: [:edit, :update] resources :groupe_instructeurs, only: [:index, :show, :create, :update, :destroy] do @@ -424,7 +423,7 @@ Rails.application.routes.draw do resources :administrateurs, controller: 'procedure_administrateurs', only: [:index, :create, :destroy] - resources :experts, controller: 'experts_procedures', only: [:index, :create, :destroy] + resources :experts, controller: 'experts_procedures', only: [:index, :create, :update, :destroy] resources :types_de_champ, only: [:create, :update, :destroy] do member do diff --git a/spec/controllers/new_administrateur/experts_procedures_controller_spec.rb b/spec/controllers/new_administrateur/experts_procedures_controller_spec.rb index 48c85f043..8f5162ea0 100644 --- a/spec/controllers/new_administrateur/experts_procedures_controller_spec.rb +++ b/spec/controllers/new_administrateur/experts_procedures_controller_spec.rb @@ -41,6 +41,31 @@ describe NewAdministrateur::ExpertsProceduresController, type: :controller do end end + describe '#update' do + let(:expert) { create(:expert) } + let(:expert_procedure) { create(:experts_procedure, procedure: procedure, expert: expert) } + + subject do + put :update, params: { + id: expert_procedure.id, + procedure_id: procedure.id, + experts_procedure: { + allow_decision_access: true + } + }, format: :js + end + + before do + subject + end + + it 'updates the record' do + expect(expert_procedure.allow_decision_access).to be false + subject + expect(expert_procedure.reload.allow_decision_access).to be true + end + end + describe '#delete' do let(:expert) { create(:expert) } let(:expert_procedure) { ExpertsProcedure.create(expert: expert, procedure: procedure) } diff --git a/spec/controllers/new_administrateur/procedures_controller_spec.rb b/spec/controllers/new_administrateur/procedures_controller_spec.rb index 9dfaf588a..e508faba7 100644 --- a/spec/controllers/new_administrateur/procedures_controller_spec.rb +++ b/spec/controllers/new_administrateur/procedures_controller_spec.rb @@ -532,34 +532,4 @@ describe NewAdministrateur::ProceduresController, type: :controller do it { expect(procedure.allow_expert_review).to be_truthy } end end - - describe 'PUT #update_allow_decision_access' do - let!(:procedure) { create :procedure, :with_service, administrateur: admin } - let(:expert) { create(:expert) } - let(:expert_procedure) { create(:experts_procedure, procedure: procedure, expert: expert) } - - subject do - put :update_allow_decision_access, params: { procedure_id: procedure.id, experts_procedure: { allow_decision_access: !expert_procedure.allow_decision_access }, expert_procedure: expert_procedure }, format: :js - end - - context 'when the experts_procedure is true' do - let(:expert_procedure) { create(:experts_procedure, procedure: procedure, expert: expert, allow_decision_access: true) } - - before do - subject - expert_procedure.reload - end - - it { expect(expert_procedure.allow_decision_access).to be_falsy } - end - - context 'when the experts_procedure is false' do - before do - subject - expert_procedure.reload - end - - it { expect(expert_procedure.allow_decision_access).to be_truthy } - end - end end