2.7 KiB
title, area, horizon, tags, flag, src
| title | area | horizon | tags | flag | src |
|---|---|---|---|---|---|
| Médiathèque codée de bout en bout — checklist à passer au navigateur | manager | v1 | manager-app, manager-service, UX | warn | vert au compilateur, jamais ouvert dans un navigateur | v1-mediatheque-plan.md — les 8 étapes sont codées |
Les 8 étapes de v1-mediatheque-plan.md sont codées : Resource.Width/Height (migration AddResourceDimensions), fileName dans ToDTO(), ResourceUsageService + GET /usages et GET /usage-map, 409 sur la suppression d'une ressource utilisée et DELETE /bulk à rapport partiel ; côté front, renommage en Médiathèque, rail de facettes cumulables à compteurs (type · usage · configuration), tri, groupement par mois, bascule grille/liste, sélection multiple, compteur d'usages sur la vignette, et le panneau latéral qui remplace la popup de 520 px. Les deux bugs sont corrigés : un PNG se télécharge en .png, et FileName est exposé.
Deux corrections apportées à la spécification, vérifiées dans le code. Le « piège 1 » (union sur toutes les langues) était faux : GetReferencedResourceIds(null) rend déjà toutes les langues — appeler la méthode sans argument suffit. Et un quatrième piège manquait : un GuidedPath peut pendre d'un SectionEvent, dont GetReferencedResourceIds ne descend pas dans les parcours ; les parcours sont donc parcourus séparément, et volontairement pas chargés sur SectionParcours pour éviter le double comptage. Les deux sont figés par des tests (ImageUsedOnlyInDutch_IsNotOrphan, GuidedPathOnEvent_IsWalked). Piège 3 assumé et testé tel quel : GuidedStep.ImageUrl reste une URL, donc comptée orpheline — le tooltip de la facette « Jamais utilisées » l'écrit.
⚠️ Ce qui reste, et pourquoi cette carte est ici. dotnet test 236/236 et flutter build web passent — la checklist de 15 points du plan n'a été passée dans aucun navigateur. Le point le plus coûteux d'abord : ouvrir un champ image d'une section, choisir une ressource, enregistrer. showSelectResourceModal monte ResourcesScreen, donc une régression y touche les 13 types de section, les POI et les étapes d'un coup. Hors périmètre, laissé tel quel : la jauge de stockage du menu (quota_bars_widget.dart:23).