feat(dossiers/show): enhance header with expirations message/banner. also ensure consistent design between dossier states

fix(spec): broken due to last refactoring

spec(dossier.extend_conservation): add system spec

lint(ruby): still not yet ready for auto lint in IDE...
This commit is contained in:
Martin 2021-11-22 14:51:52 +01:00
parent 2a87b9bf89
commit b6adf5fc72
13 changed files with 164 additions and 38 deletions

View file

@ -0,0 +1,17 @@
- if dossier.expirable? && dossier.close_to_expiration?
.card.warning.mt-2.mb-3
.card-title Votre dossier va expirer
%p
- if dossier.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.
- elsif dossier.en_construction?
Votre dossier est en attente de prise en charge par l'administration. Le delais de prise en charge maximale est de 6 mois. Vous pouvez toutefois entendre cette durée d'un mois en cliquant sur le bouton suivant.
- elsif dossier.termine?
Le traitement de votre dossier est terminé, mais il va bientôt expirer. Cela signifie quil va bientôt être supprimé.
Si vous souhaitez conserver une trace, vous pouvez le télécharger au format PDF.
- if dossier.expiration_can_be_extended?
%br
= button_to 'Repousser sa suppression', users_dossier_repousser_expiration_path(dossier), class: 'button secondary mt-2'

View file

@ -1,6 +1,14 @@
%h1
= procedure_libelle(dossier.procedure)
= status_badge(dossier.state)
.title-container
%span.icon.folder
%h1= procedure_libelle(dossier.procedure)
%h2
= t('views.users.dossiers.show.header.dossier_number', dossier_id: dossier.id)
= t('views.users.dossiers.show.header.created_date', date_du_dossier: I18n.l(dossier.created_at))
= render(partial: 'shared/dossiers/short_expires_message', locals: {dossier: dossier})
.header-actions
- if current_user.owns?(dossier)
= render partial: 'invites/dropdown', locals: { dossier: dossier }
.dossier-form-actions
- if current_user.owns?(dossier)
= render partial: 'invites/dropdown', locals: { dossier: dossier }

View file

@ -0,0 +1,9 @@
- if dossier.expirable?
%p.expires_at
%small= t("shared.dossiers.header.expires_at.#{dossier.state}", date: safe_expiration_date(dossier))
- else
%p.expires_at_en_instruction
%small= t("shared.dossiers.header.expires_at.en_instruction")
= render(partial: 'shared/dossiers/expiration_banner', locals: {dossier: dossier})