L'enseignant avait besoin d'un moyen rapide de saisir les notes après une évaluation. La grille inline permet de compléter 30 élèves en moins de 3 minutes grâce à la navigation clavier (Tab/Enter/Shift+Tab), la validation temps réel, l'auto-save debounced (500ms) et les raccourcis /abs et /disp pour marquer absents/dispensés. Les notes restent en brouillon jusqu'à publication explicite (avec confirmation modale). Une fois publiées, les élèves les voient immédiatement ; les parents après un délai de 24h (VisibiliteNotesPolicy). Le mode offline stocke les notes en IndexedDB et synchronise automatiquement au retour de la connexion. Chaque modification est auditée dans grade_events via un event subscriber qui écoute NoteSaisie/NoteModifiee sur le bus d'événements.
22 lines
455 B
PHP
22 lines
455 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Scolarite\Domain\Exception;
|
|
|
|
use App\Scolarite\Domain\Model\Evaluation\EvaluationId;
|
|
use DomainException;
|
|
|
|
use function sprintf;
|
|
|
|
final class NotesDejaPublieesException extends DomainException
|
|
{
|
|
public static function pourEvaluation(EvaluationId $id): self
|
|
{
|
|
return new self(sprintf(
|
|
'Les notes de l\'évaluation "%s" sont déjà publiées.',
|
|
$id,
|
|
));
|
|
}
|
|
}
|