feat: Configuration du mode de notation par établissement
Les établissements scolaires utilisent des systèmes d'évaluation variés (notes /20, /10, lettres, compétences, sans notes). Jusqu'ici l'application imposait implicitement le mode notes /20, ce qui ne correspondait pas à la réalité pédagogique de nombreuses écoles. Cette configuration permet à chaque établissement de choisir son mode de notation par année scolaire, avec verrouillage automatique dès que des notes ont été saisies pour éviter les incohérences. Le Score Sérénité adapte ses pondérations selon le mode choisi (les compétences sont converties via un mapping, le mode sans notes exclut la composante notes).
This commit is contained in:
@@ -2,6 +2,11 @@
|
||||
import type { SerenityScore } from '$types';
|
||||
import { getSerenityEmoji, getSerenityLabel } from '$lib/features/dashboard/serenity-score';
|
||||
|
||||
// TODO: Adapter la formule et les poids affichés selon le mode de notation
|
||||
// (no_grades: 0/50/50, competencies: renommer Notes→Compétences + note mapping).
|
||||
// À traiter quand le Score Sérénité sera connecté aux vraies données.
|
||||
// Voir backend SerenityScoreWeights::forMode() pour la logique de pondération.
|
||||
|
||||
let {
|
||||
score,
|
||||
isEnabled = false,
|
||||
@@ -16,10 +21,9 @@
|
||||
onToggleOptIn?: ((enabled: boolean) => void) | undefined;
|
||||
} = $props();
|
||||
|
||||
let localEnabled = $state(isEnabled);
|
||||
let localEnabled = $state(false);
|
||||
|
||||
// Sync local state with parent prop changes
|
||||
$effect(() => {
|
||||
$effect.pre(() => {
|
||||
localEnabled = isEnabled;
|
||||
});
|
||||
|
||||
@@ -43,8 +47,8 @@
|
||||
|
||||
<svelte:window onkeydown={handleKeydown} />
|
||||
|
||||
<!-- svelte-ignore a11y_click_events_have_key_events a11y_no_static_element_interactions -->
|
||||
<div class="modal-backdrop" onclick={handleBackdropClick}>
|
||||
<!-- svelte-ignore a11y_click_events_have_key_events a11y_no_static_element_interactions a11y_no_noninteractive_element_interactions -->
|
||||
<div class="modal-backdrop" onclick={handleBackdropClick} role="presentation">
|
||||
<div class="modal-content" role="dialog" aria-modal="true" aria-labelledby="modal-title">
|
||||
<header class="modal-header">
|
||||
<h2 id="modal-title">Comment fonctionne le Score Sérénité ?</h2>
|
||||
|
||||
@@ -46,6 +46,11 @@
|
||||
<span class="action-label">Périodes scolaires</span>
|
||||
<span class="action-hint">Trimestres et semestres</span>
|
||||
</a>
|
||||
<a class="action-card" href="/admin/pedagogy">
|
||||
<span class="action-icon">🎓</span>
|
||||
<span class="action-label">Pédagogie</span>
|
||||
<span class="action-hint">Mode de notation</span>
|
||||
</a>
|
||||
<div class="action-card disabled" aria-disabled="true">
|
||||
<span class="action-icon">📤</span>
|
||||
<span class="action-label">Importer des données</span>
|
||||
|
||||
Reference in New Issue
Block a user