Rendre lisibles le statut et la date imposée
All checks were successful
Build / build (push) Successful in 1m2s

Statut : quatre boutons peints de leur texture, si bien que le panneau
sert enfin de légende. « En cours » se raye et « terminé » redevient vif
— la trame les distingue, la teinte n'a plus à le faire.

Date imposée : un cadre tireté cerne la forme entière. Les taquets
tombaient sous les poignées de redimensionnement et disparaissaient sur
une barre courte. Son libellé passe dans le modèle, ce qui la fait
apparaître dans la vue par mois, qui la taisait.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-10 19:17:15 +02:00
parent 4a513f9a59
commit 815e144d9a
10 changed files with 574 additions and 98 deletions

View File

@@ -51,6 +51,24 @@ export const LIBELLES_STATUT = {
blocked: 'Bloqué',
};
/**
* Ce qu'une phase est aujourd'hui, en une ligne : son statut, et la mention de
* sa date imposée quand elle en porte une.
*
* Les deux se lisent ensemble — « en cours, date imposée » — et occupent le même
* registre, d'où une seule phrase plutôt qu'une ligne chacun.
*
* Ce libellé vit ici, et non dans la vue qui l'affiche, parce que les deux vues
* l'écrivent : la frise sur ses barres, ses jalons et ses libellés, la vue par
* mois sur ses lignes. Recomposé sur place, il avait fini par diverger — la vue
* par mois taisait la date imposée que la frise annonçait.
*/
export function libelleStatut(phase) {
const statut = LIBELLES_STATUT[phase.status] ?? LIBELLES_STATUT.todo;
if (!phase.fixed) return statut;
return `${statut} — date imposée, non emportée par un décalage du projet`;
}
/** Palette par défaut, parcourue à la création de chaque nouveau projet. */
export const COULEURS = [
'#3b82f6', '#10b981', '#f59e0b', '#ef4444',