mirror of
https://github.com/siop-spelev/siop2.git
synced 2026-08-08 12:41:54 +00:00
feat(r6): mobile ouvert à tous les rôles — maquette + socle R6.1
R4 avait délibérément fermé le mobile au Technicien. Le référent demande l'ouverture à tous les rôles avec les mêmes droits qu'au web — nouvelle release R6 (R4 est close, R4.1/4.2/4.3 déjà pris par le socle mobile technicien d'origine, pas de réouverture ni de collision de numérotation). Maquette (docs/02-design/maquettes/maquette-mobile-tous-roles.html, 7 écrans) validée par le référent : D1 barre d'onglets adaptative par rôle (Technicien/Technicien limité inchangés + onglet Menu ajouté) ; D2 le Menu reprend à l'identique les 4 groupes du web, même matrice de permissions ; D3 groupe sans lien visible masqué en entier ; D4 le mobile porte les actions courantes par famille, pas les flux de gestion les plus denses ; D5 aucune logique de permission propre au mobile. R6.1 — socle : usePermissions() mobile calqué sur le web ; barre d'onglets adaptative (ongletsVisibles par rôle, href:null masque sans retirer du navigateur) ; Accueil (dashboard réel pour Administrateur/Gestionnaire/ Dispatcher/Vue seule, aucun chiffre inventé) ; OT (liste complète, viewOther déjà géré serveur, réutilise la fiche OT R4 telle quelle) ; Menu (groupes filtrés, vide masqué) ; Demandes (PanneauDemandes — un seul composant pour tous les rôles : création/suivi Demandeur, approbation/ rejet Gestionnaire/Dispatcher/Administrateur, lecture Vue seule). Familles pas encore portées : écran « à venir » plutôt qu'un lien mort. Typecheck propre, 17 tests Jest, lint 5/5 paquets. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -4,6 +4,65 @@ Trace chronologique des sessions (la plus récente en premier). Le **playbook**
|
||||
|
||||
---
|
||||
|
||||
## 2026-08-02 — Pr. Daaif (+ Claude) — R6 lancée : mobile ouvert à tous les rôles
|
||||
|
||||
**Contexte** — deux retours du référent en test réel sur iPhone : (1) une fois authentifié,
|
||||
impossible de revenir en arrière ou de se déconnecter ; (2) l'app mobile devrait être accessible
|
||||
à tous les rôles, pas seulement au Technicien, avec les mêmes actions que le web. Le premier est
|
||||
un bug, corrigé dans la foulée ; le second est un changement de fond — R4 avait délibérément
|
||||
fermé le périmètre au Technicien (décision actée dans ses maquettes). Ouvrir à tous les rôles
|
||||
veut dire porter sur mobile une bonne partie de ce que fait le web (référentiel, ressources,
|
||||
personnes, statistiques…) : plus gros que R4 dans son ensemble, donc une **nouvelle release,
|
||||
R6** (R4 est close depuis le 17/07, R4.1/R4.2/R4.3 déjà pris par le socle mobile technicien
|
||||
d'origine — pas question de les réutiliser et de brouiller l'historique).
|
||||
|
||||
**Actions**
|
||||
|
||||
- **Correctif déconnexion** : `EnteteTabs` (`composants/ui.tsx`) factorise une entête commune aux
|
||||
4 onglets terrain — badge de compte + confirmation `Alert` au tap simple (l'ancien geste,
|
||||
`onLongPress` sur « Ma journée » seulement, n'était pas découvrable). Le rôle affiché vient du
|
||||
compte connecté, plus de libellé « Technicien » figé.
|
||||
- **Maquette R6** (`docs/02-design/maquettes/maquette-mobile-tous-roles.html`, 7 écrans) rédigée
|
||||
et validée par le référent le jour même : synthèse par rôle, Accueil adaptatif, Menu groupé
|
||||
filtré par la matrice, OT côté Dispatcher, Demandes (création + approbation), Stock, Personnes
|
||||
& statistiques. Cinq décisions actées : D1 barre d'onglets adaptative (Technicien/Technicien
|
||||
limité inchangés + onglet Menu ajouté) ; D2 le Menu reprend à l'identique les 4 groupes du web
|
||||
(Exploitation/Parc/Ressources/Pilotage), même matrice, aucune règle de droit nouvelle ; D3 un
|
||||
groupe sans lien visible est masqué en entier (contrairement au web) ; D4 le mobile porte les
|
||||
actions courantes par famille, pas les flux de gestion les plus denses (réservés au web pour
|
||||
l'instant) ; D5 aucune logique de permission propre au mobile — un hook `usePermissions()`
|
||||
calqué sur celui du web.
|
||||
- **R6.1 — socle** : `usePermissions()` mobile (lit `me.permissions`, déjà renvoyé par
|
||||
`/users/me`) ; barre d'onglets adaptative (`ongletsVisibles` par rôle, `href: null` pour masquer
|
||||
sans retirer du navigateur — le Menu peut toujours y pousser) ; écrans Accueil (dashboard réel
|
||||
pour Administrateur/Gestionnaire/Dispatcher/Vue seule — aucun chiffre inventé, seuls
|
||||
WORK_ORDERS/REQUESTS sont câblés), OT (liste complète, `viewOther` déjà géré serveur, réutilise
|
||||
la fiche OT R4 telle quelle — elle dérive déjà ses actions de `allowedTransitions`), Menu
|
||||
(groupes filtrés, groupe vide masqué), Demandes (`PanneauDemandes`, un seul composant pour tous
|
||||
les rôles : création + suivi pour le Demandeur, approbation/rejet à motif pour
|
||||
Gestionnaire/Dispatcher/Administrateur, lecture seule pour Vue seule — même patron que le web,
|
||||
découverte au passage : `GET /assets/options` déjà ouvert à tout rôle authentifié, réutilisé
|
||||
tel quel). Familles pas encore portées (Sites, Ascenseurs, Stock, Tiers, Fichiers, Statistiques,
|
||||
Assistant, Personnes) : écran « à venir » honnête (`composants/a-venir.tsx`, déjà présent mais
|
||||
jamais câblé jusqu'ici) plutôt qu'un lien mort — chacune mérite son propre passage, sur le
|
||||
modèle R4.1→R4.3.
|
||||
- Vérifié : typecheck propre, 17 tests Jest verts, lint 5/5 paquets. Pas de vérification visuelle
|
||||
en navigateur de mon côté (aucun outil de ce type dans cet environnement) — à confirmer par le
|
||||
référent sur l'iPhone déjà connecté au serveur Metro.
|
||||
|
||||
**Décisions**
|
||||
|
||||
- Nouvelle release **R6** (pas R4.1/4.2/4.3, déjà pris ; pas de réouverture de R4, clos) pour tout
|
||||
le chantier « mobile ouvert à tous les rôles ». Sous-étapes à venir : R6.2 (Parc — Sites,
|
||||
Ascenseurs), R6.3 (Ressources — Stock, Tiers, Fichiers), R6.4 (Pilotage — Statistiques,
|
||||
Personnes, Assistant), sur le modèle des sous-releases R4.1→R4.3.
|
||||
|
||||
**Prochaine étape** : R6.2 (Parc sur mobile) ; confirmation du référent sur iPhone (nav adaptative
|
||||
et correctif déconnexion) ; restes non bloquants inchangés (recette Android physique,
|
||||
redéploiement Dokploy, calibrage `AI_SEUIL_*`/darija, `DOKPLOY_WEBHOOK_URL`).
|
||||
|
||||
---
|
||||
|
||||
## 2026-08-01 — Pr. Daaif (+ Claude) — Dictée validée sur iPhone physique (ADR-004 §5)
|
||||
|
||||
**Actions**
|
||||
|
||||
Reference in New Issue
Block a user