Module Cartes de membre
Le module Cartes de membre génère, imprime et révoque les cartes d'identité officielles SDS pour tous les scouts (jeunes ET responsables — doctrine R1 : un responsable est d'abord un scout dans son groupe d'origine).
Concepts
| Terme | Définition |
|---|---|
| Carte | Une carte individuelle pour 1 scout × 1 année scoute, avec card_number unique format SDS-YYYY-NNNNNN |
| Snapshot | Données figées au moment de l'émission (matricule, prénom/nom, photo, unité, branche) — la carte ne change pas si le scout change ensuite |
| Statut | ACTIVE (valide) / EXPIRED (validité dépassée) / REVOKED (perdue, volée…) / LOST |
| QR token | Token aléatoire qui permet la vérification publique via /v/[token] (anon, scannable) |
| Lot | Génération en masse pour un périmètre + une année scoute donnés |
Doctrine
- Multi-cartes : un scout peut avoir plusieurs cartes au cours de sa vie scoute. À tout instant, 1 seule carte ACTIVE par scout × année (contrainte DB).
- Réémission propre : perte/vol → révoquer + réémettre (nouveau
card_number, matricule inchangé). L'historique reste auditable. - Génération centralisée : réservée au Secrétariat National et Régional (perm
governance.member_cards.generate). Les chefs de groupe / unité ne génèrent pas eux-mêmes — anti-fraude. - Photo obligatoire : un scout sans
photo_urlest skippé silencieusement dans la génération en lot. - Validité = année scoute :
valid_until = scout_years.end_dateà l'émission. La carte expire automatiquement à la fin de l'année courante. - Snapshots immutables : R3 — si le scout change d'unité ou de photo, sa carte ACTIVE n'est PAS rétro-modifiée. Réémission nécessaire.
- Audit complet (R6) : chaque génération, révocation, réémission est tracée dans
audit_logs.
Accéder au module
Sidebar → Cartes de membre.

KPIs
- Actives : cartes utilisables (statut ACTIVE + non expirées)
- Expirées : statut ACTIVE mais
valid_untildépassée (calcul à la volée) - Révoquées : statut REVOKED (perte, vol, données erronées, etc.)
- Total : toutes statuts confondus pour l'année scoute filtrée
Filtres
Pattern cascade hiérarchique scope-aware :
- Recherche : n° carte, matricule, prénom, nom
- Statut : ACTIVE / EXPIRED / REVOKED / LOST
- Année scoute (défaut : courante)
- Région (visible ADMIN_NATION+)
- District (visible ADMIN_REGION+, restreint à la région choisie)
- Groupe (visible ADMIN_DISTRICT+, restreint au district)
- Unité (visible ADMIN_GROUPE+, restreint au groupe)
- Branche (Louveteaux / Éclaireurs / Routiers)
Workflows
1. Générer un lot de cartes (Secrétariat)
Quand : à la rentrée scoute, ou après un afflux d'inscriptions.
- Bouton vert "Générer un lot" en haut à droite
- Cascade : sélectionner Région → District → Groupe → Unité (ou s'arrêter à n'importe quel niveau pour générer pour tout le sous-arbre)
- Choisir l'année scoute (défaut : actuelle)
- (Optionnel) Cocher "Forcer la réémission" pour révoquer les cartes ACTIVE existantes et les ré-émettre. À utiliser uniquement après réimpression statutaire (changement de modèle, etc.).
- Lancer la génération → résumé affiché :
X cartes générées sur Y éligiblesN sans photo(skippées, à régulariser)M déjà actives(skippées sauf force)

2. Imprimer un lot (papier ou PVC)
Quand : après une génération, pour distribuer matériellement.
- Bouton "Imprimer le lot" en haut à droite
- Cascade : périmètre + année
- Générer le PDF → téléchargement automatique
Format A4 : 8 cartes par page (grille 2×4), au format CR80 réel (85.6×54mm). Imprimer en A4 et découper, ou utiliser une feuille de cartes pré-perforées.
3. Imprimer une carte unitaire (impression PVC Evolis)
Quand : 1 carte à imprimer sur imprimante PVC dédiée.
- Dans la table, click l'icône ⬇ "Télécharger carte PDF" sur la ligne du scout
- Le PDF s'ouvre dans un nouvel onglet au format CR80 exact (1 carte/page)
- Imprimer directement sur PVC blanc (Evolis Primacy, Magicard, etc.)
4. Révoquer une carte (perte, vol)
Quand : un scout signale la perte ou le vol de sa carte.
- Dans la table, click l'icône 🛡✕ "Révoquer" sur la ligne ACTIVE
- Choisir un motif (Perdue / Volée / Détériorée / Données erronées / Doublon / Autre)
- Révoquer → la carte passe à
REVOKED, le QR ne valide plus
5. Réémettre après révocation
Quand : un scout dont la carte est révoquée doit recevoir une nouvelle carte.
- Dans la table, click l'icône ↻ "Réémettre" sur la ligne
- La nouvelle carte est créée avec un nouveau
card_numbermais le même matricule - L'ancienne reste en historique (
REVOKED)
6. Vérification publique par scan QR
Quand : un tiers (responsable d'événement, secrétariat tournoi, gendarme) doit vérifier l'authenticité.
- Scanner le QR de la carte avec n'importe quel téléphone
- Atterrissage sur
https://sygades.info/v/[qr_token]— aucune auth requise - Affiche : photo + nom + unité + branche + statut + validité
- Statut affiché : Carte valide (vert) / Carte expirée (orange) / Carte révoquée (rouge) / Carte introuvable (token invalide)
Données non révélées : téléphone, email, adresse, contacts d'urgence, dossier médical. Seul le minimum pour vérification visuelle.

Permissions
| Action | Permission | Rôles |
|---|---|---|
| Voir le menu sidebar + lister les cartes | governance.member_cards.view | ADMIN_REGION + ADMIN_NATION + ADMIN_SYSTEM |
| Générer un lot | governance.member_cards.generate | ADMIN_REGION + ADMIN_NATION |
| Révoquer une carte | governance.member_cards.revoke | ADMIN_REGION + ADMIN_NATION |
| Réémettre une carte | governance.member_cards.reissue | ADMIN_REGION + ADMIN_NATION |
| Imprimer (PDF) | (= view) | ADMIN_REGION + ADMIN_NATION + ADMIN_SYSTEM |
Le module est réservé au Secrétariat National et Régional (option A, DEC-018). Les chefs de groupe / district / unité ne voient PAS le menu sidebar — pour savoir si une carte existe pour un scout précis, ils passent par la fiche scout (encart latéral, à venir).
Schéma
member_cards(table principale, 1 row = 1 carte) — snapshots, statut, qr_tokenmember_card_counters(compteur atomique par année scoute pourcard_number)- RLS scope-aware via
org_unit_id_snapshot+org_unit_closure - Migrations :
0281(schéma),0282(RPCs),0283(fix pgcrypto)
Voir aussi
- Module Scouts — où renseigner la photo obligatoire
- Module Audit — toutes les actions Cartes sont auditées
- Glossaire scout — Matricule, branche, scout_year