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

19 lines
1.6 KiB
Markdown

# TODO
## CSV importer AP/orientation standardisation
- [x] Migration 014: add `Récits et expérimentation` (RE) and `PACS` AP programs; set code `NS` on `Narration Spéculative`
- [x] Importer: replace code-only AP lookup with `resolveAP()` — handles full names, aliases (`L.I.E.N.S.`, case variants), code fallback
- [x] 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
- [x] Fix AP and orientation columns returning empty results when clicked
- [x] Fix multi-select being blocked (only one entry selectable at a time)
- [x] Fix all other columns becoming faded when AP/OR filter is selected
- [x] 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)
- [x] Make `main` the scrollable element instead of body
- [x] `common.css`: body is now `display:flex; flex-direction:column`, `main` gets `flex:1; min-height:0`
- [x] `public.css`: removed redundant `main` block, `.home-main` keeps its `overflow-y:auto`
- [x] `repertoire.css`: `.search-main` gets `min-height:0` for proper flex scroll containment
- [x] `common.css`: `.header-search-wrap` gets `flex-shrink:0`
- [x] `Database::getRepertoireFilterData`: `allAp`, `allOr`, `allFi` now sourced from actual published thesis joins (not bare lookup tables), matching the pattern used by years and keywords