Merge pull request #7446 from betagouv/feat/7274
ETQ admin, je souhaite visualiser le recap des modifications apportées lorsque ma démarche close
This commit is contained in:
commit
1cbdfe3d66
6 changed files with 53 additions and 37 deletions
|
@ -233,17 +233,19 @@ module Administrateurs
|
||||||
|
|
||||||
@procedure.assign_attributes(publish_params)
|
@procedure.assign_attributes(publish_params)
|
||||||
|
|
||||||
if @procedure.draft_changed?
|
if @procedure.draft_changed? && !@procedure.close?
|
||||||
@procedure.publish_revision!
|
@procedure.publish_revision!
|
||||||
flash.notice = "Nouvelle version de la démarche publiée"
|
flash.notice = "Nouvelle version de la démarche publiée"
|
||||||
redirect_to admin_procedure_path(@procedure)
|
elsif @procedure.draft_changed? && @procedure.close?
|
||||||
|
@procedure.publish_or_reopen!(current_administrateur)
|
||||||
|
@procedure.publish_revision!
|
||||||
|
flash.notice = "Démarche publiée"
|
||||||
elsif @procedure.publish_or_reopen!(current_administrateur)
|
elsif @procedure.publish_or_reopen!(current_administrateur)
|
||||||
flash.notice = "Démarche publiée"
|
flash.notice = "Démarche publiée"
|
||||||
redirect_to admin_procedure_path(@procedure)
|
|
||||||
else
|
else
|
||||||
flash.alert = @procedure.errors.full_messages
|
flash.alert = @procedure.errors.full_messages
|
||||||
redirect_to admin_procedure_path(@procedure)
|
|
||||||
end
|
end
|
||||||
|
redirect_to admin_procedure_path(@procedure)
|
||||||
end
|
end
|
||||||
|
|
||||||
def transfert
|
def transfert
|
||||||
|
|
|
@ -405,7 +405,7 @@ class Procedure < ApplicationRecord
|
||||||
end
|
end
|
||||||
|
|
||||||
def draft_changed?
|
def draft_changed?
|
||||||
publiee? && published_revision.different_from?(draft_revision) && revision_changes.present?
|
!brouillon? && published_revision.different_from?(draft_revision) && revision_changes.present?
|
||||||
end
|
end
|
||||||
|
|
||||||
def revision_changes
|
def revision_changes
|
||||||
|
|
|
@ -8,37 +8,17 @@
|
||||||
- publication_errors.each do |_attribute, full_messages|
|
- publication_errors.each do |_attribute, full_messages|
|
||||||
%p= full_messages.to_sentence
|
%p= full_messages.to_sentence
|
||||||
|
|
||||||
- if procedure.draft_changed?
|
- if !procedure.close? && procedure.draft_changed?
|
||||||
%p.mb-4 Publiez une nouvelle version de votre démarche. Les modifications suivantes seront appliquées :
|
%p.mb-4 Publiez une nouvelle version de votre démarche. Les modifications suivantes seront appliquées :
|
||||||
= render partial: 'revision_changes', locals: { changes: procedure.revision_changes }
|
= render partial: 'revision_changes', locals: { changes: procedure.revision_changes }
|
||||||
|
|
||||||
|
- elsif procedure.close? && procedure.draft_changed?
|
||||||
|
%p.mb-4 Publiez une nouvelle version de votre démarche. Les modifications suivantes seront appliquées :
|
||||||
|
= render partial: 'revision_changes', locals: { changes: procedure.revision_changes }
|
||||||
|
= render partial: 'publication_form_inputs', locals: { procedure: procedure, closed_procedures: @closed_procedures }
|
||||||
|
|
||||||
- else
|
- else
|
||||||
%p.mb-4 Publiez votre démarche, et partagez la à vos usagers. Aucune modification ne sera possible.
|
= render partial: 'publication_form_inputs', locals: { procedure: procedure, closed_procedures: @closed_procedures }
|
||||||
%p Personnalisez le lien public de la démarche pour en faciliter l’accès (<strong>obligatoire pour publier votre démarche</strong>) :
|
|
||||||
%p.empty-text
|
|
||||||
= commencer_url(path: '')
|
|
||||||
= text_field_tag(:path, procedure.path,
|
|
||||||
id: 'procedure_path',
|
|
||||||
label: 'Adresse de diffusion',
|
|
||||||
placeholder: 'chemin-de-la-démarche',
|
|
||||||
required: true,
|
|
||||||
class: 'form',
|
|
||||||
pattern: '^[a-z0-9_-]{3,200}$',
|
|
||||||
title: "De 3 à 200 caractères; minuscules, chiffres et tiret seulement",
|
|
||||||
autocomplete: 'off',
|
|
||||||
style: 'width: 300px; display: inline;')
|
|
||||||
.text-info.mb-4
|
|
||||||
Attention, diffusez toujours le <strong>lien complet</strong> affiché ci-dessus, et non pas un lien générique vers #{APPLICATION_NAME}. Ne dites pas non plus aux usagers de se rendre sur le site générique #{APPLICATION_NAME}, donnez-leur toujours le lien complet.
|
|
||||||
- if @closed_procedures.present?
|
|
||||||
%h2.card-title Cette démarche remplace une close ? Si oui, veuillez indiquer le n° de la démarche remplacée
|
|
||||||
= select_tag :old_procedure, options_for_select(@closed_procedures), include_blank: true
|
|
||||||
%h2.card-title Diffusion de la démarche
|
|
||||||
%p Où les utilisateurs trouveront-ils le lien de la démarche ? Typiquement, il s’agit d’une page de votre site web.
|
|
||||||
%p.center
|
|
||||||
= text_field_tag(:lien_site_web, procedure.lien_site_web,
|
|
||||||
required: true,
|
|
||||||
class: 'form-control',
|
|
||||||
autocomplete: 'off',
|
|
||||||
placeholder: 'https://exemple.gouv.fr/ma_demarche')
|
|
||||||
|
|
||||||
.flex.justify-end
|
.flex.justify-end
|
||||||
= submit_tag procedure_publish_label(procedure, :submit), { disabled: publication_errors.present?, class: "button primary", id: 'publish' }
|
= submit_tag procedure_publish_label(procedure, :submit), { disabled: publication_errors.present?, class: "button primary", id: 'publish' }
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
%p.mb-4{ :class => ("mt-4" if procedure.close? && procedure.draft_changed?) } Publiez votre démarche, et partagez la à vos usagers.
|
||||||
|
%p Personnalisez le lien public de la démarche pour en faciliter l’accès (<strong>obligatoire pour publier votre démarche</strong>) :
|
||||||
|
%p.empty-text
|
||||||
|
= commencer_url(path: '')
|
||||||
|
= text_field_tag(:path, procedure.path,
|
||||||
|
id: 'procedure_path',
|
||||||
|
label: 'Adresse de diffusion',
|
||||||
|
placeholder: 'chemin-de-la-démarche',
|
||||||
|
required: true,
|
||||||
|
class: 'form',
|
||||||
|
pattern: '^[a-z0-9_-]{3,200}$',
|
||||||
|
title: "De 3 à 200 caractères; minuscules, chiffres et tiret seulement",
|
||||||
|
autocomplete: 'off',
|
||||||
|
style: 'width: 300px; display: inline;')
|
||||||
|
.text-info.mb-4
|
||||||
|
Attention, diffusez toujours le <strong>lien complet</strong> affiché ci-dessus, et non pas un lien générique vers #{APPLICATION_NAME}. Ne dites pas non plus aux usagers de se rendre sur le site générique #{APPLICATION_NAME}, donnez-leur toujours le lien complet.
|
||||||
|
- if closed_procedures.present?
|
||||||
|
%h2.card-title Cette démarche remplace une close ? Si oui, veuillez indiquer le n° de la démarche remplacée
|
||||||
|
= select_tag :old_procedure, options_for_select(@closed_procedures), include_blank: true
|
||||||
|
%h2.card-title Diffusion de la démarche
|
||||||
|
%p Où les utilisateurs trouveront-ils le lien de la démarche ? Typiquement, il s’agit d’une page de votre site web.
|
||||||
|
%p.center
|
||||||
|
= text_field_tag(:lien_site_web, procedure.lien_site_web,
|
||||||
|
required: true,
|
||||||
|
class: 'form-control',
|
||||||
|
autocomplete: 'off',
|
||||||
|
placeholder: 'https://exemple.gouv.fr/ma_demarche')
|
|
@ -25,7 +25,7 @@
|
||||||
- if !@procedure.publiee? && !@procedure.close? && !@procedure.depubliee?
|
- if !@procedure.publiee? && !@procedure.close? && !@procedure.depubliee?
|
||||||
= link_to 'Publier', admin_procedure_publication_path(@procedure), class: 'button primary', id: 'publish-procedure-link', data: { disable_with: "Publication..." }
|
= link_to 'Publier', admin_procedure_publication_path(@procedure), class: 'button primary', id: 'publish-procedure-link', data: { disable_with: "Publication..." }
|
||||||
|
|
||||||
- if @procedure.close? || @procedure.depubliee?
|
- if (@procedure.close? || @procedure.depubliee?) && !@procedure.draft_changed?
|
||||||
= link_to 'Réactiver', admin_procedure_publication_path(@procedure), class: 'button primary', id: 'publish-procedure-link', data: { disable_with: "Publication..." }
|
= link_to 'Réactiver', admin_procedure_publication_path(@procedure), class: 'button primary', id: 'publish-procedure-link', data: { disable_with: "Publication..." }
|
||||||
|
|
||||||
- if @procedure.locked? && !@procedure.close?
|
- if @procedure.locked? && !@procedure.close?
|
||||||
|
|
|
@ -98,10 +98,11 @@ describe 'Publishing a procedure', js: true do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when a procedure is de-published' do
|
context 'when a procedure is closed with revision changes' do
|
||||||
|
let!(:tdc) { { type_champ: :text, libelle: 'nouveau champ' } }
|
||||||
let!(:procedure) do
|
let!(:procedure) do
|
||||||
create(:procedure_with_dossiers,
|
create(:procedure_with_dossiers,
|
||||||
:unpublished,
|
:closed,
|
||||||
:with_path,
|
:with_path,
|
||||||
:with_type_de_champ,
|
:with_type_de_champ,
|
||||||
:with_service,
|
:with_service,
|
||||||
|
@ -109,14 +110,20 @@ describe 'Publishing a procedure', js: true do
|
||||||
administrateur: administrateur)
|
administrateur: administrateur)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
before do
|
||||||
|
Flipper.enable(:procedure_revisions, procedure)
|
||||||
|
procedure.draft_revision.add_type_de_champ(tdc)
|
||||||
|
end
|
||||||
|
|
||||||
scenario 'an admin can publish it again' do
|
scenario 'an admin can publish it again' do
|
||||||
visit admin_procedures_path(statut: "archivees")
|
visit admin_procedures_path(statut: "archivees")
|
||||||
click_on procedure.libelle
|
click_on procedure.libelle
|
||||||
find('#publish-procedure-link').click
|
find('#publish-procedure-link').click
|
||||||
|
|
||||||
|
expect(page).to have_text('Les modifications suivantes seront appliquées')
|
||||||
expect(find_field('procedure_path').value).to eq procedure.path
|
expect(find_field('procedure_path').value).to eq procedure.path
|
||||||
fill_in 'lien_site_web', with: 'http://some.website'
|
fill_in 'lien_site_web', with: 'http://some.website'
|
||||||
click_on 'Publier'
|
find('#publish').click
|
||||||
|
|
||||||
expect(page).to have_text('Démarche publiée')
|
expect(page).to have_text('Démarche publiée')
|
||||||
expect(page).to have_selector('#preview-procedure')
|
expect(page).to have_selector('#preview-procedure')
|
||||||
|
|
Loading…
Add table
Reference in a new issue