# UML — Activity Diagrams > Vue dynamique des **workflows complets** (parcours utilisateur de bout en bout). > Complement aux state diagrams (cycle de vie d'une entite) et au MCT (operations isolees). > Chaque diagramme = un parcours metier qui traverse plusieurs entites et acteurs. ## 1. AD-01 — Attribuer un module a un formateur ```mermaid flowchart TD Start([Admin demande attribution]) --> A1[Selectionner module a attribuer] A1 --> A2{Module existe
statut != annule?} A2 -->|Non| Err1([Erreur: module invalide]) A2 -->|Oui| A3[Lister formateurs avec capacite >= heures requises] A3 --> A4{Au moins 1
formateur dispo?} A4 -->|Non| Err2([Pas de formateur dispo - ajouter capacite ou reduire heures]) A4 -->|Oui| A5[Admin choisit formateur] A5 --> A6[Saisir heures + dates] A6 --> A7{Heures attribution +
existantes <= heures module?} A7 -->|Non| Err3([RG-01 KO: depassement heures module]) A7 -->|Oui| A8{Heures + capacite
existante > capacite annuelle?} A8 -->|Oui| Warn[Warning: depassement capacite formateur] A8 -->|Non| A9 Warn --> A9[Confirmer attribution] A9 --> A10[INSERT attribution statut=planifie] A10 --> A11[Recalculer rollups en cascade] A11 --> A12[Notifier formateur par email] A12 --> End([Attribution confirmee]) ``` ## 2. AD-02 — Saisir heures realisees (parcours formateur) ```mermaid flowchart TD Start([Formateur fin de cours]) --> B1[Ouvre app sur mobile] B1 --> B2{Authentifie?} B2 -->|Non| B3[Login SSO ou email/password] B3 --> B4 B2 -->|Oui| B4[Affiche liste de mes attributions actives] B4 --> B5[Selectionne l'attribution du jour] B5 --> B6[Saisit heures realisees] B6 --> B7{heures_realisees
<= heures_attribuees + tolerance?} B7 -->|Non| B8[Saisit raison du depassement] B8 --> B9 B7 -->|Oui| B9[Confirme] B9 --> B10[UPDATE attribution.heures_realisees] B10 --> B11{heures_realisees
== heures_attribuees?} B11 -->|Oui| B12[attribution.statut = realise] B11 -->|Non| B13[attribution.statut reste en_cours] B12 --> B14[Recalculer rollups] B13 --> B14 B14 --> End([Saisie confirmee]) ``` ## 3. AD-03 — Cycle complet d'une formation (vue globale) ```mermaid flowchart TD Start([Direction valide nouvelle formation]) --> C1[Admin cree FORMATION statut=draft] C1 --> C2[Admin cree BLOC RNCP-1, BLOC RNCP-2, ...] C2 --> C3[Admin cree MODULES dans chaque bloc] C3 --> C4{Tous modules
prets a attribuer?} C4 -->|Non| C3 C4 -->|Oui| C5[Admin active formation: statut=actif] C5 --> C6{Pour chaque module} C6 --> C7[AD-01: Attribuer formateur] C7 --> C6 C6 -->|Tous attribues| C8[Date debut atteinte] C8 --> C9[Modules passent en_cours auto] C9 --> C10{Pour chaque session} C10 --> C11[AD-02: Formateur saisit heures] C11 --> C10 C10 -->|Toutes sessions terminees| C12[Modules passent realise auto] C12 --> C13{Tous modules realises
+ date_fin atteinte?} C13 -->|Non| C10 C13 -->|Oui| C14[Formation statut=termine] C14 --> C15[Generer rapport final + archivage] C15 --> End([Formation terminee]) ``` ## 4. AD-04 — Parcours projet client (Agence) > Note : couvre la branche **Agence dev** d'Acadenice. Necessite l'extension du modele decrite dans `02-scope-etendu-cfa-agence.md`. ```mermaid flowchart TD Start([Client signe devis]) --> D1[Admin cree CLIENT si nouveau] D1 --> D2[Admin cree PROJET lie au client] D2 --> D3[Decouper en LIVRABLES ou TACHES] D3 --> D4[Estimer charge en heures] D4 --> D5[Identifier devs disponibles
capacite agence restante] D5 --> D6[INTERVENTION: lier dev a tache, heures] D6 --> D7{Dev = formateur aussi?} D7 -->|Oui| D8[Verifier capacite totale
= capacite_agence + capacite_formation] D7 -->|Non| D9 D8 --> D9[Confirmer intervention] D9 --> D10{Pour chaque session de travail} D10 --> D11[Dev saisit heures realisees] D11 --> D10 D10 -->|Tache terminee| D12[Tache statut=livre] D12 --> D13{Tous livrables
livres?} D13 -->|Non| D10 D13 -->|Oui| D14[PROJET statut=cloture] D14 --> D15[Facturation client] D15 --> End([Projet cloture]) ``` ## 5. AD-05 — Allocation capacite Formateur-Developpeur (cas mixte) > Cas specifique Acadenice : un formateur peut aussi etre dev sur projet client. Sa capacite totale annuelle est splittee entre formation et agence. ```mermaid flowchart TD Start([Personne avec role formateur + developpeur]) --> E1[Capacite totale annuelle = X heures] E1 --> E2[Repartition par defaut:
50 pct formation, 50 pct agence
configurable par personne] E2 --> E3{Allocation cours
ou projet?} E3 -->|Cours formation| E4[heures_cours_attribuees
+= nouvelles heures] E4 --> E5{capacite_formation_restante >= 0?} E5 -->|Non| Err1[Bloquer ou warning] E5 -->|Oui| E6[OK] E3 -->|Projet client| E7[heures_projet_attribuees
+= nouvelles heures] E7 --> E8{capacite_agence_restante >= 0?} E8 -->|Non| Err2[Bloquer ou warning] E8 -->|Oui| E9[OK] E6 --> Final[Recalculer:
capacite_totale_restante = X - cours_attribuees - projet_attribuees] E9 --> Final Final --> End([Affichage tableau de bord
Personne]) ``` ## 6. AD-06 — Inscription etudiant a une formation ```mermaid flowchart TD Start([Prospect candidate]) --> F1[Admin cree ETUDIANT prospect] F1 --> F2[Phase selection: tests, entretiens] F2 --> F3{Selectionne?} F3 -->|Non| F4[Statut = refuse, lettre] F4 --> EndKo([Fin]) F3 -->|Oui| F5[Etudiant statut = admis] F5 --> F6[INSCRIPTION: lier ETUDIANT a FORMATION] F6 --> F7[Creer space personnel Docmost] F7 --> F8[Envoyer onboarding info] F8 --> F9{Date debut formation?} F9 -->|Non encore| F8 F9 -->|Oui| F10[Etudiant.statut = en_cours] F10 --> F11[Formation classique] F11 --> F12{Reussi?} F12 -->|Oui| F13[Etudiant.statut = diplome] F12 -->|Non| F14[Etudiant.statut = abandonne ou redouble] F13 --> EndOk([Diplome remis]) F14 --> EndKo ``` ## 7. AD-07 — Validation et publication d'une page wiki ```mermaid flowchart TD Start([Auteur ouvre page Docmost]) --> G1[Edite contenu] G1 --> G2[Sauvegarde brouillon auto] G2 --> G3{Pret a publier?} G3 -->|Non| G1 G3 -->|Oui| G4[Demande review optionnelle] G4 --> G5{Reviewer assigne?} G5 -->|Non| G7 G5 -->|Oui| G6[Reviewer commente] G6 --> G7[Auteur applique changements] G7 --> G8[Publie page] G8 --> G9[Indexation search] G9 --> G10{Page partagee externe?} G10 -->|Oui| G11[Genere share link] G11 --> G12[Envoie lien aux destinataires] G10 -->|Non| End G12 --> End([Page publiee]) ``` ## 8. Liste des activity diagrams a faire (post-validation scope) | Code | Titre | Statut | |------|-------|--------| | AD-01 | Attribuer module a formateur | Fait | | AD-02 | Saisir heures realisees | Fait | | AD-03 | Cycle complet d'une formation | Fait | | AD-04 | Parcours projet client (Agence) | Brouillon, depend de scope etendu | | AD-05 | Allocation Formateur-Dev (capacite mixte) | Brouillon, depend de scope etendu | | AD-06 | Inscription etudiant | Fait | | AD-07 | Validation page wiki | Fait | | AD-08 | Onboarding nouveau salarie / formateur | A faire | | AD-09 | Maintenance site web client (recurring) | A faire si scope etendu | | AD-10 | Backup + restauration disaster recovery | A faire (ops) |