Module Structures (org_units)
Le module Structures gère l'arborescence organisationnelle des Scouts du Sénégal :
NATION
└── RÉGION (ex: Dakar)
└── DISTRICT (ex: Niayes)
└── GROUPE (ex: Marie-Immaculée)
└── UNITÉ (ex: Meute Akéla, Troupe Saint-Georges)
Hiérarchie & types
Type (org_unit_types.code) | Niveau | Parent | Spécificité |
|---|---|---|---|
NATION | 1 | — | Racine unique (Scouts du Sénégal) |
REGION | 2 | NATION | ex: Dakar, Thiès, Saint-Louis |
DISTRICT | 3 | REGION | Subdivision géographique de la région |
GROUPE | 4 | DISTRICT | Communauté scoute (paroisse, école, quartier) |
UNITE | 5 | GROUPE | Meute, Troupe ou Communauté avec branche |
Accéder au module
Sidebar → Administration → Structures.

Filtres (cascade)
Identique au module Responsables : Région → District → Groupe → Unité. Cascade scope-aware.
Créer une structure
Bouton Nouvelle structure :
- Type : choisis le niveau (REGION / DISTRICT / GROUPE / UNITE)
- Parent : sélectionne l'ancêtre direct
- Nom : le libellé usuel de la structure
- Spécifique UNITE :
unit_branch_code(Louveteaux / Éclaireurs / Routiers — obligatoire pour UNITE)
Le code n'est pas saisi : il est généré automatiquement à partir du nom et du parent, et il reste géré automatiquement en édition. Conventions :
| Niveau | Forme du code |
|---|---|
| NATION | NAT-<sigle 3 lettres> |
| REGION | REG-<sigle 4 lettres> |
| DISTRICT | DST-<sigle 4 lettres> |
| GROUPE | GRP-<dernier segment du code district>-<sigle du groupe> |
| UNITE | UNT-<dernier segment du code groupe>-<MEUTE / TROUPE / COMMU> |
Le sigle est dérivé du nom, le suffixe d'unité de sa branche (Louveteaux →
MEUTE, Éclaireurs → TROUPE, Routiers → COMMU). Deux structures ne peuvent
pas porter le même code : en cas de collision, un discriminant est ajouté.

Copier le code d'une structure
Sur la liste comme sur le détail d'une structure, un bouton copier le code met le code dans le presse-papier.
C'est ce code qu'on colle dans la colonne org_unit_code du tableur d'
import en masse de scouts — le recopier à la main est
la première cause de lignes en conflit.
Archiver une structure
Bouton Archiver (status → ARCHIVED). Doctrine R4 : pas de DELETE.
Les données restent en DB, mais la structure devient invisible des filtres
courants.
Pré-conditions pour archiver
- Aucun scout actif rattaché (sinon il faut les transférer ou les radier d'abord)
- Aucun responsable affecté actif (sinon il faut fermer leurs affectations)
- Aucun descendant actif (cascade attendue : archiver les enfants d'abord)
Permissions (mig 0209)
| Rôle | Voit | Crée | Archive |
|---|---|---|---|
| ADMIN_UNITE | son unité (lecture) | — | — |
| ADMIN_GROUPE | son groupe + ses unités | unités | unités |
| ADMIN_DISTRICT | son district + groupes + unités | groupes + unités | groupes + unités |
| ADMIN_REGION | sa région + tout descendant | districts + groupes + unités | idem |
| ADMIN_NATION | tout | tout | tout |
Doctrine
- Les RPCs
rpc_org_units_*sont SECURITY DEFINER avec gates contractuels. - La table de fermeture
org_unit_closureest maintenue automatiquement (sous-arbre rapide). - Un Commissaire de Région peut nommer un Commissaire de District (cf. Affectations).