mirror of
https://github.com/siop-spelev/siop2.git
synced 2026-08-08 12:41:54 +00:00
fix(r2): un OT clôturé disparaissait des « Interventions récentes » des rôles voyant tout
Anomalie de recette (référent) : OT assigné à Ahmed, traité, clôturé — visible dans son tableau de bord mais pas dans celui de Salma ni de l'admin. Cause : liste triée par statut (Terminés en queue) alors que le tableau de bord prend les 5 premières lignes ; les listes scopées (technicien) sont courtes, celles des rôles « voir autre » non. - tri par dernière activité (updatedAt desc) : un OT fraîchement clôturé remonte en tête pour tous - urgences « personne bloquée » ACTIVES épinglées au sommet (une urgence annulée ne squatte plus la tête — corrigé au passage) - test de régression dans la recette e2e (position ≤ urgences actives) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -92,12 +92,14 @@ export class WorkOrdersService {
|
||||
asset: { include: { location: { include: { parent: true } } } },
|
||||
assignees: true,
|
||||
},
|
||||
orderBy: [{ status: 'asc' }, { createdAt: 'desc' }],
|
||||
// Dernière activité d'abord : un OT qui vient d'être clôturé remonte
|
||||
// (« Interventions récentes » du tableau de bord = tête de liste).
|
||||
orderBy: { updatedAt: 'desc' },
|
||||
});
|
||||
// « personne bloquée » saute en tête, toujours
|
||||
rows.sort((a, b) =>
|
||||
Number(b.priority === 'PERSON_TRAPPED') - Number(a.priority === 'PERSON_TRAPPED'),
|
||||
);
|
||||
// « personne bloquée » ACTIVE saute en tête, toujours (tri stable)
|
||||
const urgenceActive = (r: (typeof rows)[number]) =>
|
||||
r.priority === 'PERSON_TRAPPED' && r.status !== 'DONE' && r.status !== 'CANCELLED';
|
||||
rows.sort((a, b) => Number(urgenceActive(b)) - Number(urgenceActive(a)));
|
||||
return { workOrders: rows.map((r) => this.toSummary(r)) };
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user