- Python 72%
- HTML 27.4%
- Shell 0.4%
- Dockerfile 0.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| .forgejo/workflows | ||
| benefits | ||
| config | ||
| core | ||
| docs | ||
| sample | ||
| static/css | ||
| templates | ||
| tools | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| d | ||
| docker-compose.yml | ||
| Dockerfile | ||
| entrypoint.sh | ||
| manage.py | ||
| README.md | ||
| requirements.txt | ||
Amicale ADAT — V0.4 (audit et ergonomie)
Portail web interne de l'Amicale du personnel de l'ADAT, conçu pour être hébergé dans une Stack Portainer et suivi dans Forgejo.
Cette version améliore la V0.3.3 sans changer les modèles de données ni les noms des volumes Docker.
Parcours utilisateur
Agent : consulter ses droits, choisir le format ANCV pendant une campagne, faire une demande de remboursement avec plusieurs justificatifs, consulter l'état du dossier, voir les conditions Plurélya et compléter son profil.
Bureau : traiter les dossiers, consulter leurs justificatifs, réduire le montant retenu en fonction des dépenses réellement éligibles, enregistrer la date effective du règlement, suivre la comptabilité, les adhérents, les tâches, les réunions et les échéances de l'association.
Le Président et le Vice-président peuvent gérer la comptabilité au même titre que les personnes chargées de la trésorerie.
Améliorations V0.4
- Navigation PC repensée en menus structurés ; véritable menu mobile, focus clavier et accès direct au contenu.
- Formulaire de demande clarifié en deux étapes : informations puis justificatifs multiples, avec résumé des fichiers sélectionnés.
- Contrôle des formats des justificatifs (signature PDF/JPG/PNG + taille, en plus de l'extension), accès en téléchargement contrôlé par les permissions.
- Empêchement de la double validation / du double paiement par transactions et verrouillage côté PostgreSQL.
- Validation partielle : le Bureau peut retenir moins que le plafond théorique mais pas plus.
- Refus motivé obligatoire ; date et mode de paiement réels ; dépense comptable liée créée automatiquement.
- Écritures issues des remboursements protégées contre une modification manuelle du montant, de la catégorie ou de la date.
- Adhérents, demandes Bureau et journal comptable paginés ; année invalide dans l'URL traitée sans 500.
- Alertes de réélection et d'Assemblée générale visibles dès l'accueil Bureau.
- Protection de l'export CSV contre les formules dangereuses dans les champs texte.
- Date de naissance conservée dans les formulaires ; interdiction de désactiver son propre compte depuis la gestion des adhérents.
Reprise historique : prévisualisation uniquement
Aucun import réel n'est disponible. Bureau > Reprise des données analyse le fichier Excel et montre les éventuelles correspondances, sans création d'adhérents, prestations ou écritures comptables. L'ancienne commande import_agents_csv est volontairement désactivée.
Les fichiers de test sont copiés temporairement dans le volume Docker import_data, sous /data/imports, puis supprimés après l'analyse. Aucun fichier d'import réel n'est inclus dans ce dépôt. Les répertoires et extensions de données sensibles sont exclus du Git et du contexte de build Docker.
ATTENTION :
.gitignorene retire pas de l'historique Git un fichier déjà suivi. Avant chaquegit push, lancerpython tools/check_git_privacy.pydepuis votre copie du dépôt.
Déploiement
Lire docs/DEPLOIEMENT_PORTAINER.md : procédure de mise à jour de la Stack existante, sauvegarde préalable, vérifications et retour arrière.
Variables Portainer : aucune nouvelle variable obligatoire. En HTTP interne, conserver DJANGO_SECURE_COOKIES=0 et DJANGO_HSTS_SECONDS=0 jusqu'à la mise en place d'HTTPS.
Développement et vérification
python tools/check_project.py
python tools/check_git_privacy.py
# Avec Django et les dépendances installées :
DB_ENGINE=sqlite DJANGO_SECRET_KEY=test-only python manage.py test
Les tests Django sont fournis dans core/tests.py et benefits/tests.py, et Forgejo Actions est configuré pour les exécuter si son runner est disponible.
Limites : la visualisation HTML a été contrôlée sur écran ordinateur et mobile avec des données synthétiques. La suite Django/PostgreSQL complète n'a pas pu être exécutée dans l'environnement de génération (Django non installé, accès PyPI indisponible). Vérifier le comportement réel dans votre Stack de test avant utilisation avec des données réelles.
Les rappels de vie associative sont des alertes affichées à l'écran, pas des emails automatiques.