diff --git a/exercices/Exo_BioCID.html b/exercices/Exo_BioCID.html index 99d8dd2..bf4fba8 100644 --- a/exercices/Exo_BioCID.html +++ b/exercices/Exo_BioCID.html @@ -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 @@ 🎯
4 exercices vous attendent : recherche par nom, par type, par substance active, puis un cas de synthèse. Durée totale ≈ 30 min.
+
+
👥 Identification du groupe
+
+ + + +
+
@@ -550,9 +592,10 @@
- biocid-anses.fr ↗ + ✔ Corriger un rendu
+ biocid-anses.fr ↗
@@ -664,7 +707,16 @@ function escapeHtml(str) { return str.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() { `
${escapeHtml(r.question)}

${escapeHtml(r.reponse) || '(sans réponse)'}

` ).join(''); w.document.write(` - Exercices BioCID — Réponses + Exercices BioCID — Réponses (${escapeHtml(groupe) || 'sans nom'}) -

Exercices Pratiques BioCID

${lignes}`); + +

Exercices Pratiques BioCID

+

Groupe / Stagiaire : ${escapeHtml(groupe) || '—'}

+

Date de session : ${escapeHtml(date)}

+

Formateur : ${escapeHtml(formateur) || '—'}

+

Réponses aux exercices

+ ${lignes} + `); w.document.close(); setTimeout(() => w.print(), 300); } diff --git a/exercices/Exo_FDS.html b/exercices/Exo_FDS.html index fbb851d..3ab178d 100644 --- a/exercices/Exo_FDS.html +++ b/exercices/Exo_FDS.html @@ -336,6 +336,40 @@ select:focus { outline: none; border-color: var(--amber); box-shadow: 0 0 0 3px .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; } @@ -413,6 +447,14 @@ select:focus { outline: none; border-color: var(--amber); box-shadow: 0 0 0 3px ⏱️
Durée ≈ 30 min. Pour chaque question, sélectionnez la zone du document où trouver l'information, puis vérifiez votre score.
+
+
👥 Identification du groupe
+
+ + + +
+
@@ -523,7 +565,11 @@ select:focus { outline: none; border-color: var(--amber); box-shadow: 0 0 0 3px
  • Les trois documents sont complémentaires, jamais redondants — chacun cible un besoin et un public différents.
  • - + + ✔ Corriger un rendu +
    +
    + Retour aux exercices
    @@ -700,6 +746,82 @@ function verifyEtiquette() { showScore(document.getElementById('etiquette-result'), correct, etiquetteQuestions.length); } +/* ======================== EXPORT PDF ======================== */ +function escapeHtml(str) { + if (!str) return ''; + return String(str).replace(/&/g, '&').replace(//g, '>'); +} +function idVal(id) { + const el = document.getElementById(id); + return el ? el.value.trim() : ''; +} + +// Libellé lisible d'une réponse FDS (numéro de rubrique) et de l'attendu +function fdsAnswerLabel(v) { + if (!v) return '(non répondu)'; + if (v === 'absent') return 'Absent'; + return 'Rubrique ' + v; +} +function fdsExpectedLabel(answer) { + const parts = answer.split(','); + if (parts.length > 1) return 'Rubrique ' + parts.join(' ou '); + return parts[0] === 'absent' ? 'Absent' : 'Rubrique ' + parts[0]; +} +function textAnswerLabel(v) { + if (!v) return '(non répondu)'; + return v === 'absent' ? 'Absent' : v; +} + +function isFdsCorrect(q, v) { return v !== '' && q.answer.split(',').includes(v); } +function isTextCorrect(q, v) { return v !== '' && v === q.answer; } + +function exporterPDF() { + const groupe = idVal('idGroupe'); + const date = idVal('idDate') || new Date().toISOString().slice(0, 10); + const formateur = idVal('idFormateur'); + + let scoreTotal = 0, nbTotal = 0; + + function partHtml(prefix, title, questions, selPrefix, answerLabelFn, expectedLabelFn, correctFn) { + const rows = questions.map((q, i) => { + const sel = document.getElementById(selPrefix + q.id); + const v = sel ? sel.value : ''; + const ok = correctFn(q, v); + nbTotal++; if (ok) scoreTotal++; + const mark = v === '' ? '❓' : (ok ? '✓' : '✗'); + return `
    +
    [${prefix}-Q${i + 1}] ${escapeHtml(q.text)}
    +
    Réponse du groupe : ${escapeHtml(answerLabelFn(v))} — Attendu : ${escapeHtml(expectedLabelFn(q.answer))} — ${mark}
    +
    `; + }).join(''); + return `

    ${title}

    ${rows}`; + } + + const p1 = partHtml('P1', 'Partie 1 — FDS (Fiche de Données de Sécurité)', fdsQuestions, 'fds', fdsAnswerLabel, fdsExpectedLabel, isFdsCorrect); + const p2 = partHtml('P2', 'Partie 2 — FT (Fiche Technique)', ftQuestions, 'ft', textAnswerLabel, a => a, isTextCorrect); + const p3 = partHtml('P3', 'Partie 3 — Étiquette', etiquetteQuestions, 'eti', textAnswerLabel, a => a, isTextCorrect); + + const w = window.open('', '_blank'); + w.document.write(` + FDS, FT & Étiquettes — Réponses (${escapeHtml(groupe) || 'sans nom'}) + + +

    TD — FDS, FT & Étiquettes

    +

    Groupe / Stagiaire : ${escapeHtml(groupe) || '—'}

    +

    Date de session : ${escapeHtml(date)}

    +

    Formateur : ${escapeHtml(formateur) || '—'}

    +

    Score global : ${scoreTotal} / ${nbTotal}

    + ${p1}${p2}${p3} + `); + w.document.close(); + setTimeout(() => w.print(), 300); +} + /* ======================== NAVIGATION ======================== */ function goTo(n) { const cur = document.getElementById('slide-' + currentSlide); diff --git a/exercices/correction-biocid.html b/exercices/correction-biocid.html new file mode 100644 index 0000000..a7784af --- /dev/null +++ b/exercices/correction-biocid.html @@ -0,0 +1,507 @@ + + + + + +Correction BioCID — Certibiocide + + + + + +
    + + +
    + +
    + +
    Certibiocide — Correction d'exercice
    +

    Plateforme BioCID — Lecture du rendu

    + +
    +
    📄
    +

    Déposez le PDF du groupe ici

    +

    ou cliquez pour sélectionner le fichier exporté depuis l'exercice BioCID

    + +
    +
    + +
    +
    + + +
    + +
    +
    + questions renseignées +
    + + +
    +
    + + + + + + + diff --git a/exercices/correction-fds.html b/exercices/correction-fds.html new file mode 100644 index 0000000..6003004 --- /dev/null +++ b/exercices/correction-fds.html @@ -0,0 +1,604 @@ + + + + + +Correction FDS, FT & Étiquettes — Certibiocide + + + + + +
    + + +
    + +
    + +
    Certibiocide — Correction de TD
    +

    FDS, FT & Étiquettes — Correction du rendu

    + +
    +
    📄
    +

    Déposez le PDF du groupe ici

    +

    ou cliquez pour sélectionner le fichier exporté depuis le TD FDS, FT & Étiquettes

    + +
    +
    + +
    +
    + + +
    + +
    + + +
    +
    + + + + + + +