V7.10 — Tableau de bord, guide, semaine type et enveloppe de formation
Reprise dans le répertoire de production du travail mené dans le worktree ux-service-enfance : - tableau de bord Service Enfance (dashboard.php) et navigation regroupée ; - guide d'utilisation (faq.php) accessible depuis toute la navigation ; - éditeur de semaine type mis en avant sur l'écran de saisie ; - droit à l'enveloppe de formation par agent, en remplacement de la case « formation déjà prévue dans la répartition annuelle » ; - correctif de « [object Object] » sur les cartes de quota du PTA ; - motif de travail par défaut à la saisie, heures travaillées complètes dans les PDF. Le docker-compose.yml de production est conservé : celui du worktree décrit une pile de test (conteneurs et volume suffixés « test », ports 9080/9081), qui aurait fait redémarrer l'application sur un volume MariaDB vide. Les migrations database/migration_v7_9*.sql sont obligatoires ; le service db-migrate les applique au déploiement. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -254,6 +254,28 @@
|
||||
setMessage(message);
|
||||
}
|
||||
|
||||
/**
|
||||
* Le sélecteur de motif est rendu côté serveur avec tous les motifs actifs :
|
||||
* on le reconstruit à l'ouverture pour retirer « Formation » aux agents sans
|
||||
* droit à l'enveloppe de formation. Le motif déjà porté par le créneau reste
|
||||
* proposé, sans quoi le modal changerait silencieusement de motif.
|
||||
*/
|
||||
function renderMotifOptions(selectedMotifId) {
|
||||
const select = document.querySelector('#edit-agent-entry-motif');
|
||||
const motifs = window.PTA_CONFIG?.motifs || [];
|
||||
if (!select || motifs.length === 0) return;
|
||||
|
||||
const agent = shared.lastAgentOverviewData?.agent;
|
||||
const hasTrainingRight = Number(agent?.droit_enveloppe_formation ?? 1) !== 0;
|
||||
|
||||
select.innerHTML = motifs
|
||||
.filter((motif) => hasTrainingRight
|
||||
|| String(motif.code).toUpperCase() !== 'FORMATION'
|
||||
|| Number(motif.id) === Number(selectedMotifId))
|
||||
.map((motif) => `<option value="${Number(motif.id)}">${escapeHtml(motif.label)}</option>`)
|
||||
.join('');
|
||||
}
|
||||
|
||||
function openModal(entryId) {
|
||||
const entry = findEntry(entryId);
|
||||
if (!entry || !canEditEntry(entry)) return;
|
||||
@@ -263,6 +285,7 @@
|
||||
document.querySelector('#edit-agent-entry-id').value = String(Number(entry.id_creneau));
|
||||
document.querySelector('#edit-agent-entry-date').value = entry.date_jour;
|
||||
document.querySelector('#edit-agent-entry-structure').value = String(Number(entry.id_structure));
|
||||
renderMotifOptions(Number(entry.id_motif));
|
||||
document.querySelector('#edit-agent-entry-motif').value = String(Number(entry.id_motif));
|
||||
document.querySelector('#edit-agent-entry-start').value = entry.heure_debut;
|
||||
document.querySelector('#edit-agent-entry-end').value = entry.heure_fin;
|
||||
|
||||
Reference in New Issue
Block a user