Files
xamxam/TODO.md
Pontoporeia 19ef2a11dc fix CSV importer AP/orientation name resolution + seed missing AP programs
- migration 014: adds Récits et expérimentation (RE), PACS, sets code NS
  on Narration Spéculative; applied to both posterg.db and test.db

- importer (admin/index.php): replaced the code-only ap_programs lookup
  (SELECT WHERE code=?) and the orientationMap short-code translation with
  two resolver closures that handle the real CSV format (full names):

  resolveAP(): alias map for L.I.E.N.S., case variants → exact name
  match → code match (legacy) → case-insensitive name match

  resolveOrientation(): legacy 2-letter code map → alias map for
  Installation/Performance, Arts numériques, Design numérique →
  exact name match → case-insensitive name match

  All 5 AP values and 13 orientation values from the real CSV now
  resolve to correct DB IDs. Legacy short-code CSVs (test.db format)
  continue to work unchanged.
2026-04-24 23:03:49 +02:00

1.6 KiB

TODO

CSV importer AP/orientation standardisation

  • Migration 014: add Récits et expérimentation (RE) and PACS AP programs; set code NS on Narration Spéculative
  • Importer: replace code-only AP lookup with resolveAP() — handles full names, aliases (L.I.E.N.S., case variants), code fallback
  • Importer: replace orientationMap code-only lookup with resolveOrientation() — handles full names, aliases (Installation/Performance, Arts numériques, Design numérique), legacy 2-letter codes, case-insensitive DB fallback

Répertoire page fixes

  • Fix AP and orientation columns returning empty results when clicked
  • Fix multi-select being blocked (only one entry selectable at a time)
  • Fix all other columns becoming faded when AP/OR filter is selected
  • Always show all lookup-table values (ap/or/fi); only fade based on cross-dimension matched data when the column has at least one matched entry ($colHasMatches guard)
  • Make main the scrollable element instead of body
    • common.css: body is now display:flex; flex-direction:column, main gets flex:1; min-height:0
    • public.css: removed redundant main block, .home-main keeps its overflow-y:auto
    • repertoire.css: .search-main gets min-height:0 for proper flex scroll containment
    • common.css: .header-search-wrap gets flex-shrink:0
  • Database::getRepertoireFilterData: allAp, allOr, allFi now sourced from actual published thesis joins (not bare lookup tables), matching the pattern used by years and keywords