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)
|
||||
|
||||
if @procedure.draft_changed?
|
||||
if @procedure.draft_changed? && !@procedure.close?
|
||||
@procedure.publish_revision!
|
||||
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)
|
||||
flash.notice = "Démarche publiée"
|
||||
redirect_to admin_procedure_path(@procedure)
|
||||
else
|
||||
flash.alert = @procedure.errors.full_messages
|
||||
redirect_to admin_procedure_path(@procedure)
|
||||
end
|
||||
redirect_to admin_procedure_path(@procedure)
|
||||
end
|
||||
|
||||
def transfert
|
||||
|
|
|
@ -405,7 +405,7 @@ class Procedure < ApplicationRecord
|
|||
end
|
||||
|
||||
def draft_changed?
|
||||
publiee? && published_revision.different_from?(draft_revision) && revision_changes.present?
|
||||
!brouillon? && published_revision.different_from?(draft_revision) && revision_changes.present?
|
||||
end
|
||||
|
||||
def revision_changes
|
||||
|
|
|
@ -8,37 +8,17 @@
|
|||
- publication_errors.each do |_attribute, full_messages|
|
||||
%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 :
|
||||
= 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
|
||||
%p.mb-4 Publiez votre démarche, et partagez la à vos usagers. Aucune modification ne sera possible.
|
||||
%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')
|
||||
= render partial: 'publication_form_inputs', locals: { procedure: procedure, closed_procedures: @closed_procedures }
|
||||
|
||||
.flex.justify-end
|
||||
= 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?
|
||||
= 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..." }
|
||||
|
||||
- if @procedure.locked? && !@procedure.close?
|
||||
|
|
|
@ -98,10 +98,11 @@ describe 'Publishing a procedure', js: true do
|
|||
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
|
||||
create(:procedure_with_dossiers,
|
||||
:unpublished,
|
||||
:closed,
|
||||
:with_path,
|
||||
:with_type_de_champ,
|
||||
:with_service,
|
||||
|
@ -109,14 +110,20 @@ describe 'Publishing a procedure', js: true do
|
|||
administrateur: administrateur)
|
||||
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
|
||||
visit admin_procedures_path(statut: "archivees")
|
||||
click_on procedure.libelle
|
||||
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
|
||||
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_selector('#preview-procedure')
|
||||
|
|
Loading…
Add table
Reference in a new issue