diff --git a/app/controllers/new_gestionnaire/procedures_controller.rb b/app/controllers/new_gestionnaire/procedures_controller.rb index f32fb176a..80237e092 100644 --- a/app/controllers/new_gestionnaire/procedures_controller.rb +++ b/app/controllers/new_gestionnaire/procedures_controller.rb @@ -6,7 +6,7 @@ module NewGestionnaire ITEMS_PER_PAGE = 25 def index - @procedures = current_gestionnaire.visible_procedures.order(archived_at: :desc, published_at: :desc) + @procedures = current_gestionnaire.visible_procedures.order(archived_at: :desc, published_at: :desc, created_at: :desc) dossiers = current_gestionnaire.dossiers @dossiers_count_per_procedure = dossiers.all_state.group(:procedure_id).reorder(nil).count diff --git a/app/helpers/procedure_helper.rb b/app/helpers/procedure_helper.rb index f00f6ebed..bdedf9416 100644 --- a/app/helpers/procedure_helper.rb +++ b/app/helpers/procedure_helper.rb @@ -10,7 +10,7 @@ module ProcedureHelper end def procedure_libelle(procedure) - parts = procedure.brouillon? ? [content_tag(:span, 'démarche non publiée', class: 'badge')] : [] + parts = procedure.brouillon? ? [content_tag(:span, 'démarche en test', class: 'badge')] : [] parts << procedure.libelle safe_join(parts, ' ') end diff --git a/app/models/procedure.rb b/app/models/procedure.rb index eac04c11a..b79d5ad47 100644 --- a/app/models/procedure.rb +++ b/app/models/procedure.rb @@ -68,6 +68,7 @@ class Procedure < ApplicationRecord before_save :update_juridique_required before_save :update_durees_conservation_required + before_create :ensure_path_exists include AASM @@ -452,4 +453,12 @@ class Procedure < ApplicationRecord times.percentile(p).ceil end end + + def ensure_path_exists + if Flipflop.publish_draft? + if self.path.nil? + self.path = SecureRandom.uuid + end + end + end end diff --git a/app/views/admin/procedures/_informations.html.haml b/app/views/admin/procedures/_informations.html.haml index 460f04211..fecb2936c 100644 --- a/app/views/admin/procedures/_informations.html.haml +++ b/app/views/admin/procedures/_informations.html.haml @@ -11,20 +11,6 @@ = f.text_area :description, rows: '6', placeholder: 'Description du projet', class: 'form-control' - if !@procedure.locked? - - if Flipflop.publish_draft? - .form-group - %h4 Lien public* - .procedure-lien - %span.prefix - = commencer_test_url(path: '') - = f.text_field :path, value: @path, class: 'form-control', data: { remote: true, debounce: true, url: admin_procedures_available_path, params: { id: @procedure.id }.to_query(:procedure) } - %p.unavailable-path-message.text-warning - - if @availability != Procedure::PATH_AVAILABLE - = render partial: 'unavailable', locals: { availability: @availability } - %p.help-block - %i.fa.fa-info-circle - Afin de faciliter l’accès à la démarche, vous êtes invité à personnaliser l’adresse d'accès public. C'est ce lien qu'il va falloir communiquer aux usagers souhaitant faire la démarche. - .form-group %h4 Conservation des données = f.label :duree_conservation_dossiers_dans_ds, "Sur demarches-simplifiees.fr* (durée en mois après le début de l’instruction)" diff --git a/app/views/admin/procedures/_onglets.html.haml b/app/views/admin/procedures/_onglets.html.haml index bede00304..c741591cc 100644 --- a/app/views/admin/procedures/_onglets.html.haml +++ b/app/views/admin/procedures/_onglets.html.haml @@ -3,7 +3,10 @@ %li{ class: @draft_class } %a{ :href => "#{url_for :admin_procedures_draft}" } %h5.text-primary - Brouillons + - if Flipflop.publish_draft? + En test + - else + Brouillons %li{ class: @active_class } %a{ :href => "#{url_for :admin_procedures}" } diff --git a/app/views/admin/procedures/_unavailable.html.haml b/app/views/admin/procedures/_unavailable.html.haml index fd285d23a..d3c2ce71d 100644 --- a/app/views/admin/procedures/_unavailable.html.haml +++ b/app/views/admin/procedures/_unavailable.html.haml @@ -4,7 +4,7 @@ %br Si vous voulez l’utiliser, l’ancienne démarche sera archivée lors de la publication de la démarche (plus accessible du public). - when Procedure::PATH_NOT_AVAILABLE_BROUILLON - Un brouillon de démarche existe déjà avec ce lien. + Une démarche en test existe déjà avec ce lien. - when Procedure::PATH_NOT_AVAILABLE Ce lien est déjà utilisé par une démarche. %br diff --git a/app/views/admin/procedures/show.html.haml b/app/views/admin/procedures/show.html.haml index bf313f716..34408d6a7 100644 --- a/app/views/admin/procedures/show.html.haml +++ b/app/views/admin/procedures/show.html.haml @@ -42,25 +42,45 @@ %i.fa.fa-remove Annuler - - if @procedure.locked? - #procedure_locked - .alert.alert-info - Cette démarche a été publiée, certains éléments ne peuvent plus être modifiés. - .lien-demarche - %h3 Lien démarche + %h3 + - if @procedure.brouillon_avec_lien? + Test et publication + - else + Publication %div{ style: 'margin-top: 30px;' } - if @procedure.archivee? - .alert.alert-info - Cette démarche est archivée et n’est donc pas accessible par le public. + Cette démarche est archivée et n’est donc plus accessible par le public. - elsif @procedure.publiee? + Cette démarche est publiée, certains éléments ne peuvent plus être modifiés. + Pour y accéder vous pouvez utiliser le lien : = link_to procedure_lien(@procedure), sanitize_url(procedure_lien(@procedure)), target: :blank %br %br Attention, diffusez toujours le lien complet affiché ci-dessus, et non pas un lien générique vers demarches-simplifiees.fr. Ne dites pas non plus aux usagers de se rendre sur le site générique demarches-simplifiees.fr, donnez-leur toujours le lien complet. - elsif @procedure.brouillon_avec_lien? - if @procedure.gestionnaires.present? && @procedure.service.present? - = link_to procedure_lien(@procedure), sanitize_url(procedure_lien(@procedure)), target: :blank + %p + Cette démarche est actuellement en test, + pour y accéder vous pouvez utiliser le lien : + = link_to procedure_lien(@procedure), sanitize_url(procedure_lien(@procedure)), target: :blank + %p + Tout personne ayant la connaissance de ce lien pourra ainsi remplir des dossiers sur votre démarche. + %br + + %h4 Ce que vous pouvez faire lorsque vous êtes en test + %p + Profitez de la phase de test pour tester la saisie de dossiers, ainsi que toutes les fonctionnalités associées (instruction, emails automatiques, attestations, etc.). + %p + Vous pouvez effectuer toutes les modifications que vous souhaitez sur votre démarche pendant cette phase de test. + %p + Les dossiers qui seront remplis pendant la phase de test seront automatiquement supprimés lors de la modification ou la publication de votre démarche. + %br + + %h4 Ce qui se passe lorsque vous passez en publication + %p + Une fois que vous êtes prêt à publier définitivement votre démarche, cliquez sur le bouton "Publier" pour choisir le lien définitif de votre démarche, les modifications sur la démarches ne seront alors plus possibles. + - else .alert.alert-info Pour pouvoir tester cette démarche, vous devez d’abord lui affecter diff --git a/app/views/layouts/left_panels/_left_panel_admin_procedurescontroller_index.html.haml b/app/views/layouts/left_panels/_left_panel_admin_procedurescontroller_index.html.haml index 133d5c02f..bdf47c5e3 100644 --- a/app/views/layouts/left_panels/_left_panel_admin_procedurescontroller_index.html.haml +++ b/app/views/layouts/left_panels/_left_panel_admin_procedurescontroller_index.html.haml @@ -11,13 +11,16 @@ #procedure-list %a#draft-procedures{ :href => "#{url_for :admin_procedures_draft}" } .procedure-list-element{ class: @draft_class } - Brouillons + - if Flipflop.publish_draft? + En test + - else + Brouillons .badge.progress-bar-default = current_administrateur.procedures.brouillons.count %a#active-procedures{ :href => "#{url_for :admin_procedures}" } .procedure-list-element{ class: @active_class } - Actives + Publiées .badge.progress-bar-success = current_administrateur.procedures.publiees.count 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 d7afc9660..b0eb644ad 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 @@ -12,7 +12,10 @@ #procedure-list %a#onglet-infos{ href: url_for(admin_procedure_path(@procedure)) } .procedure-list-element{ class: ('active' if active == 'Informations') } - Publication + - if @procedure.brouillon_avec_lien? + Test et publication + - else + Publication %a#onglet-description{ href: url_for(edit_admin_procedure_path(@procedure)) } .procedure-list-element{ class: ('active' if active == 'Description') } diff --git a/app/views/manager/procedures/show.html.erb b/app/views/manager/procedures/show.html.erb index 8985c02a0..e4a00a4d3 100644 --- a/app/views/manager/procedures/show.html.erb +++ b/app/views/manager/procedures/show.html.erb @@ -38,7 +38,7 @@ as well as a link to its edit page. <% end %> <% if procedure.publiee? && procedure.dossiers.empty? %> - <%= link_to 'passer en brouillon', draft_manager_procedure_path(procedure), method: :post, class: 'button' %> + <%= link_to 'repasser en test', draft_manager_procedure_path(procedure), method: :post, class: 'button' %> <% end %> <%= link_to 'supprimer la démarche', hide_manager_procedure_path(procedure), method: :post, class: 'button', data: { confirm: "Confirmez-vous la suppression de la démarche ?" } %> diff --git a/app/views/new_gestionnaire/dossiers/_header.html.haml b/app/views/new_gestionnaire/dossiers/_header.html.haml index 3928b531d..0079325fa 100644 --- a/app/views/new_gestionnaire/dossiers/_header.html.haml +++ b/app/views/new_gestionnaire/dossiers/_header.html.haml @@ -3,7 +3,10 @@ .flex.justify-between %ul.breadcrumbs %li - = link_to dossier.procedure.libelle.truncate_words(10), gestionnaire_procedure_path(dossier.procedure), title: dossier.procedure.libelle + = link_to gestionnaire_procedure_path(dossier.procedure), title: dossier.procedure.libelle do + - if dossier.procedure.brouillon? + %span.badge démarche en test + = dossier.procedure.libelle.truncate_words(10) %li = "Dossier nº #{dossier.id}" .mixed-buttons-bar diff --git a/spec/controllers/admin/procedures_controller_spec.rb b/spec/controllers/admin/procedures_controller_spec.rb index 3c114208f..bad0c5be6 100644 --- a/spec/controllers/admin/procedures_controller_spec.rb +++ b/spec/controllers/admin/procedures_controller_spec.rb @@ -723,7 +723,7 @@ describe Admin::ProceduresController, type: :controller do let(:path) { procedure_owned.path } it { - expect(response.body).to include('Un brouillon de démarche existe déjà avec ce lien.') + expect(response.body).to include('Une démarche en test existe déjà avec ce lien.') } end diff --git a/spec/features/admin/procedure_creation_spec.rb b/spec/features/admin/procedure_creation_spec.rb index 2b3047510..646382773 100644 --- a/spec/features/admin/procedure_creation_spec.rb +++ b/spec/features/admin/procedure_creation_spec.rb @@ -150,7 +150,7 @@ feature 'As an administrateur I wanna create a new procedure', js: true do find('#publish-procedure').click within '#publish-modal' do - expect(page).to have_field('procedure_path', with: 'lien-de-la-procedure') + expect(page).to have_field('procedure_path') click_on 'publish' end diff --git a/spec/features/admin/procedure_spec_helper.rb b/spec/features/admin/procedure_spec_helper.rb index 0154e9609..b9708d3a4 100644 --- a/spec/features/admin/procedure_spec_helper.rb +++ b/spec/features/admin/procedure_spec_helper.rb @@ -2,9 +2,6 @@ module ProcedureSpecHelper def fill_in_dummy_procedure_details(fill_path: true) fill_in 'procedure_libelle', with: 'libelle de la procedure' fill_in 'procedure_description', with: 'description de la procedure' - if fill_path - fill_in 'procedure_path', with: 'lien-de-la-procedure' - end fill_in 'procedure_cadre_juridique', with: 'cadre juridique' fill_in 'procedure_duree_conservation_dossiers_dans_ds', with: '3' fill_in 'procedure_duree_conservation_dossiers_hors_ds', with: '6' diff --git a/spec/features/admin/procedure_update_spec.rb b/spec/features/admin/procedure_update_spec.rb index 68f9b3df4..b80714274 100644 --- a/spec/features/admin/procedure_update_spec.rb +++ b/spec/features/admin/procedure_update_spec.rb @@ -26,21 +26,18 @@ feature 'Administrateurs can edit procedures', js: true do administrateur: administrateur) end - scenario 'the administrator can edit the libelle and the path' do + scenario 'the administrator can edit the libelle' do visit admin_procedures_draft_path click_on procedure.libelle click_on 'Description' expect(page).to have_field('procedure_libelle', with: procedure.libelle) - expect(page).to have_field('procedure_path', with: procedure.path) fill_in('procedure_libelle', with: 'Ma petite démarche') - fill_in('procedure_path', with: 'nouveau-lien-demarche') click_on 'Enregistrer' expect(page).to have_field('procedure_libelle', with: 'Ma petite démarche') - expect(page).to have_field('procedure_path', with: 'nouveau-lien-demarche') end end diff --git a/spec/views/admin/procedures/show.html.haml_spec.rb b/spec/views/admin/procedures/show.html.haml_spec.rb index ea89b49b4..d645c0881 100644 --- a/spec/views/admin/procedures/show.html.haml_spec.rb +++ b/spec/views/admin/procedures/show.html.haml_spec.rb @@ -72,7 +72,7 @@ describe 'admin/procedures/show.html.haml', type: :view do end describe 'procedure link is present' do - it { expect(rendered).to have_content('Cette démarche est archivée et n’est donc pas accessible par le public.') } + it { expect(rendered).to have_content('Cette démarche est archivée et n’est donc plus accessible par le public.') } end end end