feat: Permettre aux enseignants de créer et gérer les devoirs
Some checks failed
CI / Backend Tests (push) Has been cancelled
CI / Frontend Tests (push) Has been cancelled
CI / E2E Tests (push) Has been cancelled
CI / Naming Conventions (push) Has been cancelled
CI / Build Check (push) Has been cancelled

Les enseignants avaient besoin d'un outil pour créer des devoirs assignés
à leurs classes, avec filtrage automatique par matière selon la classe
sélectionnée. Le système valide que la date d'échéance tombe un jour
ouvrable (lundi-vendredi) et empêche les dates dans le passé.

Le domaine modélise le devoir comme un agrégat avec pièces jointes,
statut brouillon/publié, et événements métier (création, modification,
suppression). Les handlers de notification écoutent ces événements pour
les futurs envois aux parents et élèves.
This commit is contained in:
2026-03-12 10:11:06 +01:00
parent 56bc808d85
commit e9efb90f59
51 changed files with 4776 additions and 7 deletions

View File

@@ -174,14 +174,15 @@ test.describe('Dashboard', () => {
await goToDashboard(page);
await switchToDemoRole(page, 'Enseignant');
// Action cards should be disabled since hasRealData=false
// First two action cards should be disabled since hasRealData=false
// "Créer un devoir" navigates to homework page and is always enabled
const actionCards = page.locator('.action-card');
const count = await actionCards.count();
expect(count).toBeGreaterThanOrEqual(3);
for (let i = 0; i < count; i++) {
await expect(actionCards.nth(i)).toBeDisabled();
}
await expect(actionCards.nth(0)).toBeDisabled();
await expect(actionCards.nth(1)).toBeDisabled();
await expect(actionCards.nth(2)).toBeEnabled();
});
test('shows placeholder sections for teacher data', async ({ page }) => {