Merge pull request #3287 from betagouv/improve-publish-draft

Improve publish draft
This commit is contained in:
Mathieu Magnin 2019-01-17 14:25:45 +01:00 committed by GitHub
commit feb340697a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
16 changed files with 63 additions and 42 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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 laccès à la démarche, vous êtes invité à personnaliser ladresse 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 linstruction)"

View file

@ -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}" }

View file

@ -4,7 +4,7 @@
%br
Si vous voulez lutiliser, lancienne 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

View file

@ -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 nest donc pas accessible par le public.
Cette démarche est <strong>archivée</strong> et nest donc plus accessible par le public.
- 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
%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.
- 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 <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
.alert.alert-info
Pour pouvoir tester cette démarche, vous devez dabord lui affecter

View file

@ -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

View file

@ -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') }

View file

@ -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 ?" } %>

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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'

View file

@ -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

View file

@ -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 nest donc pas accessible par le public.') }
it { expect(rendered).to have_content('Cette démarche est archivée et nest donc plus accessible par le public.') }
end
end
end