amelioration(chorus.update): oriente l'admin a remplir tous les champs du cadre budgetaire. une fois le cadre budgetaire renseigné, oriente l'admin a ajouter un champ EJ
This commit is contained in:
parent
395f2d9b04
commit
d2657d83ac
4 changed files with 91 additions and 22 deletions
|
@ -11,14 +11,22 @@ module Administrateurs
|
|||
if @configuration.valid?
|
||||
@procedure.update!(chorus: @configuration.attributes)
|
||||
|
||||
flash.notice = "La configuration Chorus a été mise à jour et prend immédiatement effet pour les nouveaux dossiers."
|
||||
redirect_to admin_procedure_path(@procedure)
|
||||
if @configuration.complete?
|
||||
flash.notice = "La configuration Chorus a été mise à jour."
|
||||
redirect_to add_champ_engagement_juridique_admin_procedure_chorus_path(@procedure)
|
||||
else
|
||||
flash.notice = "La configuration Chorus a été mise à jour. Veuillez renseigner le reste des informations pour faciliter le rapprochement des données."
|
||||
redirect_to edit_admin_procedure_chorus_path(@procedure)
|
||||
end
|
||||
else
|
||||
flash.now.alert = "Des erreurs empêchent la validation du connecteur chorus. Corrigez les erreurs"
|
||||
render :edit
|
||||
end
|
||||
end
|
||||
|
||||
def add_champ_engagement_juridique
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def search_params
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
= render partial: 'administrateurs/breadcrumbs',
|
||||
locals: { steps: [['Démarches', admin_procedures_path],
|
||||
[@procedure.libelle.truncate_words(10), admin_procedure_path(@procedure)],
|
||||
['Connecteur Chorus']] }
|
||||
|
||||
|
||||
.fr-container
|
||||
%h1.fr-h1
|
||||
Cadre budgétaire
|
||||
|
||||
= render Dsfr::CalloutComponent.new(title: "Cas d'usage") do |c|
|
||||
- c.with_body do
|
||||
%p Ajouter un champs Engagement Juridique aux annotations privées afin de renseigner l'EJ directement dans DS
|
||||
%p L'EJ sera automatiquement ajouté aux exports des dossiers
|
||||
|
||||
= link_to "Ajouter une annotation privée EJ", annotations_admin_procedure_path(@procedure), class: 'btn fr-btn'
|
|
@ -615,7 +615,9 @@ Rails.application.routes.draw do
|
|||
resource :attestation_template, only: [:show, :edit, :update, :create] do
|
||||
get 'preview', on: :member
|
||||
end
|
||||
resource :chorus, only: [:edit, :update]
|
||||
resource :chorus, only: [:edit, :update] do
|
||||
get 'add_champ_engagement_juridique'
|
||||
end
|
||||
resource :dossier_submitted_message, only: [:edit, :update, :create]
|
||||
# ADDED TO ACCESS IT FROM THE IFRAME
|
||||
get 'attestation_template/preview' => 'attestation_templates#preview'
|
||||
|
|
|
@ -1,20 +1,21 @@
|
|||
describe Administrateurs::ChorusController, type: :controller do
|
||||
describe 'edit' do
|
||||
let(:user) { create(:user) }
|
||||
let(:admin) { create(:administrateur, user: create(:user)) }
|
||||
let(:procedure) { create(:procedure, administrateurs: [admin]) }
|
||||
let(:user) { create(:user) }
|
||||
let(:admin) { create(:administrateur, user: create(:user)) }
|
||||
let(:procedure) { create(:procedure, administrateurs: [admin]) }
|
||||
|
||||
describe '#edit' do
|
||||
subject { get :edit, params: { procedure_id: procedure.id } }
|
||||
|
||||
context 'not signed in' do
|
||||
context 'when user is not signed in' do
|
||||
it { is_expected.to redirect_to(new_user_session_path) }
|
||||
end
|
||||
|
||||
context 'signed in but not admin of procedure' do
|
||||
context 'when user is signed in but not admin of procedure' do
|
||||
before { sign_in(user) }
|
||||
it { is_expected.to redirect_to(new_user_session_path) }
|
||||
end
|
||||
|
||||
context 'signed as admin' do
|
||||
context 'when user is signed as admin' do
|
||||
before { sign_in(admin.user) }
|
||||
it { is_expected.to have_http_status(200) }
|
||||
|
||||
|
@ -26,10 +27,7 @@ describe Administrateurs::ChorusController, type: :controller do
|
|||
end
|
||||
end
|
||||
|
||||
describe 'update' do
|
||||
let(:user) { create(:user) }
|
||||
let(:admin) { create(:administrateur, user: create(:user)) }
|
||||
let(:procedure) { create(:procedure, administrateurs: [admin]) }
|
||||
describe '#update' do
|
||||
let(:chorus_configuration_params) { {} }
|
||||
subject do
|
||||
put :update,
|
||||
|
@ -39,19 +37,40 @@ describe Administrateurs::ChorusController, type: :controller do
|
|||
}
|
||||
end
|
||||
|
||||
context 'not signed in' do
|
||||
context 'when user is not signed in' do
|
||||
it { is_expected.to redirect_to(new_user_session_path) }
|
||||
end
|
||||
|
||||
context 'signed in but not admin of procedure' do
|
||||
context 'when user is signed in but not admin of procedure' do
|
||||
before { sign_in(user) }
|
||||
it { is_expected.to redirect_to(new_user_session_path) }
|
||||
end
|
||||
|
||||
context 'signed as admin' do
|
||||
context 'when user is signed as admin' do
|
||||
before { sign_in(admin.user) }
|
||||
let(:domaine_fonctionnel) { nil }
|
||||
let(:referentiel_de_programmation) { nil }
|
||||
|
||||
context "valid payload" do
|
||||
context "partial valid payload" do
|
||||
let(:centre_de_coup) { '{"code":"D00C8DX004","label":"Aumôniers+protestant","ville":null,"code_postal":null,"description":"Aumoniers+protestants"}' }
|
||||
let(:chorus_configuration_params) do
|
||||
{
|
||||
centre_de_coup:, domaine_fonctionnel:, referentiel_de_programmation:
|
||||
}
|
||||
end
|
||||
it 'updates params and redirect back to complete all infos' do
|
||||
expect(subject).to redirect_to(edit_admin_procedure_chorus_path(procedure))
|
||||
expect(flash[:notice]).to eq("La configuration Chorus a été mise à jour. Veuillez renseigner le reste des informations pour faciliter le rapprochement des données.")
|
||||
|
||||
procedure.reload
|
||||
|
||||
expect(procedure.chorus_configuration.centre_de_coup).to eq(JSON.parse(centre_de_coup))
|
||||
expect(procedure.chorus_configuration.domaine_fonctionnel).to eq(nil)
|
||||
expect(procedure.chorus_configuration.referentiel_de_programmation).to eq(nil)
|
||||
end
|
||||
end
|
||||
|
||||
context "full valid payload" do
|
||||
let(:centre_de_coup) { '{"code":"D00C8DX004","label":"Aumôniers+protestant","ville":null,"code_postal":null,"description":"Aumoniers+protestants"}' }
|
||||
let(:domaine_fonctionnel) { '{"code":"0105-05-01","label":"Formation+des+élites+et+cadres+de+sécurité+et+de+défense","description":null,"code_programme":"105"}' }
|
||||
let(:referentiel_de_programmation) { '{"code":"010101010101","label":"DOTATIONS+CARPA+AJ+ET+AUTRES+INTERVENTIONS","description":null,"code_programme":"101"}' }
|
||||
|
@ -61,11 +80,12 @@ describe Administrateurs::ChorusController, type: :controller do
|
|||
}
|
||||
end
|
||||
|
||||
it { is_expected.to redirect_to(admin_procedure_path(procedure)) }
|
||||
it 'updates params' do
|
||||
subject
|
||||
expect(flash[:notice]).to eq("La configuration Chorus a été mise à jour et prend immédiatement effet pour les nouveaux dossiers.")
|
||||
it 'updates params and redirects to add champs EngagementJuridique' do
|
||||
expect(subject).to redirect_to(add_champ_engagement_juridique_admin_procedure_chorus_path(procedure))
|
||||
expect(flash[:notice]).to eq("La configuration Chorus a été mise à jour.")
|
||||
|
||||
procedure.reload
|
||||
|
||||
expect(procedure.chorus_configuration.centre_de_coup).to eq(JSON.parse(centre_de_coup))
|
||||
expect(procedure.chorus_configuration.domaine_fonctionnel).to eq(JSON.parse(domaine_fonctionnel))
|
||||
expect(procedure.chorus_configuration.referentiel_de_programmation).to eq(JSON.parse(referentiel_de_programmation))
|
||||
|
@ -73,4 +93,27 @@ describe Administrateurs::ChorusController, type: :controller do
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '#add_champ_engagement_juridique' do
|
||||
render_views
|
||||
subject { get :add_champ_engagement_juridique, params: { procedure_id: procedure.id } }
|
||||
|
||||
context 'when user is not signed in' do
|
||||
it { is_expected.to redirect_to(new_user_session_path) }
|
||||
end
|
||||
|
||||
context 'when user is signed in but not admin of procedure' do
|
||||
before { sign_in(user) }
|
||||
it { is_expected.to redirect_to(new_user_session_path) }
|
||||
end
|
||||
|
||||
context 'when user is signed as admin' do
|
||||
before { sign_in(admin.user) }
|
||||
|
||||
it 'have links to add annotation' do
|
||||
expect(subject).to have_http_status(:success)
|
||||
expect(response.body).to have_link("Ajouter une annotation privée EJ", href: annotations_admin_procedure_path(procedure))
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Reference in a new issue