Merge pull request #7075 from betagouv/feat/7060

Ajouter un banner sur les dossiers des démarches supprimées
This commit is contained in:
Kara Diaby 2022-03-29 14:20:32 +02:00 committed by GitHub
commit 768b577f1e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 123 additions and 12 deletions

View file

@ -53,6 +53,12 @@
} }
} }
&.no-list {
ul {
list-style: none !important;
}
}
ul { ul {
list-style-type: disc; list-style-type: disc;
list-style-position: inside; list-style-position: inside;

View file

@ -504,7 +504,7 @@ class Dossier < ApplicationRecord
end end
def read_only? def read_only?
en_instruction? || accepte? || refuse? || sans_suite? en_instruction? || accepte? || refuse? || sans_suite? || procedure.discarded? || procedure.close? && brouillon?
end end
def can_transition_to_en_construction? def can_transition_to_en_construction?

View file

@ -8,7 +8,8 @@
= render(partial: 'users/dossiers/expiration_banner', locals: {dossier: dossier}) = render(partial: 'users/dossiers/expiration_banner', locals: {dossier: dossier})
- if current_user.owns?(dossier) && !dossier.procedure.discarded? && !dossier.procedure.close?
.header-actions .header-actions
- if current_user.owns?(dossier)
= render partial: 'invites/dropdown', locals: { dossier: dossier } = render partial: 'invites/dropdown', locals: { dossier: dossier }
- else
= render(partial: 'users/dossiers/procedure_removed_banner', locals: { dossier: dossier })

View file

@ -0,0 +1,22 @@
.card.warning.mb-3.no-list
- if dossier.procedure.discarded?
.flex.justify-between
.card-title= t('users.dossiers.header.banner.procedure_deleted_title')
= render(partial: 'users/dossiers/show/print_dossier', locals: { dossier: dossier}) if !dossier.brouillon?
- if dossier.termine?
%p
= t('users.dossiers.header.banner.procedure_deleted_dossier_termine_content')
- elsif dossier.brouillon?
%p
= t('users.dossiers.header.banner.procedure_close_content')
- else
%p
= t('users.dossiers.header.banner.procedure_deleted_dossier_en_cours_content')
- else
.flex.justify-between
.card-title= t('users.dossiers.header.banner.procedure_close_title')
= render(partial: 'users/dossiers/show/print_dossier', locals: { dossier: dossier }) if !dossier.brouillon?
%p
= t('users.dossiers.header.banner.procedure_close_content')

View file

@ -12,19 +12,15 @@
= render(partial: 'users/dossiers/expiration_banner', locals: {dossier: dossier}) = render(partial: 'users/dossiers/expiration_banner', locals: {dossier: dossier})
- if (current_user.owns?(dossier) && !dossier.procedure.discarded?) || (!dossier.procedure.discarded? && !dossier.procedure.close? && !dossier.en_construction?)
- if current_user.owns?(dossier)
.header-actions .header-actions
= render partial: 'invites/dropdown', locals: { dossier: dossier } = render partial: 'invites/dropdown', locals: { dossier: dossier }
- if dossier.can_be_updated_by_user? && !current_page?(modifier_dossier_path(dossier)) - if dossier.can_be_updated_by_user? && !current_page?(modifier_dossier_path(dossier))
= link_to t('views.users.dossiers.show.header.edit_dossier'), modifier_dossier_path(dossier), class: 'button accepted edit-form', 'title'=> "Vous pouvez modifier votre dossier tant qu'il n'est passé en instruction" = link_to t('views.users.dossiers.show.header.edit_dossier'), modifier_dossier_path(dossier), class: 'button accepted edit-form', 'title'=> "Vous pouvez modifier votre dossier tant qu'il n'est passé en instruction"
%span.dropdown.print-menu-opener = render(partial: 'users/dossiers/show/print_dossier', locals: { dossier: dossier })
%button.button.dropdown-button.icon-only{ title: t('views.users.dossiers.show.header.print'), 'aria-label': 'imprimer', 'aria-expanded' => 'false', 'aria-controls' => 'print-menu' }
%span.icon.printer
%ul#print-menu.print-menu.dropdown-content
%li
= link_to t('views.users.dossiers.show.header.print_dossier'), dossier_path(dossier, format: :pdf), target: "_blank", rel: "noopener", class: "menu-item menu-link"
- else
= render(partial: 'users/dossiers/procedure_removed_banner', locals: { dossier: dossier })
%nav.tabs %nav.tabs
%ul %ul

View file

@ -0,0 +1,6 @@
%span.dropdown.print-menu-opener
%button.button.dropdown-button.icon-only{ title: t('views.users.dossiers.show.header.print'), 'aria-label': 'imprimer', 'aria-expanded' => 'false', 'aria-controls' => 'print-menu' }
%span.icon.printer
%ul#print-menu.print-menu.dropdown-content
%li
= link_to t('views.users.dossiers.show.header.print_dossier'), dossier_path(dossier, format: :pdf), target: "_blank", rel: "noopener", class: "menu-item menu-link"

View file

@ -3,6 +3,11 @@ fr:
dossiers: dossiers:
header: header:
banner: banner:
procedure_deleted_title: "La démarche liée à votre dossier est supprimée"
procedure_close_title: "La démarche liée à votre dossier est close"
procedure_deleted_dossier_en_cours_content: "Vous pouvez toujours consulter votre dossier, mais il nest plus possible de le modifier."
procedure_deleted_dossier_termine_content: "Votre dossier a été traité par l'administration, aucune action n'est possible"
procedure_close_content: "Vous pouvez toujours consulter votre dossier, mais il ne sera pas traité par l'administration"
title: Votre dossier va expirer title: Votre dossier va expirer
states: states:
brouillon: Votre dossier est en brouillon, mais va bientôt expirer. Cela signifie quil va bientôt être supprimé sans avoir été déposé. Si vous souhaitez le conserver afin de poursuivre la démarche, vous pouvez le conserver un mois de plus en cliquant sur le bouton ci-dessous. brouillon: Votre dossier est en brouillon, mais va bientôt expirer. Cela signifie quil va bientôt être supprimé sans avoir été déposé. Si vous souhaitez le conserver afin de poursuivre la démarche, vous pouvez le conserver un mois de plus en cliquant sur le bouton ci-dessous.

View file

@ -0,0 +1,34 @@
describe 'dossiers/show/header.html.haml', type: :view do
let(:procedure) { create(:procedure, :discarded) }
let(:dossier) { create(:dossier, state: "brouillon", procedure: procedure) }
before do
sign_in dossier.user
end
subject! { render 'shared/dossiers/header.html.haml', dossier: dossier }
context "when the procedure is discarded with a dossier en brouillon" do
it 'affiche que la démarche est supprimée' do
expect(rendered).to have_text("La démarche liée à votre dossier est supprimée")
expect(rendered).to have_text("Vous pouvez toujours consulter votre dossier, mais il ne sera pas traité par l'administration")
end
it 'cannot download the dossier' do
expect(rendered).not_to have_text("Tout le dossier")
end
end
context "when the procedure is closed with a dossier en brouillon" do
let(:procedure) { create(:procedure, :closed) }
it 'affiche que la démarche est close' do
expect(rendered).to have_text("La démarche liée à votre dossier est close")
expect(rendered).to have_text("Vous pouvez toujours consulter votre dossier, mais il ne sera pas traité par l'administration")
end
it 'cannot download the dossier' do
expect(rendered).not_to have_text("Tout le dossier")
end
end
end

View file

@ -16,4 +16,45 @@ describe 'users/dossiers/show/header.html.haml', type: :view do
expect(rendered).to have_link("Résumé", href: dossier_path(dossier)) expect(rendered).to have_link("Résumé", href: dossier_path(dossier))
expect(rendered).to have_link("Demande", href: demande_dossier_path(dossier)) expect(rendered).to have_link("Demande", href: demande_dossier_path(dossier))
end end
context "when the procedure is closed with a dossier en construction" do
let(:procedure) { create(:procedure, :closed) }
let(:dossier) { create(:dossier, :en_construction, procedure: procedure) }
it "n'affiche pas de banner" do
expect(rendered).not_to have_text("La démarche liée à votre dossier est close")
end
it 'can download the dossier' do
expect(rendered).to have_text("Tout le dossier")
end
end
context "when the procedure is discarded with a dossier en construction" do
let(:procedure) { create(:procedure, :discarded) }
let(:dossier) { create(:dossier, :en_construction, procedure: procedure) }
it 'affiche que la démarche est supprimée' do
expect(rendered).to have_text("La démarche liée à votre dossier est supprimée")
expect(rendered).to have_text("Vous pouvez toujours consulter votre dossier, mais il nest plus possible de le modifier")
end
it 'can download the dossier' do
expect(rendered).to have_text("Tout le dossier")
end
end
context "when the procedure is discarded with a dossier terminé" do
let(:procedure) { create(:procedure, :discarded) }
let(:dossier) { create(:dossier, state: "accepte", procedure: procedure) }
it 'affiche que la démarche est supprimée' do
expect(rendered).to have_text("La démarche liée à votre dossier est supprimée")
expect(rendered).to have_text("Votre dossier a été traité par l'administration, aucune action n'est possible")
end
it 'can download the dossier' do
expect(rendered).to have_text("Tout le dossier")
end
end
end end