fix: unify CSV import/export columns, fix import JS error, fix createThesis VALUES

- Fix createThesis SQL: extra ? placeholder in VALUES (27 values for 26 columns)
- Add createThesis integration tests to catch column/value mismatches
- Add CSV_COLUMNS as single source of truth in ExportController, deriving
  csvHeaders() and positional fallback from it
- Add missing columns to export query + CSV: duration_pages, duration_minutes,
  has_annexes, license_custom, contact_visible, objet
- Add missing columns to import INSERT: license_id, license_custom, cc2r,
  exemplaire_baiu, exemplaire_erg, objet, contact_visible, duration_pages,
  duration_minutes, has_annexes
- Resolve license name → license_id during import
- Fix XamxamInitFilePonds: add file-upload-filepond.js to admin-entry.js
  so FilePond initialization code is available on the admin list page
- Add FilePond vendor CSS to admin.min.css bundle (import dialog styling)
- Generate .admin-file-hint from csvHeaders() instead of hardcoded stale list
- Use positional fallback from CSV_COLUMNS for import cell parsing
This commit is contained in:
Pontoporeia
2026-07-10 11:56:27 +02:00
parent ce936e3b71
commit 22a49f7cb6
11 changed files with 355 additions and 42 deletions
+24
View File
@@ -2508,3 +2508,27 @@ th.admin-ap-col {
padding: var(--space-3xs) 0;
border: 0;
}
/* ── CSV import file input (admin list page) ──────────────────────────── */
.admin-file-input {
display: flex;
flex-direction: column;
gap: var(--space-3xs);
}
/* FilePond drop-zone border (replaces the raw input border from form-base.css) */
.admin-file-input .filepond--root {
border: 1px dashed var(--border-primary, #ccc);
border-radius: var(--radius, 8px);
background: var(--bg-elevated, #fafafa);
}
.admin-file-input .filepond--root:hover {
border-color: var(--accent-primary, #5b2d8e);
}
.admin-file-hint {
display: block;
margin-top: var(--space-2xs);
}