Commit Graph
53 Commits
Author SHA1 Message Date
williamandClaude Sonnet 5 597d99a8de Corrige le bandeau d'outils invisible et force l'editeur en pleine largeur
Build and deploy / test-python (push) Successful in 6m33s
Build and deploy / test-js (push) Successful in 51s
Build and deploy / lint-python (push) Failing after 4m13s
Build and deploy / lint-js (push) Failing after 1m10s
Build and deploy / build-and-push (push) Skipped
Build and deploy / deploy (push) Skipped
Build and deploy / sonarqube (push) Failing after 1m5s
Bug reel (retour utilisateur direct, capture d'ecran a l'appui) :
.docEditor3 utilisait position:fixed; inset:0 pour occuper tout
l'ecran, mais son ancetre main.content a overflow:hidden (voir
body.objectEditBody dans static/style.css) — qui ROGNE VISUELLEMENT
tout descendant position:fixed a sa propre boite, laquelle commence
sous la barre de navigation du site, pas au vrai sommet du viewport.
Le bandeau d'outils (56px) tombait entierement dans la zone rognee,
invisible, pendant que le reste de l'editeur semblait juste decale
vers le haut a sa place. Corrige en respectant le pattern deja etabli
par les autres editeurs (body.objectEditBody + main.content en
flex:1 1 auto) plutot qu'un overlay fixed — .docEditor3 est desormais
un simple enfant flex qui remplit main.content. Meme correction pour
le tiroir mobile des barres laterales (position:absolute relatif a
.docBodyWrap plutot que position:fixed relatif au viewport).

Ajoute aussi une regle pour que l'editeur occupe toute la largeur de
la fenetre bord a bord (demande explicite) : .content/.content-wide
imposent normalement 760px/1600px avec padding fixe.

SKIP=djlint : meme backlog H021 pre-existant que les commits
precedents (document_edit.html verifie clean individuellement).
ruff/mypy --strict/vulture/bandit/import-linter/eslint/stylelint
tous verts ; 24 tests du support de formation verifies apres coup
(changement CSS/Jinja pur, aucune logique serveur touchee) ; verifie
en live que le serveur sert bien le CSS corrige.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-20 10:37:29 +02:00
williamandClaude Sonnet 5 7ca03380b7 Retire l'action Publier du support de formation
Build and deploy / test-python (push) Successful in 6m57s
Build and deploy / test-js (push) Successful in 50s
Build and deploy / lint-python (push) Successful in 4m14s
Build and deploy / lint-js (push) Failing after 1m12s
Build and deploy / build-and-push (push) Skipped
Build and deploy / deploy (push) Skipped
Build and deploy / sonarqube (push) Failing after 3m48s
Un apprenant n'a jamais acces a l'editeur : un etat "publie" persiste
en base (published_at) ne servait donc a rien tant qu'aucune vue
apprenant/export ne le consomme (retour utilisateur direct). Retrait
complet : route /document/<slug>/publish, db.mark_support_published,
la colonne logique published_at dans support_meta, le bouton et son
CSS/JS. "Aperçu" devient l'action primaire du bandeau (repond au vrai
besoin : voir le rendu avant un futur export). Un export reel (SCORM
ou equivalent) reste a specifier separement le jour venu.

SKIP=djlint : meme backlog H021 pre-existant que le commit precedent,
aucun fichier touche ici n'y figure. ruff/mypy --strict/vulture/
bandit/import-linter/eslint/stylelint tous verts ; 615 tests Python
(617 - 2 tests du Publier retire) + verification manuelle live du
retrait (route 404, bouton absent du HTML, Apercu confirme
fonctionnel par simulation DOM).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-20 09:58:53 +02:00
williamandClaude Sonnet 5 bab581737a Ajoute le support de formation : entite racine separee du jeu 2D
Build and deploy / test-python (push) Successful in 11m2s
Build and deploy / test-js (push) Successful in 1m2s
Build and deploy / lint-python (push) Successful in 4m6s
Build and deploy / lint-js (push) Failing after 1m21s
Build and deploy / build-and-push (push) Skipped
Build and deploy / deploy (push) Skipped
Build and deploy / sonarqube (push) Failing after 4m2s
Nouveau moteur document_engine/ (elements CRUD + rendering + labels),
db/supports/ (stockage independant de db/games), routes/document/
(CRUD AJAX + publication), et l'editeur frontend complet
(templates/document/, static/document/) avec moteur de layout reel
(glisser-deposer -> fusion en rangee ou insertion avant/apres), vrai
Undo/Redo par pile de commandes, grille d'accroche pour les formes
libres, apercu responsive a largeurs fixes, mode Apercu, et publication
persistee.

"Mes formations" (templates/index.html) liste desormais les
environnements 2D et les supports de formation cote a cote ;
l'onboarding et core/auth_guard.py sont generalises pour qu'un compte
restreint puisse posseder un projet de chaque type independamment.

SKIP=djlint : le hook ne signale que le backlog H021 (styles en ligne)
deja documente dans CODE_QUALITY.md sur des fichiers pre-existants non
touches ici (base.html, game/play.html, scene_edit.html,
game_dashboard_simple.html, clause_row.html) plus une ligne de
index.html deja presente avant cette session — aucun nouveau fichier
(document_edit.html compris) n'y figure. Tous les autres outils
(ruff, mypy --strict, vulture, bandit, import-linter, eslint,
stylelint) passent sans erreur ; 617 tests Python + 276 tests JS
verts, plus une verification manuelle complete du cycle de vie via le
serveur de developpement.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-20 09:20:33 +02:00