CSV importer: boolean and ap variants/typos

- add AP aliases for:
  - Design & politique du multiple → DPM,
  - Pratiques artistiques & complexité scientifique → PACS,
  - Narraion Speculative typo → NS
- Fix: OUI/NON CSV artefacts in contact_interne — clean DB, guard in findOrCreateAuthor and CSV import
- Cleaned 141 authors.email = 'NON' rows → NULL in dev DB
- findOrCreateAuthor: treat OUI/NON as null (CSV boolean artefact in email column)
- CSV import: sanitize contact column — OUI/NON → empty string before passing to findOrCreateAuthor
This commit is contained in:
Pontoporeia
2026-05-10 03:33:27 +02:00
parent fa30aab368
commit 96fa8ee266
7 changed files with 195 additions and 16 deletions

View File

@@ -1,5 +1,7 @@
# TODO
- [x] Languages: store lowercase, display with ucfirst (getOrCreateLanguage, CSV import, getAllLanguages, v_theses_full, schema seed data, migration 025)
- [x] CSV importer: add AP aliases for D&P du multiple, PACS variants, Narraion typo
- [x] Move default semantic form element styles (checkbox, radio, select) from admin.css/form.css into common.css
- [x] Keep specific layouts/classes in form.css (admin-form grid, checkbox-group layout, etc.)
- [x] Ensure selects, checkboxes, and radios are properly styled globally
@@ -70,7 +72,7 @@
- [x] Mots-clés: lowercase enforcement, deduplication, absolute dropdown, keyboard arrows/enter/escape, blur hide, spacing + counter above input, CSV import lowercased, space-collapse normalization, minimum 3 keywords required
- [x] ErrorHandler: shared static helper for structured error_log + user-friendly messages with precise FK field extraction from SQLite errors. Applied to 12 action files + 6 public controllers + 2 form controllers + partage. Covers FK, UNIQUE, NOT NULL constraint types.
- [x] Fix: findOrCreateAuthor cannot clear email (empty string skips update, leaves old email)
- [ ] Fix: "NON" stored as literal email string in authors table (CSV import or old data)
- [x] Fix: "NON" stored as literal email string in authors table — cleaned existing DB rows, added OUI/NON→null guard in findOrCreateAuthor and CSV import
- [x] Fix: contact_interne field in edit form never saved — removed dead field from form and dead validation from create controller
- [x] Fix: formulaire.php unconditionally suppresses display_errors even in dev mode
- [x] Fix: access_type_id radio has no "none" option — added "— Non défini" radio for admin mode