Docs: livraisons par mois extraites de commits.txt

This commit is contained in:
Pontoporeia
2026-06-29 17:38:57 +02:00
parent a790ddc02a
commit 4ea12f0172
2 changed files with 6407 additions and 0 deletions
+6268
View File
File diff suppressed because it is too large Load Diff
+139
View File
@@ -0,0 +1,139 @@
# Livraisons par mois — xamxam
## Janvier 2026 (8 commits)
- Site public affichant le contenu de la DB + fichiers
- Formulaire de soumission séparé → écriture en base
- Première version des contrôleurs TFE (création, édition)
- Structure initiale du projet : routing, templates, DB SQLite
- Schéma de base de données (theses, auteurs, formats, langues, etc.)
## Février 2026 (29 commits)
- Formulaire admin + formulaire étudiant (partage)
- Soumissions étudiant via liens de partage (share links)
- Système de visibilité : Libre / Interne / Interdit
- Pages statiques éditables (À propos) → début du CMS
- Gestion des fichiers uploadés (stockage, affichage)
- Export CSV des TFE
- Import CSV des TFE
- Structure admin : index, navigation, table listant les TFE
- Base du système de licences (CC2r)
## Mars 2026 (74 commits)
- Édition / correction / suppression des entrées TFE dans l'admin
- Récapitulatif admin après soumission
- Affichage public des TFE (page tfe.php)
- Moteur de recherche dans le répertoire (par nom)
- Filtres par orientation, AP, année, langue, finalité
- Système d'authentification admin (login / mot de passe / session)
- Protection par mot de passe des fichiers « Interne »
- Données internes : points du jury, remarques, lien BAIU, exemplaires
- Colonnes du répertoire : années, orientations, AP, mots-clés, noms
- Rework CSS majeur (variables, typographie, thème clair/sombre)
- Intégration HTMX pour les interactions dynamiques
- Upload de fichiers avec queues JS (avant FilePond)
- Structure formulaire : champs conditionnels selon les formats
- PDF obligatoire / optionnel selon les formats
- Jury (promoteurices, lecteurices) dans le formulaire admin
## Avril 2026 (207 commits)
- Refonte complète des uploads : FilePond remplace les queues custom
- Architecture d'upload asynchrone FilePond (process/revert/load/remove)
- Pool unique TFE acceptant tous les formats (vidéo, audio, etc.)
- Upload de masse avec barre de progression
- Intégration PeerTube pour vidéos / audio (upload API, embed)
- Système de brouillon automatique (autosave) pour le formulaire partage
- Fragments HTMX partagés admin / partage (formats, fichiers, licence)
- Extraction du JS inline en modules externes (admin-logs, clipboard, pill-search, etc.)
- Composant pill-search pour mots-clés et langues (autocomplete HTMX)
- Gestion des mots-clés et langues dans l'admin (rename, merge, delete)
- TOC sidebar dans les pages admin (IntersectionObserver)
- Tri des colonnes dans l'index admin (Auteur, Accès, etc.)
- Liens de partage : nom éditable, expiration, dialogue d'édition
- Obfuscation des emails en entités HTML (EmailObfuscator)
- Récapitulatif exhaustif (partage + admin)
- Champs conditionnels : website URL, annexes, PeerTube vs. upload direct
- Promoteurices multiples (interne + ULB) avec ajout/suppression dynamique
- Formulaire mobile responsive
- Contact visible / contact interne découplés
- CC2r renommé (ex-CC4r), restructuration des licences
- Pages statiques : Charte, Licence, À propos avec TOC sticky
- Checkboxes admin en auto-save HTMX avec toasts de feedback
- Backups SQLite automatisés (horaire + quotidien, cron)
- Déploiement : recettes justfile, vérification permissions, migrations incrémentales
- Content-Security-Policy, HSTS, SameSite cookies
- Script de scan passif de sécu (pentest)
- Chiffrement du mot de passe SMTP (AES-256-GCM)
- Rate limiting sur les endpoints sensibles
## Mai 2026 (156 commits)
- FilePond : correction crash « can't access property main », tailles en bytes
- Fichiers temporaires FilePond survivent au rechargement de page
- Relink de fichiers orphelins (file browser + FilePond integration)
- Trash policy : suppression → tmp/_trash avec traçabilité
- Storage prefix : theses/ → documents/
- Recap admin : sections → fieldsets, fichiers en table
- Extraction de FormBootstrap pour DRY add/edit
- Système de colonnes thesis_status (two-phase commit lifecycle)
- Draft autosave avec persistence session (HTMX POST/GET fragments)
- Guard no-JS file uploads (filepond_mode désactivé par défaut)
- Accessibilité formulaire : aria-errormessage, aria-invalid, aria-describedby
- Cibles tactiles 44×44px minimum (WCAG 2.5.5)
- Nettoyage périodique des brouillons orphelins (cron)
- Durée TFE : colonnes DB, champs formulaire, affichage XhYm
- Déploiement : split deploy-code/deploy-deps/deploy-migrate
- Intégration Monolog : 4 canaux PSR-3 remplaçant 4 systèmes de log
- Tests PHPUnit : 228 tests, couverture 21,27%
- Remplacement Parsedown → league/commonmark
- Remplacement client HTTP custom → Guzzle
- Remplacement SMTP socket → PHPMailer
- Composer.json et autoloader
- Refactor architecture CSS : layers (reset → colors → typography → base → components)
- Composants CSS dédiés par fichier (links, focus, forms, tables, dialog, etc.)
- SVG icons inline via helper PHP (icon()) — plus de <img> pour icônes
- Style global : liens regular, body light, hover violet, police BBB DM Sans
- Page TFE : layout auteur > titre > meta + synopsis 2-col > fichiers flex
- Répertoire : colonnes triées (match first), scrollbars discrètes, pas de chip bar mobile
- Accordéon mobile pour les filtres du répertoire
- Détails/summary TOC pour pages statiques (responsive)
- Contenus-edit : auto-save, toolbar OverType, liens sidebar dynamiques
- Gestion des contacts admin (grille 3 colonnes, suppression, réindexation)
- Corrections d'identifiants (year-prefix mismatch), migrations PHP
- Fix contact_interne / contact_visible (découplage complet)
- Author name casing (COLLATE NOCASE, idHint lookup)
- Finalité master affichée sur la page publique TFE
- Suppression vidéos PeerTube lors de la suppression d'un TFE
- Nettoyage logs, gitignore vendor/, icône de recherche
- Build pipeline : biome + rolldown + lightningcss (bundling/minification)
- Dev-watch avec chokidar-cli (reconstruction live)
- Gzip activé dans nginx + ~730 lignes de JS inline → 15 fichiers externes
- Scroll-position memory sur les swaps HTMX du répertoire
- Correctifs sécu (open redirect, CSRF partage, gate session, verifyCsrf)
- Biome lint fixes (duplicate CSS, arrow functions)
## Juin 2026 (82 commits)
- Migration icônes <img> → SVG inline (26 templates, helper icon())
- Cleanup dialog : suppression doublons, hx-confirm sur delete
- Refonte pages statiques (layout partagé, TOC sticky)
- PHP upload limits → 8GB pour vidéos
- Debug leftover crash HTMX FormData(fieldset)
- Type hint adminOld corrigé (string → string|array)
- Index SQLite pour requêtes langues/tags
- Accordéon mobile répertoire : toggle, chevron, badge actif
- Remplacement sticky nav par details/summary TOC responsive
- Icône recherche corrigée
- Scroll colonnes répertoire + admin TOC duplication
- Filtres répertoire : tri matched-first, mot-clés en haut
- Suppression chip bar mobile
- Accordéon re-init après HTMX swap (bug DOM détaché)
- Gzip + extraction JS inline
- Build pipeline CSS/JS
- Dev-watch
- Transition scroll + swap fluide sur répertoire
- Correctifs sécu (csrf partage, open redirect, verifyCsrf)
- TODO et tasks de sécu complétés