fix(front,db,ci): déploiement web, API même origine, Flutter 3.29, schéma validations

Frontend (prod web):
- Image builder Flutter 3.29.3 (Dockerfile + workflow CI alignés)
- web/index.html: bootstrap Flutter 3.29 (flutter_bootstrap.js), scripts pdf.js conservés
- Dockerfile: rm html avant COPY pour éviter l’index « Welcome to nginx »
- nginx: server_name _ pour Traefik
- env: sur le web, API = Uri.base.origin si pas de API_BASE_URL (évite mixed content http/https)
- auth: message d’erreur réseau avec type/détail si non-Exception
- CGU/PDF: commentaire sans mention Flutter 3.19 obsolète
- pubspec.lock: résolution dépendances Flutter 3.29

Base de données & doc:
- BDD.sql: validations.commentaire, valide_par, FK ON DELETE SET NULL + commentaire
- patch 2026-04-17: valide_par avec ON DELETE SET NULL
- patch 2026-04-18: FK validations en SET NULL sur bases existantes
- seed: statut validation « valide » (enum)
- FK_POLICIES.md: valide_par
- doc workflow: Flutter 3.29.3

Made-with: Cursor
This commit is contained in:
2026-04-22 18:48:17 +02:00
parent fc86181a73
commit 2c746ceff3
15 changed files with 110 additions and 96 deletions
+4 -28
View File
@@ -32,21 +32,9 @@
<title>P'titsPas</title>
<link rel="manifest" href="manifest.json">
<!-- Suppression des dépendances image_cropper web -->
<!--
<script src="https://cdnjs.cloudflare.com/ajax/libs/cropperjs/1.5.12/cropper.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/cropperjs/1.5.12/cropper.min.css">
-->
<script>
// The value below is injected by flutter build, do not touch.
const serviceWorkerVersion = "{{flutter_service_worker_version}}";
</script>
<!-- This script adds the flutter initialization JS code -->
<script src="flutter.js" defer></script>
</head>
<body>
<!-- pdf.js (pdfx) — chargé avant le moteur Flutter -->
<script src='https://cdn.jsdelivr.net/npm/pdfjs-dist@4.6.82/build/pdf.min.mjs' type='module'></script>
<script type='module'>
var { pdfjsLib } = globalThis;
@@ -57,20 +45,8 @@
cMapPacked: true,
}
</script>
<script>
window.addEventListener('load', function(ev) {
// Download main.dart.js
_flutter.loader.loadEntrypoint({
serviceWorker: {
serviceWorkerVersion: serviceWorkerVersion,
},
onEntrypointLoaded: function(engineInitializer) {
engineInitializer.initializeEngine().then(function(appRunner) {
appRunner.runApp();
});
}
});
});
</script>
<!-- Flutter 3.29+ : le build génère flutter_bootstrap.js ; index.html doit le référencer
(voir https://docs.flutter.dev/platform-integration/web/initialization) -->
<script src="flutter_bootstrap.js" async></script>
</body>
</html>