From 8ca7eb1c540705c505ed49a97209db87253e453e Mon Sep 17 00:00:00 2001 From: simon lehericey Date: Fri, 4 Jan 2019 14:45:06 +0100 Subject: [PATCH 1/3] Procedure: cloning set the current admin gestionnaire of the procedure --- app/models/procedure.rb | 2 ++ spec/models/procedure_spec.rb | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app/models/procedure.rb b/app/models/procedure.rb index 8f44012a5..52a1c63fb 100644 --- a/app/models/procedure.rb +++ b/app/models/procedure.rb @@ -218,6 +218,8 @@ class Procedure < ApplicationRecord procedure.service = self.service.clone_and_assign_to_administrateur(admin) end + admin.gestionnaire.assign_to_procedure(procedure) + procedure end diff --git a/spec/models/procedure_spec.rb b/spec/models/procedure_spec.rb index bc3b90b39..9f6acc944 100644 --- a/spec/models/procedure_spec.rb +++ b/spec/models/procedure_spec.rb @@ -343,7 +343,8 @@ describe Procedure do let!(:piece_justificative_1) { create(:type_de_piece_justificative, procedure: procedure, order_place: 1) } let(:received_mail) { create(:received_mail) } let(:from_library) { false } - let(:administrateur) { procedure.administrateur } + let!(:administrateur) { procedure.administrateur } + let!(:gestionnaire) { create(:gestionnaire, email: administrateur.email) } before do @logo = File.open('spec/fixtures/files/white.png') @@ -361,6 +362,7 @@ describe Procedure do subject { @procedure } it { expect(subject.parent_procedure).to eq(procedure) } + it { expect(subject.gestionnaires).to eq([gestionnaire]) } it 'should duplicate specific objects with different id' do expect(subject.id).not_to eq(procedure.id) @@ -430,8 +432,6 @@ describe Procedure do it 'should not duplicate specific related objects' do expect(subject.dossiers).to eq([]) - expect(subject.gestionnaires).to eq([]) - expect(subject.assign_to).to eq([]) end describe 'should not duplicate lien_notice' do From a1972857428eca9b277d8636801b01e683b3fecb Mon Sep 17 00:00:00 2001 From: simon lehericey Date: Fri, 4 Jan 2019 15:43:02 +0100 Subject: [PATCH 2/3] [fix #2612] Admin: add missing steps to admin UI --- app/assets/stylesheets/dossiers.scss | 4 ++++ app/assets/stylesheets/navbar.scss | 6 ++++++ app/models/procedure.rb | 14 ++++++++++++++ app/views/admin/procedures/show.html.haml | 14 ++++++++++++-- ...nel_admin_procedurescontroller_navbar.html.haml | 6 +++++- spec/models/procedure_spec.rb | 5 ++--- 6 files changed, 43 insertions(+), 6 deletions(-) diff --git a/app/assets/stylesheets/dossiers.scss b/app/assets/stylesheets/dossiers.scss index c4dbdd95a..04e12f2f2 100644 --- a/app/assets/stylesheets/dossiers.scss +++ b/app/assets/stylesheets/dossiers.scss @@ -58,6 +58,10 @@ h5 span { .progress-bar-warning { background-color: #E4594F; } + + .missing-steps { + color: #FFA500; + } } .procedure-list-element:hover { diff --git a/app/assets/stylesheets/navbar.scss b/app/assets/stylesheets/navbar.scss index 2af3216e1..6d2813f52 100644 --- a/app/assets/stylesheets/navbar.scss +++ b/app/assets/stylesheets/navbar.scss @@ -190,6 +190,12 @@ } } +.lien-demarche { + p.alert { + margin-bottom: 8px; + } +} + .button-navbar-action:hover { color: $light-blue; } diff --git a/app/models/procedure.rb b/app/models/procedure.rb index 52a1c63fb..c57d42a87 100644 --- a/app/models/procedure.rb +++ b/app/models/procedure.rb @@ -362,6 +362,20 @@ class Procedure < ApplicationRecord end end + def missing_steps + result = [] + + if service.nil? + result << :service + end + + if gestionnaires.empty? + result << :instructeurs + end + + result + end + private def claim_path_ownership!(path) diff --git a/app/views/admin/procedures/show.html.haml b/app/views/admin/procedures/show.html.haml index 31e04f553..5c25d796d 100644 --- a/app/views/admin/procedures/show.html.haml +++ b/app/views/admin/procedures/show.html.haml @@ -47,7 +47,7 @@ .alert.alert-info Cette démarche a été publiée, certains éléments ne peuvent plus être modifiés. - %div + .lien-demarche %h3 Lien démarche %div{ style: 'margin-top: 30px;' } - if @procedure.archivee? @@ -72,5 +72,15 @@ = link_to("un service", services_path(procedure_id: @procedure)) \. - else - .alert.alert-info + - if @procedure.missing_steps.include?(:service) + %p.alert.alert-danger + Vous devez renseigner les coordonnées de votre Service administratif avant de pouvoir publier votre démarche. + = link_to 'Cliquez ici.', (current_administrateur.services.present? ? url_for(services_path(procedure_id: @procedure.id)) : url_for(new_service_path(procedure_id: @procedure.id))) + + - if @procedure.missing_steps.include?(:instructeurs) + %p.alert.alert-danger + Vous devez affecter des instructeurs avant de pouvoir publier votre démarche. + = link_to 'Cliquez ici.', admin_procedure_instructeurs_path(@procedure) + + %p.alert.alert-info Cette démarche n’a pas encore de lien, et n’est donc pas accessible par le public. diff --git a/app/views/layouts/left_panels/_left_panel_admin_procedurescontroller_navbar.html.haml b/app/views/layouts/left_panels/_left_panel_admin_procedurescontroller_navbar.html.haml index b1aa98f6f..76a405cf7 100644 --- a/app/views/layouts/left_panels/_left_panel_admin_procedurescontroller_navbar.html.haml +++ b/app/views/layouts/left_panels/_left_panel_admin_procedurescontroller_navbar.html.haml @@ -20,11 +20,15 @@ %a#onglet-services{ href: current_administrateur.services.present? ? url_for(services_path(procedure_id: @procedure.id)) : url_for(new_service_path(procedure_id: @procedure.id)) } .procedure-list-element - Services + Service + - if @procedure.missing_steps.include?(:service) + %p.missing-steps (à compléter) %a#onglet-instructeurs{ href: url_for(admin_procedure_instructeurs_path(@procedure)) } .procedure-list-element{ class: ('active' if active == 'Instructeurs') } Instructeurs + - if @procedure.missing_steps.include?(:instructeurs) + %p.missing-steps (à compléter) - if !@procedure.locked? %a#onglet-champs{ href: url_for(admin_procedure_types_de_champ_path(@procedure)) } diff --git a/spec/models/procedure_spec.rb b/spec/models/procedure_spec.rb index 9f6acc944..1e8d964cb 100644 --- a/spec/models/procedure_spec.rb +++ b/spec/models/procedure_spec.rb @@ -343,8 +343,7 @@ describe Procedure do let!(:piece_justificative_1) { create(:type_de_piece_justificative, procedure: procedure, order_place: 1) } let(:received_mail) { create(:received_mail) } let(:from_library) { false } - let!(:administrateur) { procedure.administrateur } - let!(:gestionnaire) { create(:gestionnaire, email: administrateur.email) } + let(:administrateur) { procedure.administrateur } before do @logo = File.open('spec/fixtures/files/white.png') @@ -362,7 +361,7 @@ describe Procedure do subject { @procedure } it { expect(subject.parent_procedure).to eq(procedure) } - it { expect(subject.gestionnaires).to eq([gestionnaire]) } + it { expect(subject.gestionnaires.pluck(:email)).to eq([administrateur.email]) } it 'should duplicate specific objects with different id' do expect(subject.id).not_to eq(procedure.id) From e7d5f30192bd29f003bb2d0c8bbdee6429e3dfb6 Mon Sep 17 00:00:00 2001 From: simon lehericey Date: Fri, 4 Jan 2019 15:44:28 +0100 Subject: [PATCH 3/3] Admin: small reword in admin procedure ui --- app/views/admin/procedures/show.html.haml | 2 +- spec/views/admin/procedures/show.html.haml_spec.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/admin/procedures/show.html.haml b/app/views/admin/procedures/show.html.haml index 5c25d796d..bf313f716 100644 --- a/app/views/admin/procedures/show.html.haml +++ b/app/views/admin/procedures/show.html.haml @@ -83,4 +83,4 @@ = link_to 'Cliquez ici.', admin_procedure_instructeurs_path(@procedure) %p.alert.alert-info - Cette démarche n’a pas encore de lien, et n’est donc pas accessible par le public. + Cette démarche n’a pas encore de lien, et n’est pas accessible par le public. diff --git a/spec/views/admin/procedures/show.html.haml_spec.rb b/spec/views/admin/procedures/show.html.haml_spec.rb index 1418c389b..ea89b49b4 100644 --- a/spec/views/admin/procedures/show.html.haml_spec.rb +++ b/spec/views/admin/procedures/show.html.haml_spec.rb @@ -34,7 +34,7 @@ describe 'admin/procedures/show.html.haml', type: :view do end describe 'procedure link is not present' do - it { expect(rendered).to have_content('Cette démarche n’a pas encore de lien, et n’est donc pas accessible par le public.') } + it { expect(rendered).to have_content('Cette démarche n’a pas encore de lien, et n’est pas accessible par le public.') } end end end