Skip to content

Batch-Import trennt Schlagworte nur noch an Zeilenumbrüchen (v2.42.2) - #130

Merged
daimpad merged 1 commit into
mainfrom
claude/fix-data-prep-errors-kJYpl
Sep 17, 2026
Merged

daimpad merged 1 commit into
mainfrom
claude/fix-data-prep-errors-kJYpl

Conversation

@daimpad

@daimpad daimpad commented Sep 17, 2026

Copy link
Copy Markdown
Owner

Umsetzung der offenen Entscheidung aus dem letzten Turtle-Fix: Der Batch-Import trennt Schlagworte an Kommas — das Formular tut das ausdrücklich nicht.

Der Widerspruch

Das Formular warnt seit jeher:

„Trennen Sie die Schlagwörter nicht mit Komma."

Ein Komma darf also Teil eines Schlagworts sein (z. B. „Berlin, Stadt"). Der Batch-Import spaltete dieselbe Eingabe aber zusätzlich an Kommas — dieselben Rohdaten ergaben je nach Weg ein anderes Ergebnis, und ein per Komma geschriebenes Schlagwort landete beim Veröffentlichen unbemerkt als mehrere dcat:keyword-Werte statt einem.

Aufgefallen an den eigenen Beispieldateien: "Demografie, Statistik" wurde beim Import zu zwei Schlagworten, im Formular wäre es eines geblieben.

Die Änderung

includes/class-batch-import.php: Die Trenn-Regex für Schlagworte geht von /[\r\n,]+/ auf /[\r\n]+/ — nur noch Zeilenumbrüche trennen, wie im Formular. Mehrere Zeilen passen weiterhin in eine CSV-Zelle, wenn sie in Anführungszeichen steht; fgetcsv() liest eingebettete Zeilenumbrüche korrekt, Excel/LibreOffice schreiben das beim Export automatisch so.

Die Themen-Mehrfachauswahl (theme) ist bewusst unverändert: Dort ist Komma-Trennung nicht dokumentiert widersprüchlich zum Formular, das bleibt außerhalb dieses Fixes.

Mitgezogen

  • tests/test-batch-import.php — der bestehende Test verlangte die alte, falsche Form (Komma spaltet) und ist umgestellt; ein neuer Test hält fest, dass ein Komma innerhalb eines Schlagworts erhalten bleibt.
  • samples/import-example.csv / .json — gingen mit schlechtem Beispiel voran (kommagetrennte Schlagworte). Auf echte Zeilentrennung umgestellt, mit fgetcsv() gegengeprüft (5 Zeilen, Schlagworte sauber getrennt).
  • README.md — Feldbeschreibung des Imports korrigiert.

Lokal geprüft

Composer erreicht in dieser Umgebung github.com nicht — PHPUnit läuft daher nicht lokal, das entscheidet sich in der CI. Stattdessen lokal verifiziert:

  • Die neue Regex separat gegen drei Fälle laufen lassen (Zeilenumbruch + Leerzeile, Komma bleibt erhalten, mehrere Schlagworte mit Kommas).
  • Das neue CSV-Sample mit fgetcsv() neu eingelesen — 5 Zeilen, Schlagworte korrekt getrennt.
  • Das neue JSON-Sample geparst.
  • bin/verify-package.py und bin/check-i18n.py sauber.

Version 2.42.1 → 2.42.2.

🤖 Generated with Claude Code

https://claude.ai/code/session_01JB1xUQM892bVZ4Yv3MZjvq


Generated by Claude Code

…42.2)

Das Formular warnt seit jeher: „Trennen Sie die Schlagwörter nicht mit
Komma" — ein Komma darf Teil eines Schlagworts sein (z. B. „Berlin,
Stadt"). Der Batch-Import spaltete dieselbe Eingabe aber zusätzlich an
Kommas. Dieselben Rohdaten ergaben je nach Weg ein anderes Ergebnis, und
ein per Komma geschriebenes Schlagwort landete beim Veröffentlichen
unbemerkt als mehrere dcat:keyword-Werte statt einem.

Aufgefallen an den eigenen Beispieldateien: "Demografie, Statistik"
wurde beim Import zu zwei Schlagworten, im Formular wäre es eines
geblieben — exakt das Muster, das beim Live-Test des Harvest-Endpunkts
schon einmal auffiel (dort ein anderes Feld, derselbe Widerspruch
zwischen Formular- und Import-Verhalten).

Der Import trennt jetzt ausschließlich an Zeilenumbrüchen. Mehrere
Zeilen passen weiterhin in eine CSV-Zelle, wenn sie in Anführungszeichen
steht — fgetcsv() liest das korrekt, Excel/LibreOffice schreiben es beim
Export automatisch so.

Geändert:
- includes/class-batch-import.php — Regex von /[\r\n,]+/ auf /[\r\n]+/
- tests/test-batch-import.php — der bestehende Test verlangte die alte,
  falsche Form (Komma spaltet); umgestellt, plus ein neuer Test, der ein
  Komma innerhalb eines Schlagworts erhalten hält
- samples/import-example.csv, .json — nutzten kommagetrennte
  Schlagworte als Beispiel; auf Zeilentrennung umgestellt (CSV-Zellen
  mit echten, eingebetteten Zeilenumbrüchen, per fgetcsv() gegengeprüft)
- README.md — Feldbeschreibung des Imports korrigiert

Lokal geprüft: Regex-Verhalten separat verifiziert (Kontrollausgabe für
Zeilenumbruch+Leerzeile sowie Komma-Erhalt), CSV-Sample mit fgetcsv()
neu eingelesen (5 Zeilen, Schlagworte korrekt getrennt), JSON-Sample
geparst, Paketprüfung und i18n sauber. PHPUnit läuft in dieser Umgebung
nicht (Composer erreicht github.com nicht) — entscheidet sich in der CI.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01JB1xUQM892bVZ4Yv3MZjvq
@daimpad
daimpad merged commit 08ccb38 into main Sep 17, 2026
22 checks passed
@daimpad
daimpad deleted the claude/fix-data-prep-errors-kJYpl branch September 17, 2026 11:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants