DOCS/kanban/cards/4-a-tester/100-mediatheque-codee-de-bout-en-bout-checklist-a.md
2026-09-03 14:00:51 +02:00

12 lines
2.7 KiB
Markdown

---
title: Médiathèque codée de bout en bout — checklist à passer au navigateur
area: manager
horizon: v1
tags: manager-app, manager-service, UX
flag: warn | vert au compilateur, jamais ouvert dans un navigateur
src: v1-mediatheque-plan.md — les 8 étapes sont codées
---
<span><strong>Les 8 étapes de <code>v1-mediatheque-plan.md</code> sont codées</strong> : <code>Resource.Width</code>/<code>Height</code> (migration <code>AddResourceDimensions</code>), <code>fileName</code> dans <code>ToDTO()</code>, <code>ResourceUsageService</code> + <code>GET /usages</code> et <code>GET /usage-map</code>, <code>409</code> sur la suppression d'une ressource utilisée et <code>DELETE /bulk</code> à rapport partiel ; côté front, renommage en <strong>Médiathèque</strong>, 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 <code>.png</code>, et <code>FileName</code> est exposé.</span>
<span><strong>Deux corrections apportées à la spécification, vérifiées dans le code.</strong> Le « piège 1 » (union sur toutes les langues) était <em>faux</em> : <code>GetReferencedResourceIds(null)</code> rend déjà toutes les langues — appeler la méthode sans argument suffit. Et un <strong>quatrième piège</strong> manquait : un <code>GuidedPath</code> peut pendre d'un <code>SectionEvent</code>, dont <code>GetReferencedResourceIds</code> ne descend pas dans les parcours ; les parcours sont donc parcourus séparément, et volontairement pas chargés sur <code>SectionParcours</code> pour éviter le double comptage. Les deux sont figés par des tests (<code>ImageUsedOnlyInDutch_IsNotOrphan</code>, <code>GuidedPathOnEvent_IsWalked</code>). Piège 3 assumé et testé tel quel : <code>GuidedStep.ImageUrl</code> reste une URL, donc comptée orpheline — le tooltip de la facette « Jamais utilisées » l'écrit.</span>
<span>⚠️ <strong>Ce qui reste, et pourquoi cette carte est ici.</strong> <code>dotnet test</code> 236/236 et <code>flutter build web</code> passent — <strong>la checklist de 15 points du plan n'a été passée dans aucun navigateur</strong>. Le point le plus coûteux d'abord : <em>ouvrir un champ image d'une section, choisir une ressource, enregistrer</em>. <code>showSelectResourceModal</code> monte <code>ResourcesScreen</code>, 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 (<code>quota_bars_widget.dart:23</code>).</span>