mirror of
https://github.com/siop-spelev/siop2.git
synced 2026-08-08 12:41:54 +00:00
fix(mobile): R6.7 — assignation à un technicien lors de l'approbation
Le Gestionnaire approuvait une demande sur mobile sans pouvoir assigner
l'OT à un technicien (l'OT partait non assigné) — remonté en recette :
"ce n'est pas à lui d'agir comme un technicien". Le web le fait déjà
(PanneauApprobation, demandes.tsx).
PanneauDemandes.tsx : "Approuver → OT" ouvre un panneau avec un ChoixTel
"Assigner à" (techniciens actifs, même filtre que le web —
status active && role.name.startsWith('Technicien')) avant de confirmer.
assigneeIds déjà supporté par l'API et le contrat — aucun changement
serveur nécessaire, seule l'UI mobile manquait cette étape.
Vérifié de bout en bout : demande → approuvée avec technicien assigné →
OT confirmé avec le bon assignee. Typecheck/tests/lint verts.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -4,6 +4,42 @@ Trace chronologique des sessions (la plus récente en premier). Le **playbook**
|
||||
|
||||
---
|
||||
|
||||
## 2026-08-02 — Pr. Daaif (+ Claude) — R6.7 : assignation à l'approbation (mobile)
|
||||
|
||||
**Contexte** — en recette, le référent a signalé que le Gestionnaire doit pouvoir affecter un OT
|
||||
à un technicien au moment où il approuve une demande — « ce n'est pas à lui d'agir comme un
|
||||
technicien ». Vérification : le web le fait déjà (`PanneauApprobation`, `demandes.tsx` —
|
||||
sélecteur « Assigner à » parmi les techniciens actifs). Le mobile (`PanneauDemandes`, construit
|
||||
en R6.1) approuvait directement avec la priorité seule, sans écran d'assignation — l'OT partait
|
||||
non assigné, obligeant quelqu'un à revenir dessus ensuite pour le confier à un technicien.
|
||||
|
||||
**Actions**
|
||||
|
||||
- `apps/mobile/src/composants/panneau-demandes.tsx` : le bouton « Approuver → OT » ouvre
|
||||
désormais un panneau (même patron que le rejet à motif) avec un `ChoixTel` « Assigner à »,
|
||||
peuplé des techniciens actifs (`useUsers()` de `api/pilotage.ts`, filtre
|
||||
`status === 'active' && role.name.startsWith('Technicien')` — identique au web), avant de
|
||||
confirmer l'approbation (`assigneeIds` transmis à `POST /requests/{id}/approve`, déjà supporté
|
||||
côté API et par le contrat — rien à changer côté serveur, seule l'UI mobile manquait cette
|
||||
étape).
|
||||
- Vérifié de bout en bout : demande créée par Karim → approuvée par Nadia (Gestionnaire) avec
|
||||
Ahmed (Technicien) assigné → OT confirmé avec `assignees: [Ahmed Benali]`. Typecheck/tests/lint
|
||||
verts sur les 4 paquets.
|
||||
|
||||
**Décisions**
|
||||
|
||||
- Le périmètre plus large — le Gestionnaire garde par la matrice R2/R3 `WORK_ORDERS` en accès
|
||||
complet (`view/viewOther/create/edit/delete`), ce qui lui permet TECHNIQUEMENT de démarrer/
|
||||
clôturer n'importe quel OT comme le ferait un technicien — n'est pas touché ici : c'est un
|
||||
choix de matrice établi depuis R2/R3, identique sur le web, pas une régression du mobile R6.
|
||||
Signalé au référent comme question ouverte séparée si un resserrement est souhaité.
|
||||
|
||||
**Prochaine étape** : reste de la recette R6 (Sites/Ascenseurs/Fichiers, puis passage Demandeur
|
||||
avec le nouveau périmètre de site et le scan QR) ; question ouverte sur le périmètre d'édition OT
|
||||
du Gestionnaire à trancher si besoin.
|
||||
|
||||
---
|
||||
|
||||
## 2026-08-02 — Pr. Daaif (+ Claude) — R6.6 : Demandeur restreint à son site
|
||||
|
||||
**Contexte** — en recette, le référent a remarqué que Karim Doukkali (Demandeur) voit tout le
|
||||
|
||||
Reference in New Issue
Block a user