Valentin Moguérou
10 months ago
4 changed files with 800 additions and 0 deletions
@ -0,0 +1,243 @@ |
|||
function update() { |
|||
/* ------------- Contrôle continu ------------- */ |
|||
|
|||
let total_CC = 0; |
|||
|
|||
// EMC
|
|||
let note_emc_1re = document.getElementById("note-emc-1re").value; |
|||
let points_emc_1re = 1 * note_emc_1re |
|||
document.getElementById("points-emc-1re").innerHTML = points_emc_1re.toLocaleString("fr"); |
|||
total_CC += points_emc_1re; |
|||
|
|||
let note_emc_tle = document.getElementById("note-emc-tle").value; |
|||
let points_emc_tle = 1 * note_emc_tle |
|||
document.getElementById("points-emc-tle").innerHTML = points_emc_tle.toLocaleString("fr"); |
|||
total_CC += points_emc_tle; |
|||
|
|||
// LVB
|
|||
let note_lvb_1re = document.getElementById("note-lvb-1re").value; |
|||
let points_lvb_1re = 3 * note_lvb_1re |
|||
document.getElementById("points-lvb-1re").innerHTML = points_lvb_1re.toLocaleString("fr"); |
|||
total_CC += points_lvb_1re; |
|||
|
|||
let note_lvb_tle = document.getElementById("note-lvb-tle").value; |
|||
let points_lvb_tle = 3 * note_lvb_tle |
|||
document.getElementById("points-lvb-tle").innerHTML = points_lvb_tle.toLocaleString("fr"); |
|||
total_CC += points_lvb_tle; |
|||
|
|||
// ES
|
|||
let note_es_1re = document.getElementById("note-es-1re").value; |
|||
let points_es_1re = 3 * note_es_1re |
|||
document.getElementById("points-es-1re").innerHTML = points_es_1re.toLocaleString("fr"); |
|||
total_CC += points_es_1re; |
|||
|
|||
let note_es_tle = document.getElementById("note-es-tle").value; |
|||
let points_es_tle = 3 * note_es_tle |
|||
document.getElementById("points-es-tle").innerHTML = points_es_tle.toLocaleString("fr"); |
|||
total_CC += points_es_tle; |
|||
|
|||
// EPS
|
|||
let note_eps_tle = document.getElementById("note-eps-tle").value; |
|||
let points_eps_tle = 6 * note_eps_tle |
|||
document.getElementById("points-eps-tle").innerHTML = points_eps_tle.toLocaleString("fr"); |
|||
total_CC += points_eps_tle; |
|||
|
|||
// Spé 3
|
|||
let note_spe3_1re = document.getElementById("note-spe3-1re").value; |
|||
let points_spe3_1re = 8 * note_spe3_1re |
|||
document.getElementById("points-spe3-1re").innerHTML = points_spe3_1re.toLocaleString("fr"); |
|||
total_CC += points_spe3_1re; |
|||
|
|||
|
|||
document.getElementById("total-points-CC").innerHTML = total_CC.toLocaleString("fr") |
|||
|
|||
|
|||
/* ------------- Épreuves terminales ------------- */ |
|||
|
|||
let total_terminal = 0; |
|||
|
|||
// Français écrit
|
|||
let note_fr_ecrit = document.getElementById("note-fr-ecrit").value; |
|||
let points_fr_ecrit = 5 * note_fr_ecrit |
|||
document.getElementById("points-fr-ecrit").innerHTML = points_fr_ecrit.toLocaleString("fr"); |
|||
total_terminal += points_fr_ecrit; |
|||
|
|||
// Français oral
|
|||
let note_fr_oral = document.getElementById("note-fr-oral").value; |
|||
let points_fr_oral = 5 * note_fr_oral |
|||
document.getElementById("points-fr-oral").innerHTML = points_fr_oral.toLocaleString("fr"); |
|||
total_terminal += points_fr_oral; |
|||
|
|||
// Philosophie
|
|||
let note_philo = document.getElementById("note-philo").value; |
|||
let points_philo = 8 * note_philo |
|||
document.getElementById("points-philo").innerHTML = points_philo.toLocaleString("fr"); |
|||
total_terminal += points_philo; |
|||
|
|||
// Grand oral
|
|||
let note_go = document.getElementById("note-go").value; |
|||
let points_go = 10 * note_go |
|||
document.getElementById("points-go").innerHTML = points_go.toLocaleString("fr"); |
|||
total_terminal += points_go; |
|||
|
|||
// Spé 1
|
|||
let note_spe1 = document.getElementById("note-spe1").value; |
|||
let points_spe1 = 16 * note_spe1 |
|||
document.getElementById("points-spe1").innerHTML = points_spe1.toLocaleString("fr"); |
|||
total_terminal += points_spe1; |
|||
|
|||
// Spé 2
|
|||
let note_spe2 = document.getElementById("note-spe2").value; |
|||
let points_spe2 = 16 * note_spe2 |
|||
document.getElementById("points-spe2").innerHTML = points_spe2.toLocaleString("fr"); |
|||
total_terminal += points_spe2; |
|||
|
|||
|
|||
document.getElementById("total-points-terminal").innerHTML = total_terminal.toLocaleString("fr") |
|||
|
|||
|
|||
/* ------------- Épreuves spécifiques ------------- */ |
|||
|
|||
let total_specifique = 0; |
|||
|
|||
// ACL écrit
|
|||
let note_acl_ecrit = document.getElementById("note-acl-ecrit").value; |
|||
let points_acl_ecrit = 10 * note_acl_ecrit |
|||
document.getElementById("points-acl-ecrit").innerHTML = points_acl_ecrit.toLocaleString("fr"); |
|||
total_specifique += points_acl_ecrit; |
|||
|
|||
// ACL oral
|
|||
let note_acl_oral = document.getElementById("note-acl-oral").value; |
|||
let points_acl_oral = 10 * note_acl_oral |
|||
document.getElementById("points-acl-oral").innerHTML = points_acl_oral.toLocaleString("fr"); |
|||
total_specifique += points_acl_oral; |
|||
|
|||
// HG écrit
|
|||
let note_hg_ecrit = document.getElementById("note-hg-ecrit").value; |
|||
let points_hg_ecrit = 10 * note_hg_ecrit |
|||
document.getElementById("points-hg-ecrit").innerHTML = points_hg_ecrit.toLocaleString("fr"); |
|||
total_specifique += points_hg_ecrit; |
|||
|
|||
// HG oral
|
|||
let note_hg_oral = document.getElementById("note-hg-oral").value; |
|||
let points_hg_oral = 10 * note_hg_oral |
|||
document.getElementById("points-hg-oral").innerHTML = points_hg_oral.toLocaleString("fr"); |
|||
total_specifique += points_hg_oral; |
|||
|
|||
// CDM
|
|||
let note_cdm = document.getElementById("note-cdm").value; |
|||
let points_cdm = 20 * note_cdm |
|||
document.getElementById("points-cdm").innerHTML = points_cdm.toLocaleString("fr"); |
|||
total_specifique += points_cdm; |
|||
|
|||
document.getElementById("total-points-specifique").innerHTML = total_specifique.toLocaleString("fr") |
|||
|
|||
|
|||
/* ------------- Options ------------- */ |
|||
|
|||
let total_options = 0; |
|||
let coef_options = 0; |
|||
|
|||
if (document.getElementById("check-lca-1re").checked) { |
|||
document.getElementById("coef-lca-1re").innerHTML = "2"; |
|||
coef_options += 2; |
|||
let points_lca_1re = 2*document.getElementById("note-lca-1re").value; |
|||
total_options += points_lca_1re; |
|||
document.getElementById("points-lca-1re").innerHTML = points_lca_1re.toLocaleString("fr"); |
|||
} else { |
|||
document.getElementById("coef-lca-1re").innerHTML = "0"; |
|||
document.getElementById("points-lca-1re").innerHTML = "0"; |
|||
} |
|||
|
|||
if (document.getElementById("check-lca-tle").checked) { |
|||
document.getElementById("coef-lca-tle").innerHTML = "2"; |
|||
coef_options += 2; |
|||
let points_lca_tle = 2*document.getElementById("note-lca-tle").value; |
|||
total_options += points_lca_tle; |
|||
document.getElementById("points-lca-tle").innerHTML = points_lca_tle.toLocaleString("fr"); |
|||
} else { |
|||
document.getElementById("coef-lca-tle").innerHTML = "0"; |
|||
document.getElementById("points-lca-tle").innerHTML = "0"; |
|||
} |
|||
|
|||
if (document.getElementById("check-opt1-1re").checked) { |
|||
document.getElementById("coef-opt1-1re").innerHTML = "2"; |
|||
coef_options += 2; |
|||
let points_opt1_1re = 2*document.getElementById("note-opt1-1re").value; |
|||
total_options += points_opt1_1re; |
|||
document.getElementById("points-opt1-1re").innerHTML = points_opt1_1re.toLocaleString("fr"); |
|||
} else { |
|||
document.getElementById("coef-opt1-1re").innerHTML = "0"; |
|||
document.getElementById("points-opt1-1re").innerHTML = "0"; |
|||
} |
|||
|
|||
if (document.getElementById("check-opt1-tle").checked) { |
|||
document.getElementById("coef-opt1-tle").innerHTML = "2"; |
|||
coef_options += 2; |
|||
let points_opt1_tle = 2*document.getElementById("note-opt1-tle").value; |
|||
total_options += points_opt1_tle; |
|||
document.getElementById("points-opt1-tle").innerHTML = points_opt1_tle.toLocaleString("fr"); |
|||
} else { |
|||
document.getElementById("coef-opt1-tle").innerHTML = "0"; |
|||
document.getElementById("points-opt1-tle").innerHTML = "0"; |
|||
} |
|||
|
|||
if (document.getElementById("check-opt2").checked) { |
|||
document.getElementById("coef-opt2").innerHTML = "2"; |
|||
coef_options += 2; |
|||
let points_opt2 = 2*document.getElementById("note-opt2").value; |
|||
total_options += points_opt2; |
|||
document.getElementById("points-opt2").innerHTML = points_opt2.toLocaleString("fr"); |
|||
} else { |
|||
document.getElementById("coef-opt2").innerHTML = "0"; |
|||
document.getElementById("points-opt2").innerHTML = "0"; |
|||
} |
|||
|
|||
document.getElementById("total-coef-options").innerHTML = coef_options.toLocaleString("fr"); |
|||
document.getElementById("total-points-options").innerHTML = total_options.toLocaleString("fr"); |
|||
|
|||
// CALCUL
|
|||
|
|||
let total_points = total_CC + total_terminal + total_specifique + total_options; |
|||
document.getElementById("total-points").innerHTML = total_points.toLocaleString("fr"); |
|||
let total_coef = 148 + coef_options; |
|||
document.getElementById("total-coef").innerHTML = total_coef.toLocaleString("fr"); |
|||
let note_brute = total_points/total_coef; |
|||
let note_finale = Math.ceil(100*note_brute)/100; |
|||
document.getElementById("note-finale").innerHTML = note_finale.toLocaleString("fr"); |
|||
|
|||
let decision = ""; |
|||
let sup_mention_actuelle = 0; |
|||
if (note_finale < 8) { |
|||
decision = "Ajourné (Recalé)" |
|||
sup_mention_actuelle = 7.99*total_coef |
|||
} else if (note_finale < 10) { |
|||
decision = "Passe le second groupe (Rattrapage)"; |
|||
sup_mention_actuelle = 9.99*total_coef |
|||
} else if (note_finale < 12) { |
|||
decision = "Admis"; |
|||
sup_mention_actuelle = 11.99*total_coef |
|||
} else if (note_finale < 14) { |
|||
decision = "Admis Mention Assez Bien"; |
|||
sup_mention_actuelle = 13.99*total_coef |
|||
} else if (note_finale < 16) { |
|||
decision = "Admis Mention Bien"; |
|||
sup_mention_actuelle = 15.99*total_coef |
|||
} else if (note_finale < 18) { |
|||
decision = "Admis Mention Très Bien"; |
|||
sup_mention_actuelle = 17.99*total_coef |
|||
} else { |
|||
decision = "Admis Mention Très Bien<br>avec les félicitations du jury"; |
|||
sup_mention_actuelle = NaN |
|||
} |
|||
|
|||
if (note_finale < 18) { |
|||
let points_mention_suivante = Math.ceil(10*(sup_mention_actuelle - total_points + .01))/10 |
|||
document.getElementById("points-manquants").innerHTML = points_mention_suivante.toLocaleString("fr"); |
|||
} else { |
|||
document.getElementById("points-manquants").innerHTML = "-"; |
|||
} |
|||
|
|||
|
|||
document.getElementById("decision-jury").innerHTML = decision; |
|||
} |
@ -0,0 +1,431 @@ |
|||
<!DOCTYPE html> |
|||
<html lang="fr"> |
|||
<head> |
|||
<meta charset="UTF-8"> |
|||
<meta name="viewport" |
|||
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> |
|||
<meta http-equiv="X-UA-Compatible" content="ie=edge"> |
|||
<title>Simulateur du BFI</title> |
|||
<link href="style.css" rel="stylesheet" type="text/css"> |
|||
<script src="calcul.js"></script> |
|||
</head> |
|||
<body onload="update()"> |
|||
<header> |
|||
<a href="/">← Retour vers le portail des simulations</a> |
|||
<h1>Simulateur du BFI</h1> |
|||
</header> |
|||
<div class="resultat"> |
|||
<div> |
|||
<span id="total-points"></span> |
|||
<p>Points</p> |
|||
</div> |
|||
<div> |
|||
<span id="total-coef"></span> |
|||
<p>Coefficients</p> |
|||
</div> |
|||
<div> |
|||
<span id="note-finale"></span>/20 |
|||
<p>Note finale</p> |
|||
</div> |
|||
<div> |
|||
<span id="decision-jury"></span> |
|||
<p>Décision</p> |
|||
</div> |
|||
<div> |
|||
<span id="points-manquants"></span> |
|||
<p>Points jusqu'à la<br>décision supérieure</p> |
|||
</div> |
|||
</div> |
|||
<main> |
|||
<div class="info"> |
|||
Information : Si le nombre de points jusqu'à la décision supérieure est faible (c'est-à-dire moins de 10 points environ), |
|||
le jury peut vous les accorder sous réserve que votre livret scolaire soit bon (assiduité, bon comportement). |
|||
</div> |
|||
<div class="info"> |
|||
Information : Pour les notes empruntées au livret scolaire (i.e. moyenne de l'année), |
|||
il faut arrondir la note au dixième à l'excès : par exemple, pour une moyenne annuelle de 16,54, |
|||
il faut arrondir à 16,6. |
|||
</div> |
|||
|
|||
<form onchange="update()" id="calculateur"> |
|||
<fieldset> |
|||
<legend>Contrôle continu</legend> |
|||
|
|||
<table> |
|||
<tr> |
|||
<th rowspan="2">Matière</th> |
|||
<th colspan="3">Première</th> |
|||
<th colspan="3">Terminale</th> |
|||
</tr> |
|||
<tr> |
|||
<th>Coef.</th> |
|||
<th>Note</th> |
|||
<th>Points</th> |
|||
<th>Coef.</th> |
|||
<th>Note</th> |
|||
<th>Points</th> |
|||
</tr> |
|||
<tr> |
|||
<td>Enseignement moral et civique</td> |
|||
<td>1</td> |
|||
<td> |
|||
<label for="note-emc-1re">Note d'EMC de première</label> |
|||
<input type="number" name="note-emc-1re" |
|||
id="note-emc-1re" class="note" min="0" max="20" step=".1" required> |
|||
</td> |
|||
<td> |
|||
<span id="points-emc-1re"></span> |
|||
</td> |
|||
<td>1</td> |
|||
<td> |
|||
<label for="note-emc-tle">Note d'EMC de terminale</label> |
|||
<input type="number" name="note-emc-tle" |
|||
id="note-emc-tle" class="note" min="0" max="20" step=".1" required> |
|||
</td> |
|||
<td> |
|||
<span id="points-emc-tle"></span> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td>Langue vivante B</td> |
|||
<td>3</td> |
|||
<td> |
|||
<label for="note-lvb-1re">Note de LVB de première</label> |
|||
<input type="number" name="note-lvb-1re" |
|||
id="note-lvb-1re" class="note" min="0" max="20" step=".1" required> |
|||
</td> |
|||
<td> |
|||
<span id="points-lvb-1re"></span> |
|||
</td> |
|||
<td>3</td> |
|||
<td> |
|||
<label for="note-lvb-tle">Note de LVB de terminale</label> |
|||
<input type="number" name="note-lvb-tle" |
|||
id="note-lvb-tle" class="note" min="0" max="20" step=".1" required> |
|||
</td> |
|||
<td> |
|||
<span id="points-lvb-tle"></span> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td>Enseignement scientifique</td> |
|||
<td>3</td> |
|||
<td> |
|||
<label for="note-es-1re">Note d'enseignement scientifique de première</label> |
|||
<input type="number" name="note-es-1re" |
|||
id="note-es-1re" class="note" min="0" max="20" step=".1" required> |
|||
</td> |
|||
<td> |
|||
<span id="points-es-1re"></span> |
|||
</td> |
|||
<td>3</td> |
|||
<td> |
|||
<label for="note-es-tle">Note d'enseignement scientifique de terminale</label> |
|||
<input type="number" name="note-es-1re" |
|||
id="note-es-tle" class="note" min="0" max="20" step=".1" required> |
|||
</td> |
|||
<td> |
|||
<span id="points-es-tle"></span> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td>Éducation physique et sportive</td> |
|||
<td colspan="3" class="null"></td> |
|||
<td>6</td> |
|||
<td> |
|||
<label for="note-eps-tle">Note d'EPS</label> |
|||
<input type="number" name="note-eps-tle" |
|||
id="note-eps-tle" class="note" min="0" max="20" step="1" required> |
|||
</td> |
|||
<td> |
|||
<span id="points-eps-tle"></span> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td>Spécialité 3 abandonnée</td> |
|||
<td>8</td> |
|||
<td> |
|||
<label for="note-spe3-1re">Note de spécialité abandonnée en classe de première</label> |
|||
<input type="number" name="note-spe3-1re" |
|||
id="note-spe3-1re" class="note" min="0" max="20" step=".1" required> |
|||
</td> |
|||
<td> |
|||
<span id="points-spe3-1re"></span> |
|||
</td> |
|||
<td colspan="3" class="null"></td> |
|||
</tr> |
|||
<tr class="total"> |
|||
<td>Totaux</td> |
|||
<td colspan="3">Total des coefficients : 28</td> |
|||
<td colspan="3">Total des points : <span id="total-points-CC">0</span></td> |
|||
</tr> |
|||
</table> |
|||
</fieldset> |
|||
<fieldset> |
|||
<legend>Épreuves terminales</legend> |
|||
|
|||
Remarque : Seules ces épreuves peuvent faire l'objet d'un éventuel rattrapage. |
|||
|
|||
<table> |
|||
<tr> |
|||
<th rowspan="2">Matière</th> |
|||
<th rowspan="2">Coef.</th> |
|||
<th colspan="2">1<sup>er</sup> groupe</th> |
|||
</tr> |
|||
<tr> |
|||
<th>Note</th> |
|||
<th>Points</th> |
|||
</tr> |
|||
<tr> |
|||
<td>Français écrit</td> |
|||
<td>5</td> |
|||
<td> |
|||
<label for="note-fr-ecrit">Note de français oral</label> |
|||
<input type="number" name="note-fr-ecrit" |
|||
id="note-fr-ecrit" class="note" min="0" max="20" step="1" required> |
|||
</td> |
|||
<td> |
|||
<span id="points-fr-ecrit"></span> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td>Français oral</td> |
|||
<td>5</td> |
|||
<td> |
|||
<label for="note-fr-oral">Note de français oral</label> |
|||
<input type="number" name="note-fr-oral" |
|||
id="note-fr-oral" class="note" min="0" max="20" step="1" required> |
|||
</td> |
|||
<td> |
|||
<span id="points-fr-oral"></span> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td>Philosophie</td> |
|||
<td>8</td> |
|||
<td> |
|||
<label for="note-philo">Note de philosophie</label> |
|||
<input type="number" name="note-philo" |
|||
id="note-philo" class="note" min="0" max="20" step="1" required> |
|||
</td> |
|||
<td> |
|||
<span id="points-philo"></span> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td>Épreuve orale terminale (Grand oral)</td> |
|||
<td>10</td> |
|||
<td> |
|||
<label for="note-go">Note du Grand Oral</label> |
|||
<input type="number" name="note-go" |
|||
id="note-go" class="note" min="0" max="20" step="1" required> |
|||
</td> |
|||
<td> |
|||
<span id="points-go"></span> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td>Spécialité 1</td> |
|||
<td>16</td> |
|||
<td> |
|||
<label for="note-spe1">Note de français oral</label> |
|||
<input type="number" name="note-spe1" |
|||
id="note-spe1" class="note" min="0" max="20" step="1" required> |
|||
</td> |
|||
<td> |
|||
<span id="points-spe1"></span> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td>Spécialité 2</td> |
|||
<td>16</td> |
|||
<td> |
|||
<label for="note-spe2">Note de français oral</label> |
|||
<input type="number" name="note-spe2" |
|||
id="note-spe2" class="note" min="0" max="20" step="1" required> |
|||
</td> |
|||
<td> |
|||
<span id="points-spe2"></span> |
|||
</td> |
|||
</tr> |
|||
<tr class="total"> |
|||
<td>Totaux</td> |
|||
<td>60</td> |
|||
<td></td> |
|||
<td><span id="total-points-terminal"></span></td> |
|||
</tr> |
|||
</table> |
|||
</fieldset> |
|||
<fieldset> |
|||
<legend>Épreuves spécifiques du BFI</legend> |
|||
<table> |
|||
<tr> |
|||
<th rowspan="2">Matière</th> |
|||
<th rowspan="2">Coef.</th> |
|||
<th colspan="2">Terminale</th> |
|||
</tr> |
|||
<tr> |
|||
<th>Note</th> |
|||
<th>Points</th> |
|||
</tr> |
|||
<tr> |
|||
<td>Approfondissement culturel et linguistique - écrit</td> |
|||
<td>10</td> |
|||
<td> |
|||
<label for="note-acl-ecrit">Note d'approfondissement culturel et linguistique écrit</label> |
|||
<input type="number" name="note-acl-ecrit" |
|||
id="note-acl-ecrit" class="note" min="0" max="20" step="1" required> |
|||
</td> |
|||
<td> |
|||
<span id="points-acl-ecrit"></span> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td>Approfondissement culturel et linguistique - oral</td> |
|||
<td>10</td> |
|||
<td> |
|||
<label for="note-acl-oral">Note d'approfondissement culturel et linguistique oral</label> |
|||
<input type="number" name="note-acl-oral" |
|||
id="note-acl-oral" class="note" min="0" max="20" step="1" required> |
|||
</td> |
|||
<td> |
|||
<span id="points-acl-oral"></span> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td>Histoire-géographie en langue de section - écrit</td> |
|||
<td>10</td> |
|||
<td> |
|||
<label for="note-hg-ecrit">Note d'histoire-géographie en langue de section - écrit</label> |
|||
<input type="number" name="note-hg-ecrit" |
|||
id="note-hg-ecrit" class="note" min="0" max="20" step="1" required> |
|||
</td> |
|||
<td> |
|||
<span id="points-hg-ecrit"></span> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td>Histoire-géographie en langue de section - oral</td> |
|||
<td>10</td> |
|||
<td> |
|||
<label for="note-hg-oral">Note d'histoire-géographie en langue de section - oral</label> |
|||
<input type="number" name="note-hg-oral" |
|||
id="note-hg-oral" class="note" min="0" max="20" step="1" required> |
|||
</td> |
|||
<td> |
|||
<span id="points-hg-oral"></span> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td>Connaissance du monde</td> |
|||
<td>20</td> |
|||
<td> |
|||
<label for="note-cdm">Note de connaissance du monde</label> |
|||
<input type="number" name="note-cdm" |
|||
id="note-cdm" class="note" min="0" max="20" step="1" required> |
|||
</td> |
|||
<td> |
|||
<span id="points-cdm"></span> |
|||
</td> |
|||
</tr> |
|||
<tr class="total"> |
|||
<td>Totaux</td> |
|||
<td>60</td> |
|||
<td></td> |
|||
<td><span id="total-points-specifique"></span></td> |
|||
</tr> |
|||
</table> |
|||
</fieldset> |
|||
<fieldset> |
|||
<legend>Option(s)</legend> |
|||
<table> |
|||
<tr> |
|||
<th rowspan="2">Matière</th> |
|||
<th colspan="4">Première</th> |
|||
<th colspan="4">Terminale</th> |
|||
</tr> |
|||
<tr> |
|||
<th>?</th> |
|||
<th>Coef.</th> |
|||
<th>Note</th> |
|||
<th>Points</th> |
|||
<th>?</th> |
|||
<th>Coef.</th> |
|||
<th>Note</th> |
|||
<th>Points</th> |
|||
</tr> |
|||
<tr> |
|||
<td>Langues et cultures de l'Antiquité</td> |
|||
<td><input type="checkbox" name="check-lca-1re" id="check-lca-1re"></td> |
|||
<td id="coef-lca-1re">2</td> |
|||
<td> |
|||
<label for="note-lca-1re">Note de langues et cultures de l'Antiquité - première</label> |
|||
<input type="number" name="note-lca-1re" |
|||
id="note-lca-1re" class="note" min="0" max="20" step=".1"> |
|||
</td> |
|||
<td> |
|||
<span id="points-lca-1re"></span> |
|||
</td> |
|||
<td><input type="checkbox" name="check-lca-tle" id="check-lca-tle"></td> |
|||
<td id="coef-lca-tle">2</td> |
|||
<td> |
|||
<label for="note-lca-tle">Note d'option suivie au cours du cycle terminal - terminale</label> |
|||
<input type="number" name="note-lca-tle" |
|||
id="note-lca-tle" class="note" min="0" max="20" step=".1"> |
|||
</td> |
|||
<td> |
|||
<span id="points-lca-tle"></span> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td>Option suivie au cours du cycle terminal (ex: Arts/LV3)</td> |
|||
<td><input type="checkbox" name="check-opt1-1re" id="check-opt1-1re"></td> |
|||
<td id="coef-opt1-1re">2</td> |
|||
<td> |
|||
<label for="note-opt1-1re">Note d'option suivie au cours du cycle terminal - première</label> |
|||
<input type="number" name="note-opt1-1re" |
|||
id="note-opt1-1re" class="note" min="0" max="20" step=".1"> |
|||
</td> |
|||
<td> |
|||
<span id="points-opt1-1re"></span> |
|||
</td> |
|||
<td><input type="checkbox" name="check-opt1-tle" id="check-opt1-tle"></td> |
|||
<td id="coef-opt1-tle">2</td> |
|||
<td> |
|||
<label for="note-opt1-tle">Note d'option suivie au cours du cycle terminal - terminale</label> |
|||
<input type="number" name="note-opt1-tle" |
|||
id="note-opt1-tle" class="note" min="0" max="20" step=".1"> |
|||
</td> |
|||
<td> |
|||
<span id="points-opt1-tle"></span> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td>Option suivie uniquement en classe de Terminale (ex: Maths/DGEMC)</td> |
|||
<td colspan="4" class="null"></td> |
|||
<td><input type="checkbox" name="check-opt2" id="check-opt2"></td> |
|||
<td id="coef-opt2">2</td> |
|||
<td> |
|||
<label for="note-opt2">Note d'option suivie uniquement en classe de Terminale</label> |
|||
<input type="number" name="note-opt2" |
|||
id="note-opt2" class="note" min="0" max="20" step=".1"> |
|||
</td> |
|||
<td> |
|||
<span id="points-opt2"></span> |
|||
</td> |
|||
</tr> |
|||
<tr class="total"> |
|||
<td>Totaux</td> |
|||
<td colspan="4">Total des coefficients : <span id="total-coef-options">-</span></td> |
|||
<td colspan="4">Total des points : <span id="total-points-options">-</span></td> |
|||
</tr> |
|||
</table> |
|||
</fieldset> |
|||
</form> |
|||
</main> |
|||
|
|||
<footer> |
|||
© Valentin Moguérou 2023 - Licence GNU AGPL v3 - <a href="https://git.kaz.bzh/valentin/simulation.wikibac.fr" target="_blank">Code source</a> |
|||
</footer> |
|||
</body> |
|||
</html> |
@ -0,0 +1,126 @@ |
|||
* { |
|||
margin: 0; |
|||
padding: 0; |
|||
box-sizing: border-box; |
|||
} |
|||
|
|||
body { |
|||
font-family: Arial, sans-serif; |
|||
} |
|||
|
|||
a:link, a:visited { |
|||
color: #444; |
|||
} |
|||
|
|||
h1 { |
|||
margin: 10px 0; |
|||
text-align: center; |
|||
} |
|||
|
|||
header { |
|||
margin: 10px; |
|||
} |
|||
|
|||
main { |
|||
width: clamp(400px, 70%, 1200px); |
|||
margin: 30px auto; |
|||
} |
|||
|
|||
.resultat { |
|||
background-color: #ffffff; |
|||
position: sticky; |
|||
top: 0; |
|||
padding: 10px; |
|||
display: flex; |
|||
box-shadow: 0 5px 5px #ddd; |
|||
justify-content: center; |
|||
gap: 15px; |
|||
} |
|||
|
|||
.resultat div { |
|||
padding: 15px; |
|||
border: 1px solid #ddd; |
|||
text-align: center; |
|||
} |
|||
|
|||
.resultat div span { |
|||
font-size: 2em; |
|||
} |
|||
|
|||
.resultat div p { |
|||
margin-top: 15px; |
|||
} |
|||
|
|||
.resultat table { |
|||
margin: 10px auto; |
|||
} |
|||
|
|||
.info { |
|||
padding: 10px; |
|||
background-color: lightyellow; |
|||
margin: 10px 10px; |
|||
border: 1px solid #ddd; |
|||
} |
|||
|
|||
form { |
|||
margin: 10px; |
|||
} |
|||
|
|||
fieldset { |
|||
padding: 10px; |
|||
margin: 20px 0; |
|||
} |
|||
|
|||
table { |
|||
border-collapse: collapse; |
|||
} |
|||
|
|||
td, th { |
|||
padding: 5px; |
|||
} |
|||
|
|||
th, tr.total td { |
|||
border: 2px solid black; |
|||
} |
|||
|
|||
td { |
|||
border-top: 1px solid #bbb; |
|||
border-bottom: 1px solid #bbb; |
|||
border-left: 2px solid black; |
|||
border-right: 2px solid black; |
|||
} |
|||
|
|||
td.null { |
|||
background-color: #bbb |
|||
} |
|||
|
|||
tr.total { |
|||
font-weight: bold; |
|||
text-align: center; |
|||
} |
|||
|
|||
tr:hover { |
|||
background-color: #ffffdd; |
|||
} |
|||
|
|||
.note { |
|||
width: 60px; |
|||
padding: 5px; |
|||
border: none; |
|||
background-color: #eee; |
|||
font: large monospace; |
|||
} |
|||
|
|||
.note:invalid, .note[value=""] { |
|||
background-color: #ffdddd; |
|||
} |
|||
|
|||
label { |
|||
display: none; |
|||
} |
|||
|
|||
footer { |
|||
margin-top: 20px; |
|||
padding: 10px; |
|||
text-align: center; |
|||
} |
After Width: | Height: | Size: 17 KiB |
Loading…
Reference in new issue