Démarrage de la pile par un simple docker compose up
La pile de test de la branche ne démarrait pas : « Connexion à la base impossible ». Trois causes cumulées, toutes corrigées. 1. PTA_DB_PORT et DB_PORT étaient passés à 9306. Ces variables désignent le port joint À L'INTÉRIEUR du réseau Docker, où MariaDB écoute sur 3306, et non un port publié sur l'hôte : la connexion était refusée. Elles reviennent à 3306, et le port hôte 9306 est désormais réellement publié par le service db (sur la boucle locale), pour un client SQL externe. 2. Le service db-migrate manquait sur la branche. Le schéma d'initialisation ne contient aucune des tables et vues d'accès V7.8 : sur un volume neuf, l'application refusait de démarrer. db-migrate applique maintenant tous les database/migration_*.sql, dont celle du tableau de bord V7.9 — plus aucune étape SQL manuelle. 3. Le défaut de PTA_DB_PASS (change_me) différait de celui de MARIADB_PASSWORD (pta). Sans fichier .env — et ce répertoire n'en a pas, il est ignoré par git — l'authentification échouait. Les deux défauts sont alignés. Le bandeau du tableau de bord ne prétend plus que « tous les lieux ont des horaires attendus » quand aucun lieu n'est enregistré. Vérifié : volume détruit puis « docker compose up -d --build » seul suffit à obtenir les onze pages en 200, l'atterrissage sur le tableau de bord et les deux migrations appliquées ; un second up les ignore ; la base répond sur 127.0.0.1:9306 ; la pile principale sur 8080 est restée intacte. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -151,9 +151,12 @@
|
||||
`).join('');
|
||||
}
|
||||
|
||||
function renderCoverage(coverage, week) {
|
||||
function renderCoverage(coverage, week, perimetre) {
|
||||
const gapCount = Number(coverage.gap_count || 0);
|
||||
const unconfigured = Number(coverage.unconfigured_count || 0);
|
||||
// Sans aucun lieu enregistré, « tous les minimums sont atteints » serait
|
||||
// vrai mais trompeur : il n'y a simplement rien à contrôler.
|
||||
const sansLieu = Number(perimetre?.structures || 0) === 0;
|
||||
|
||||
setTileTone(elements.coverageTile, gapCount);
|
||||
setTileTone(elements.setupTile, unconfigured);
|
||||
@@ -161,14 +164,14 @@
|
||||
if (elements.coverageCount) elements.coverageCount.textContent = String(gapCount);
|
||||
if (elements.coverageDetail) {
|
||||
elements.coverageDetail.textContent = gapCount === 0
|
||||
? 'Tous les minimums sont atteints'
|
||||
? (sansLieu ? 'Aucun lieu d’affectation enregistré' : 'Tous les minimums sont atteints')
|
||||
: `${formatDuration(Number(coverage.gap_minutes || 0))} non couvertes · `
|
||||
+ `${coverage.structure_count} ${plural(coverage.structure_count, 'lieu concerné', 'lieux concernés')}`;
|
||||
}
|
||||
if (elements.setupCount) elements.setupCount.textContent = String(unconfigured);
|
||||
if (elements.setupDetail) {
|
||||
elements.setupDetail.textContent = unconfigured === 0
|
||||
? 'Tous les lieux ont des horaires attendus'
|
||||
? (sansLieu ? 'Aucun lieu à paramétrer pour l’instant' : 'Tous les lieux ont des horaires attendus')
|
||||
: 'Aucun minimum d’agents n’y est contrôlé';
|
||||
}
|
||||
|
||||
@@ -216,7 +219,9 @@
|
||||
if (elements.quotaCount) elements.quotaCount.textContent = String(overCount);
|
||||
if (elements.quotaDetail) {
|
||||
elements.quotaDetail.textContent = overCount === 0
|
||||
? `Aucun dépassement sur ${quota.annee}`
|
||||
? (Number(quota.agent_count || 0) === 0
|
||||
? 'Aucun agent actif à suivre'
|
||||
: `Aucun dépassement sur ${quota.annee}`)
|
||||
: `Sur ${quota.agent_count} ${plural(quota.agent_count, 'agent suivi', 'agents suivis')} en ${quota.annee}`;
|
||||
}
|
||||
if (elements.quotaTile) {
|
||||
@@ -301,7 +306,7 @@
|
||||
|
||||
renderWeek(data.semaine);
|
||||
renderPending(data.validation || {});
|
||||
renderCoverage(data.couverture || {}, data.semaine);
|
||||
renderCoverage(data.couverture || {}, data.semaine, data.perimetre);
|
||||
renderQuota(data.quota || {});
|
||||
} catch (error) {
|
||||
setMessage(error.message, 'error');
|
||||
|
||||
Reference in New Issue
Block a user