Merge pull request #3287 from betagouv/improve-publish-draft
Improve publish draft
This commit is contained in:
commit
feb340697a
16 changed files with 63 additions and 42 deletions
|
@ -6,7 +6,7 @@ module NewGestionnaire
|
||||||
ITEMS_PER_PAGE = 25
|
ITEMS_PER_PAGE = 25
|
||||||
|
|
||||||
def index
|
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 = current_gestionnaire.dossiers
|
||||||
@dossiers_count_per_procedure = dossiers.all_state.group(:procedure_id).reorder(nil).count
|
@dossiers_count_per_procedure = dossiers.all_state.group(:procedure_id).reorder(nil).count
|
||||||
|
|
|
@ -10,7 +10,7 @@ module ProcedureHelper
|
||||||
end
|
end
|
||||||
|
|
||||||
def procedure_libelle(procedure)
|
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
|
parts << procedure.libelle
|
||||||
safe_join(parts, ' ')
|
safe_join(parts, ' ')
|
||||||
end
|
end
|
||||||
|
|
|
@ -68,6 +68,7 @@ class Procedure < ApplicationRecord
|
||||||
|
|
||||||
before_save :update_juridique_required
|
before_save :update_juridique_required
|
||||||
before_save :update_durees_conservation_required
|
before_save :update_durees_conservation_required
|
||||||
|
before_create :ensure_path_exists
|
||||||
|
|
||||||
include AASM
|
include AASM
|
||||||
|
|
||||||
|
@ -452,4 +453,12 @@ class Procedure < ApplicationRecord
|
||||||
times.percentile(p).ceil
|
times.percentile(p).ceil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def ensure_path_exists
|
||||||
|
if Flipflop.publish_draft?
|
||||||
|
if self.path.nil?
|
||||||
|
self.path = SecureRandom.uuid
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -11,20 +11,6 @@
|
||||||
= f.text_area :description, rows: '6', placeholder: 'Description du projet', class: 'form-control'
|
= f.text_area :description, rows: '6', placeholder: 'Description du projet', class: 'form-control'
|
||||||
|
|
||||||
- if !@procedure.locked?
|
- 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
|
.form-group
|
||||||
%h4 Conservation des données
|
%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)"
|
= f.label :duree_conservation_dossiers_dans_ds, "Sur demarches-simplifiees.fr* (durée en mois après le début de l’instruction)"
|
||||||
|
|
|
@ -3,7 +3,10 @@
|
||||||
%li{ class: @draft_class }
|
%li{ class: @draft_class }
|
||||||
%a{ :href => "#{url_for :admin_procedures_draft}" }
|
%a{ :href => "#{url_for :admin_procedures_draft}" }
|
||||||
%h5.text-primary
|
%h5.text-primary
|
||||||
Brouillons
|
- if Flipflop.publish_draft?
|
||||||
|
En test
|
||||||
|
- else
|
||||||
|
Brouillons
|
||||||
|
|
||||||
%li{ class: @active_class }
|
%li{ class: @active_class }
|
||||||
%a{ :href => "#{url_for :admin_procedures}" }
|
%a{ :href => "#{url_for :admin_procedures}" }
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
%br
|
%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).
|
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
|
- 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
|
- when Procedure::PATH_NOT_AVAILABLE
|
||||||
Ce lien est déjà utilisé par une démarche.
|
Ce lien est déjà utilisé par une démarche.
|
||||||
%br
|
%br
|
||||||
|
|
|
@ -42,25 +42,45 @@
|
||||||
%i.fa.fa-remove
|
%i.fa.fa-remove
|
||||||
Annuler
|
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
|
.lien-demarche
|
||||||
%h3 Lien démarche
|
%h3
|
||||||
|
- if @procedure.brouillon_avec_lien?
|
||||||
|
Test et publication
|
||||||
|
- else
|
||||||
|
Publication
|
||||||
%div{ style: 'margin-top: 30px;' }
|
%div{ style: 'margin-top: 30px;' }
|
||||||
- if @procedure.archivee?
|
- if @procedure.archivee?
|
||||||
.alert.alert-info
|
Cette démarche est <strong>archivée</strong> et n’est donc plus accessible par le public.
|
||||||
Cette démarche est archivée et n’est donc pas accessible par le public.
|
|
||||||
- elsif @procedure.publiee?
|
- elsif @procedure.publiee?
|
||||||
|
Cette démarche est <strong>publiée</strong>, 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
|
= link_to procedure_lien(@procedure), sanitize_url(procedure_lien(@procedure)), target: :blank
|
||||||
%br
|
%br
|
||||||
%br
|
%br
|
||||||
Attention, diffusez toujours le <strong>lien complet</strong> 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.
|
Attention, diffusez toujours le <strong>lien complet</strong> 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?
|
- elsif @procedure.brouillon_avec_lien?
|
||||||
- if @procedure.gestionnaires.present? && @procedure.service.present?
|
- 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 <strong>en test</strong>,
|
||||||
|
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
|
- else
|
||||||
.alert.alert-info
|
.alert.alert-info
|
||||||
Pour pouvoir tester cette démarche, vous devez d’abord lui affecter
|
Pour pouvoir tester cette démarche, vous devez d’abord lui affecter
|
||||||
|
|
|
@ -11,13 +11,16 @@
|
||||||
#procedure-list
|
#procedure-list
|
||||||
%a#draft-procedures{ :href => "#{url_for :admin_procedures_draft}" }
|
%a#draft-procedures{ :href => "#{url_for :admin_procedures_draft}" }
|
||||||
.procedure-list-element{ class: @draft_class }
|
.procedure-list-element{ class: @draft_class }
|
||||||
Brouillons
|
- if Flipflop.publish_draft?
|
||||||
|
En test
|
||||||
|
- else
|
||||||
|
Brouillons
|
||||||
.badge.progress-bar-default
|
.badge.progress-bar-default
|
||||||
= current_administrateur.procedures.brouillons.count
|
= current_administrateur.procedures.brouillons.count
|
||||||
|
|
||||||
%a#active-procedures{ :href => "#{url_for :admin_procedures}" }
|
%a#active-procedures{ :href => "#{url_for :admin_procedures}" }
|
||||||
.procedure-list-element{ class: @active_class }
|
.procedure-list-element{ class: @active_class }
|
||||||
Actives
|
Publiées
|
||||||
.badge.progress-bar-success
|
.badge.progress-bar-success
|
||||||
= current_administrateur.procedures.publiees.count
|
= current_administrateur.procedures.publiees.count
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,10 @@
|
||||||
#procedure-list
|
#procedure-list
|
||||||
%a#onglet-infos{ href: url_for(admin_procedure_path(@procedure)) }
|
%a#onglet-infos{ href: url_for(admin_procedure_path(@procedure)) }
|
||||||
.procedure-list-element{ class: ('active' if active == 'Informations') }
|
.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)) }
|
%a#onglet-description{ href: url_for(edit_admin_procedure_path(@procedure)) }
|
||||||
.procedure-list-element{ class: ('active' if active == 'Description') }
|
.procedure-list-element{ class: ('active' if active == 'Description') }
|
||||||
|
|
|
@ -38,7 +38,7 @@ as well as a link to its edit page.
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<% if procedure.publiee? && procedure.dossiers.empty? %>
|
<% 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 %>
|
<% 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 ?" } %>
|
<%= 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 ?" } %>
|
||||||
|
|
|
@ -3,7 +3,10 @@
|
||||||
.flex.justify-between
|
.flex.justify-between
|
||||||
%ul.breadcrumbs
|
%ul.breadcrumbs
|
||||||
%li
|
%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
|
%li
|
||||||
= "Dossier nº #{dossier.id}"
|
= "Dossier nº #{dossier.id}"
|
||||||
.mixed-buttons-bar
|
.mixed-buttons-bar
|
||||||
|
|
|
@ -723,7 +723,7 @@ describe Admin::ProceduresController, type: :controller do
|
||||||
let(:path) { procedure_owned.path }
|
let(:path) { procedure_owned.path }
|
||||||
|
|
||||||
it {
|
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
|
end
|
||||||
|
|
||||||
|
|
|
@ -150,7 +150,7 @@ feature 'As an administrateur I wanna create a new procedure', js: true do
|
||||||
find('#publish-procedure').click
|
find('#publish-procedure').click
|
||||||
|
|
||||||
within '#publish-modal' do
|
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'
|
click_on 'publish'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -2,9 +2,6 @@ module ProcedureSpecHelper
|
||||||
def fill_in_dummy_procedure_details(fill_path: true)
|
def fill_in_dummy_procedure_details(fill_path: true)
|
||||||
fill_in 'procedure_libelle', with: 'libelle de la procedure'
|
fill_in 'procedure_libelle', with: 'libelle de la procedure'
|
||||||
fill_in 'procedure_description', with: 'description 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_cadre_juridique', with: 'cadre juridique'
|
||||||
fill_in 'procedure_duree_conservation_dossiers_dans_ds', with: '3'
|
fill_in 'procedure_duree_conservation_dossiers_dans_ds', with: '3'
|
||||||
fill_in 'procedure_duree_conservation_dossiers_hors_ds', with: '6'
|
fill_in 'procedure_duree_conservation_dossiers_hors_ds', with: '6'
|
||||||
|
|
|
@ -26,21 +26,18 @@ feature 'Administrateurs can edit procedures', js: true do
|
||||||
administrateur: administrateur)
|
administrateur: administrateur)
|
||||||
end
|
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
|
visit admin_procedures_draft_path
|
||||||
click_on procedure.libelle
|
click_on procedure.libelle
|
||||||
click_on 'Description'
|
click_on 'Description'
|
||||||
|
|
||||||
expect(page).to have_field('procedure_libelle', with: procedure.libelle)
|
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_libelle', with: 'Ma petite démarche')
|
||||||
fill_in('procedure_path', with: 'nouveau-lien-demarche')
|
|
||||||
|
|
||||||
click_on 'Enregistrer'
|
click_on 'Enregistrer'
|
||||||
|
|
||||||
expect(page).to have_field('procedure_libelle', with: 'Ma petite démarche')
|
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
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -72,7 +72,7 @@ describe 'admin/procedures/show.html.haml', type: :view do
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'procedure link is present' do
|
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
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue