Ajoute la correction sur fichier aux exercices BioCID et FDS
Reprend le fonctionnement du TP Nuisibles (« Corriger » à partir du PDF généré avec les réponses du groupe) pour les deux exercices. - BioCID et FDS : carte « Identification du groupe » (groupe, date, formateur) sur l'écran d'intro, reprise dans l'en-tête du PDF exporté. - FDS : ajout d'un export PDF (inexistant) récapitulant réponse du groupe et réponse attendue, partie par partie, avec le score global. - Bouton « Corriger un rendu » sur l'écran final des deux exercices. - Nouvelle page correction-biocid.html : lecture du PDF, réponses regroupées par exercice avec badge renseigné / sans réponse. - Nouvelle page correction-fds.html : notation automatique du QCM (anneau de réussite, score par partie, ✓/✗/? par question).
This commit is contained in:
@@ -350,6 +350,40 @@
|
||||
.scroll-area::-webkit-scrollbar { width: 4px; }
|
||||
.scroll-area::-webkit-scrollbar-thumb { background: var(--border); border-radius: 2px; }
|
||||
|
||||
/* IDENTITY CARD */
|
||||
.identity-card {
|
||||
background: white;
|
||||
border: 0.5px solid var(--border);
|
||||
border-radius: 14px;
|
||||
padding: 16px 18px;
|
||||
max-width: 560px;
|
||||
width: 100%;
|
||||
margin: 0.5rem 0;
|
||||
}
|
||||
.identity-card .identity-title {
|
||||
font-family: 'Syne', sans-serif;
|
||||
font-size: 12px;
|
||||
font-weight: 700;
|
||||
letter-spacing: 0.05em;
|
||||
text-transform: uppercase;
|
||||
color: var(--amber-dark);
|
||||
margin-bottom: 10px;
|
||||
display: flex; align-items: center; gap: 6px;
|
||||
}
|
||||
.identity-fields { display: flex; flex-direction: column; gap: 8px; }
|
||||
.identity-fields input {
|
||||
font-family: 'DM Sans', sans-serif;
|
||||
font-size: 13.5px;
|
||||
color: var(--text);
|
||||
background: var(--bg);
|
||||
border: 1px solid var(--border);
|
||||
border-radius: 10px;
|
||||
padding: 9px 13px;
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.identity-fields input:focus { outline: none; border-color: var(--amber); background: white; }
|
||||
|
||||
/* DECO */
|
||||
.deco-circle { position: fixed; border-radius: 50%; pointer-events: none; z-index: 0; }
|
||||
.slide > * { position: relative; z-index: 1; }
|
||||
@@ -426,6 +460,14 @@
|
||||
<span>🎯</span>
|
||||
<div>4 exercices vous attendent : recherche par <strong>nom</strong>, par <strong>type</strong>, par <strong>substance active</strong>, puis un <strong>cas de synthèse</strong>. Durée totale ≈ 30 min.</div>
|
||||
</div>
|
||||
<div class="identity-card">
|
||||
<div class="identity-title">👥 Identification du groupe</div>
|
||||
<div class="identity-fields">
|
||||
<input type="text" id="idGroupe" placeholder="Nom du groupe / stagiaires (ex : Groupe 3 — Dupont / Martin)" autocomplete="off">
|
||||
<input type="date" id="idDate">
|
||||
<input type="text" id="idFormateur" placeholder="Formateur (facultatif)" autocomplete="off">
|
||||
</div>
|
||||
</div>
|
||||
<button class="btn btn-amber" onclick="goTo(2)" style="margin-top:1.5rem;">Commencer l'exercice 1 →</button>
|
||||
</div>
|
||||
|
||||
@@ -550,9 +592,10 @@
|
||||
</ul>
|
||||
<div class="actions-row">
|
||||
<button class="btn btn-amber" onclick="exporterPDF()">⬇ Télécharger mes réponses (PDF)</button>
|
||||
<a href="https://biocid-anses.fr/biocid" target="_blank" class="btn btn-outline">biocid-anses.fr ↗</a>
|
||||
<a href="correction-biocid.html" class="btn btn-outline">✔ Corriger un rendu</a>
|
||||
</div>
|
||||
<div class="actions-row" style="margin-top:0.5rem;">
|
||||
<a href="https://biocid-anses.fr/biocid" target="_blank" class="btn btn-outline">biocid-anses.fr ↗</a>
|
||||
<button class="btn btn-outline" onclick="restartAll()">↺ Recommencer</button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -664,7 +707,16 @@ function escapeHtml(str) {
|
||||
return str.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
|
||||
}
|
||||
|
||||
function idVal(id) {
|
||||
const el = document.getElementById(id);
|
||||
return el ? el.value.trim() : '';
|
||||
}
|
||||
|
||||
function exporterPDF() {
|
||||
const groupe = idVal('idGroupe');
|
||||
const date = idVal('idDate') || new Date().toISOString().slice(0, 10);
|
||||
const formateur = idVal('idFormateur');
|
||||
|
||||
const reponses = [];
|
||||
document.querySelectorAll('.answer-field').forEach(el => {
|
||||
reponses.push({ question: el.dataset.question || '', reponse: el.value.trim() });
|
||||
@@ -674,12 +726,21 @@ function exporterPDF() {
|
||||
`<div style="margin-bottom:14px;"><strong>${escapeHtml(r.question)}</strong><p style="margin:4px 0 0;white-space:pre-wrap;">${escapeHtml(r.reponse) || '<em>(sans réponse)</em>'}</p></div>`
|
||||
).join('');
|
||||
w.document.write(`
|
||||
<html><head><meta charset="utf-8"><title>Exercices BioCID — Réponses</title>
|
||||
<html><head><meta charset="utf-8"><title>Exercices BioCID — Réponses (${escapeHtml(groupe) || 'sans nom'})</title>
|
||||
<style>
|
||||
body { font-family: Arial, sans-serif; padding: 30px; color: #1a1a18; }
|
||||
h1 { font-size: 20px; border-bottom: 2px solid #BA7517; padding-bottom: 8px; }
|
||||
.meta { font-size: 13px; color: #555; margin: 2px 0; }
|
||||
h2 { font-size: 15px; margin-top: 24px; color: #633806; }
|
||||
</style></head>
|
||||
<body><h1>Exercices Pratiques BioCID</h1>${lignes}</body></html>`);
|
||||
<body>
|
||||
<h1>Exercices Pratiques BioCID</h1>
|
||||
<p class="meta"><strong>Groupe / Stagiaire :</strong> ${escapeHtml(groupe) || '—'}</p>
|
||||
<p class="meta"><strong>Date de session :</strong> ${escapeHtml(date)}</p>
|
||||
<p class="meta"><strong>Formateur :</strong> ${escapeHtml(formateur) || '—'}</p>
|
||||
<h2>Réponses aux exercices</h2>
|
||||
${lignes}
|
||||
</body></html>`);
|
||||
w.document.close();
|
||||
setTimeout(() => w.print(), 300);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user