Skip to content

ETQ usager, badges « Expire dans X j. » et « Partagé avec moi »#13308

Merged
mmagn merged 14 commits into
mainfrom
13018-badge-expirants
Jun 23, 2026
Merged

ETQ usager, badges « Expire dans X j. » et « Partagé avec moi »#13308
mmagn merged 14 commits into
mainfrom
13018-badge-expirants

Conversation

@mmagn

@mmagn mmagn commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

Évolution des badges de notification de l'usager sur ses dossiers (cf. #13018).
Deux cas traités ici pour ne pas bloquer la MEP de #12915

EXPIRE DANS X J. (dossiers expirants)

  • Nouveau badge « Expire dans X j. » (statut avertissement) sur la carte de la
    liste et l'en-tête de la page Dossier, affiché de J‑14 jusqu'à l'expiration,
    pour les dossiers brouillon ou traités uniquement (un dossier en
    construction / en instruction n'expire jamais). Le dernier jour, le badge
    affiche « Expire aujourd'hui ».
  • Refonte du bandeau de la page Dossier : accent « orange‑terre‑battue »
    (nouveau thème Dsfr::CalloutComponent), bouton « Conserver X mois »
    (brouillon) ; le téléchargement PDF (traité) reste géré par l'en‑tête.

PARTAGÉ AVEC MOI (dossiers partagés)

  • Nouveau badge « Partagé avec moi » (accent « blue‑cumulus ») affiché quand
    l'usager courant est invité sur le dossier (pas le propriétaire), sur la carte
    et l'en‑tête de la page Dossier.
  • Ligne d'info de partage : icône passée de shield-line à group-line.

Les badges sont calculés à partir de l'état du dossier (comme les badges
« à corriger » / « en attente de réponse » existants) ; DossierNotification
reste réservé aux instructeurs. Les filtres associés sont traités dans #12915.

L'empilement des badges sur la carte utilise désormais un conteneur flex
(flex column flex-gap-1) plutôt que des <br>, pour un espacement homogène
et un balisage plus accessible. Dossier#close_to_expiration? renvoie false
quand expired_at est nil (évite un NoMethodError lorsque le badge est
calculé pour un dossier sans date d'expiration).

Captures d'écran (avant / après)

Écran Avant (main) Après (cette PR)
Badge Expirant before_list after_list
Badge partagé before_invites after_invites
Page Dossier (en‑tête + bandeau) before_show after_show

mmagn and others added 12 commits June 22, 2026 14:52
Ajoute Dossier#nb_days_before_expiration et le helper expiration_badge,
affiché uniquement pour les dossiers brouillon ou traités proches de
l'expiration (J-14).

Ref #13018

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Affiche le badge « Expire dans X j. » sur la carte de la liste et
  l'en-tête de la page Dossier.
- Refond le bandeau de la page Dossier : accent orange-terre-battue,
  bouton « Conserver » (brouillon) ou téléchargement PDF (traité).
- Supprime la branche en_construction du bandeau (n'expire jamais).

Ref #13018

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Ref #13018

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Le bouton de téléchargement PDF est déjà rendu dans .header-actions
juste sous le bandeau ; on ne le duplique plus dans le callout.

Ref #13018

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Badge accent blue-cumulus affiché pour un usager invité sur un dossier
partagé par un autre usager.

Ref #13018

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…roup-line

Affiche « Partagé avec moi » sur la carte de la liste et l'en-tête de la
page Dossier quand l'usager n'est pas propriétaire, et remplace l'icône
shield-line par group-line sur la ligne de partage.

Ref #13018

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Ref #13018

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
nb_days_before_expiration peut valoir 0 (dossier expirant plus tard le
jour même), affichait « Expire dans 0 j. ». Ajout d'une forme plurielle
zero dédiée.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Remplace les <br> qui empilaient les badges (statut, à corriger, en
attente, expiration, partage) par un conteneur flex column avec gap.
Plus sémantique et accessible (RGAA), espacement homogène.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… nil

Le badge d'expiration de la liste appelle close_to_expiration? sur tous
les dossiers ; un dossier termine expirable sans expired_at (ex. non
passé par la transition d'état) provoquait NoMethodError (nil < ...).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Le linter lint:apostrophe exige U+2019 dans les traductions françaises.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@mmagn
mmagn force-pushed the 13018-badge-expirants branch from f30fa9b to 075aa89 Compare June 22, 2026 13:00
@mmagn mmagn changed the title [WIP] ETQ usager, badges « Expire dans X j. » et « Partagé avec moi » ETQ usager, badges « Expire dans X j. » et « Partagé avec moi » Jun 22, 2026
@mmagn
mmagn marked this pull request as ready for review June 22, 2026 13:00

@E-L-T E-L-T left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nickel, c'était très agréable à relire avec les tous petits commits 👌
J'ai fait 2-3 suggestions et une proposition de correction pour les badges non alignés dans la page dossier

Comment thread config/locales/fr.yml Outdated
Comment thread app/views/users/dossiers/_dossiers_list.html.erb Outdated
Comment thread app/views/users/dossiers/_dossiers_list.html.erb Outdated
Comment thread app/views/users/dossiers/show/_header.html.haml Outdated
mmagn and others added 2 commits June 23, 2026 11:37
Le badge affichait « Expire dans 1 j. » pour count == 1, soit demain.
On utilise un libellé dédié, cohérent avec « Expire aujourd'hui ».

Co-Authored-By: Eric Leroy-Terquem <eric.leroyterquem@beta.gouv.fr>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…header

Le helper renvoie nil hors période : depuis le passage en flex, le garde
if/badge n'est plus utile dans la liste. Dans l'en-tête, expiration_badge et
partage_badge reçoivent la classe « super » pour s'aligner sur les autres.

Co-Authored-By: Eric Leroy-Terquem <eric.leroyterquem@beta.gouv.fr>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@mmagn
mmagn added this pull request to the merge queue Jun 23, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Jun 23, 2026
@mmagn
mmagn added this pull request to the merge queue Jun 23, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Jun 23, 2026
@mmagn
mmagn added this pull request to the merge queue Jun 23, 2026
Merged via the queue into main with commit 4de6331 Jun 23, 2026
19 checks passed
@mmagn
mmagn deleted the 13018-badge-expirants branch June 23, 2026 13:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants