feat: Afficher la couleur des matières dans l'emploi du temps élève et parent
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

L'admin pouvait attribuer une couleur à chaque matière, mais cette
couleur n'était utilisée que dans la vue admin de l'emploi du temps.
Les APIs élève et parent ne renvoyaient pas cette information, ce qui
donnait un affichage générique (gris/bleu) pour tous les créneaux.

L'API renvoie désormais subjectColor dans chaque créneau, et les vues
jour/semaine/widget/détails affichent la bordure colorée correspondante.
Le marqueur "Prochain cours" conserve sa priorité visuelle via une
surcharge CSS variable.
This commit is contained in:
2026-03-09 11:20:50 +01:00
parent bda63bd98c
commit 81e97c4f3b
27 changed files with 188 additions and 70 deletions

View File

@@ -147,11 +147,11 @@ test.describe('Child Selector', () => {
// Should display the label
await expect(childSelector.locator('.child-selector-label')).toHaveText('Enfant :');
// Should have 2 child buttons
// Should have 3 buttons: "Tous" + 2 children
const buttons = childSelector.locator('.child-button');
await expect(buttons).toHaveCount(2);
await expect(buttons).toHaveCount(3);
// First child should be auto-selected
// "Tous" button should be selected initially (no child auto-selected)
await expect(buttons.first()).toHaveClass(/selected/);
});
@@ -162,18 +162,18 @@ test.describe('Child Selector', () => {
await expect(childSelector).toBeVisible({ timeout: 10000 });
const buttons = childSelector.locator('.child-button');
await expect(buttons).toHaveCount(2);
await expect(buttons).toHaveCount(3);
// First button should be selected initially
await expect(buttons.first()).toHaveClass(/selected/);
// "Tous" button (index 0) should be selected initially
await expect(buttons.nth(0)).toHaveClass(/selected/);
await expect(buttons.nth(1)).not.toHaveClass(/selected/);
// Click second button
// Click first child button (index 1)
await buttons.nth(1).click();
// Second button should now be selected, first should not
// First child should now be selected, "Tous" should not
await expect(buttons.nth(1)).toHaveClass(/selected/);
await expect(buttons.first()).not.toHaveClass(/selected/);
await expect(buttons.nth(0)).not.toHaveClass(/selected/);
});
test('[P1] parent with single child should see static child name', async ({ browser, page }) => {