No description
  • Python 85.4%
  • HTML 12.6%
  • CSS 1.1%
  • Shell 0.5%
  • JavaScript 0.3%
  • Other 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Matthieu Peterschmitt 141d17c48c
All checks were successful
CI / lint (push) Successful in 44s
CI / tests (push) Successful in 1m57s
CI / security (push) Successful in 1m49s
CI / e2e (push) Successful in 3m10s
CI / image (push) Successful in 1m41s
fix(core): seed_demo sans dépendre de clamav pour ses pièces générées
Les pièces déposées par la commande sont des images qu'elle génère : elles
passent par l'analyseur de test, le temps du remplissage et pour ce seul
processus. En préproduction, clamav injoignable faisait échouer le seeding.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-20 00:04:06 +02:00
.github/workflows ci: hôte smtp factice pour les vérifications de déploiement 2026-10-19 19:31:25 +02:00
.semgrep feat(billing): paiement en ligne (HelloAsso, Stripe, lien externe), reçus et relevés 2026-10-17 22:58:20 +00:00
assets fix: corrige les bugs B-001 à B-020 du registre 2026-10-19 20:40:03 +02:00
config fix: corrige les bugs B-001 à B-020 du registre 2026-10-19 20:40:03 +02:00
deploy fix(docker): répertoire des pièces créé dans l'image pour l'utilisateur sacadoc 2026-10-19 22:38:24 +02:00
docs feat(communication): adresses d'expédition avec leurs propres réglages smtp 2026-10-19 21:50:16 +02:00
sacadoc fix(core): seed_demo sans dépendre de clamav pour ses pièces générées 2026-10-20 00:04:06 +02:00
scripts feat: exports XLSX et PDF des états, signature d'e-mail, typage mypy 2026-10-18 09:36:11 +00:00
static fix: corrige les bugs B-001 à B-020 du registre 2026-10-19 20:40:03 +02:00
templates feat(communication): adresses d'expédition avec leurs propres réglages smtp 2026-10-19 21:50:16 +02:00
tests fix(core): seed_demo sans dépendre de clamav pour ses pièces générées 2026-10-20 00:04:06 +02:00
.env.example chore: squelette Django 6.1 / uv / Tailwind, réglages dev-test-prod 2026-10-17 21:05:32 +00:00
.gitignore chore: squelette Django 6.1 / uv / Tailwind, réglages dev-test-prod 2026-10-17 21:05:32 +00:00
.gitleaks.toml ci: adaptation à Forgejo Actions et corrections relevées par semgrep 2026-10-18 10:18:31 +00:00
.pre-commit-config.yaml ci: lint, tests, contrôles de sécurité, image signée 2026-10-17 21:05:32 +00:00
.python-version chore: squelette Django 6.1 / uv / Tailwind, réglages dev-test-prod 2026-10-17 21:05:32 +00:00
Dockerfile fix(docker): répertoire des pièces créé dans l'image pour l'utilisateur sacadoc 2026-10-19 22:38:24 +02:00
manage.py chore: squelette Django 6.1 / uv / Tailwind, réglages dev-test-prod 2026-10-17 21:05:32 +00:00
package-lock.json feat(ui): fondations de la charte Flambeaux (couleurs, polices, icônes, pastilles) 2026-10-18 19:15:11 +02:00
package.json feat(ui): fondations de la charte Flambeaux (couleurs, polices, icônes, pastilles) 2026-10-18 19:15:11 +02:00
pyproject.toml fix: corrige les bugs B-001 à B-020 du registre 2026-10-19 20:40:03 +02:00
README.md chore: squelette Django 6.1 / uv / Tailwind, réglages dev-test-prod 2026-10-17 21:05:32 +00:00
uv.lock fix: corrige les bugs B-001 à B-020 du registre 2026-10-19 20:40:03 +02:00

Sacadoc v2

Gestion des inscriptions, des dossiers et des camps du Mouvement des Flambeaux. Réécriture complète de l'ancien Sacadoc (fork de Noethysweb), avec la sécurité des données de santé de mineurs comme première priorité.

Démarrer en local

Prérequis : uv et Node.js (pour le CSS). PostgreSQL est optionnel : sans DATABASE_URL, un PostgreSQL embarqué démarre dans var/.

uv sync                                    # dépendances Python (Python 3.14 téléchargé si besoin)
npm ci && npm run build                    # CSS + scripts vendorisés (aucun CDN)
uv run python scripts/bootstrap_dev.py     # .env et clé maîtresse de dev dans .secrets/
uv run python manage.py migrate
uv run python manage.py createcachetable
uv run python manage.py runserver

Pour utiliser le PostgreSQL de dev partagé, ajouter dans .env :

DATABASE_URL=postgresql://devuser:devpassword@dev-postgres:5432/devdb

Premier admin : créer un compte sur /compte/signup/ (le code de vérification s'affiche dans la console), puis :

uv run python manage.py bootstrap_national --name "Mouvement des Flambeaux" --admin-email vous@example.org

L'interface équipe (/equipe/) exige ensuite d'activer la double authentification.

Tests et contrôles

uv run pytest                 # toute la suite tourne sous le rôle applicatif, donc sous la RLS
uv run ruff check . && uv run ruff format --check .
uv run bandit -c pyproject.toml -r sacadoc config -x '*/migrations/*'

Règles du dépôt (extrait de docs/SECURITY.md)

  • Jamais de données de production sur un poste de dev ni dans un outil d'IA. Les données de test sont synthétiques.
  • Toute vue hérite de PublicView, FamilyView ou StaffView (sacadoc/core/access.py). Un test échoue sinon.
  • Les modèles sensibles se lisent via .for_family(user) ou .for_staff(user). Une requête non scopée lève une erreur.
  • Toute nouvelle table sensible a ses politiques RLS dans sa migration, et ses tests dans tests/test_rls.py.
  • Les valeurs sensibles utilisent EncryptedTextField / EncryptedJSONField (sacadoc/core/fields.py).
  • Pas de |safe, pas de mark_safe, pas de fields = "__all__", pas de SQL formaté (règles semgrep dans .semgrep/).