Skip to content

feat: 8 UX- und Datenqualitäts-Verbesserungen (v2.1)#10

Merged
daimpad merged 1 commit intomainfrom
claude/evaluate-change-requests-FEyiS
May 6, 2026
Merged

feat: 8 UX- und Datenqualitäts-Verbesserungen (v2.1)#10
daimpad merged 1 commit intomainfrom
claude/evaluate-change-requests-FEyiS

Conversation

@daimpad
Copy link
Copy Markdown
Owner

@daimpad daimpad commented May 6, 2026

Zusammenfassung

Implementierung aller 8 besprochenen Änderungswünsche.

Änderung 1 — Lizenz-Dropdown mit „Sonstige" + Auto-Suggest

  • Deutschland-Lizenz aus dem Haupt-Dropdown entfernt
  • Neuer Eintrag „Sonstige…" öffnet ein bedingtes Textfeld (license_custom) mit Auto-Suggest via <datalist>
  • Vollständige Lizenzliste in config/licenses.txt (Format: URI | Label, kommentierbar)
  • 14 Standard-Lizenzen vorbelegt (CC0, CC-BY, CC-BY-SA, Datenlizenz Deutschland, ODbL u.a.)

Änderung 2 — 4 Qualitätsstufen

Score Level Label
100 perfect Perfekt
56–99 high Gut
55 sufficient Ausreichend
< 55 low Verbesserungsbedarf

55 Punkte = exakt alle DCAT-AP-Pflichtfelder erfüllt, keine optionalen.

Änderung 3 — Dateiformatliste externalisiert

  • config/dct-format-list.php mit 18 Formaten (CSV, JSON, XLSX, ODS, PDF, XML, GeoJSON, GML, SHP, GPKG, KML, ZIP, TIFF, RDF, Turtle, N-Triples, JSON-LD, Sonstiges)
  • get_format_options(), get_format_mime(), get_format_eu_uri() lesen alle aus dieser Datei

Änderung 4 — Distribution-Erklärung

  • Erklärender Einleitungstext „Was ist eine Distribution?" in Tab 3

Änderung 5 — DCAT-AP Felddefinitionen externalisiert

  • config/dcat-ap-fields.php als Single Source of Truth für alle Feld-Metadaten
  • ODW_Quality::get_indicators() und ODW_Fields::get_required_fields() lesen daraus
  • DCAT-AP-Updates = nur diese Datei anpassen, kein PHP-Code ändern

Änderung 6 — CESSDA Themenklassifikation

  • Neues Feld odw_cessda_topic in Tab 2 mit Auto-Suggest
  • SKOS/RDF-Datei config/TopicClassification-4.2.3_de-4.2.3.rdf (v4.2.3, 95 deutsche Konzepte)
  • PHP-Parser mit SimpleXML + Transient-Cache (24h)
  • Ausgabe als cessda:topic im JSON-LD

Änderung 7 — Wizard-Tabs umstrukturiert + Lizenz pro Distribution

Tab Vorher Nachher
1 Pflichtangaben Grundlegende Informationen (Herausgeber, Thema, Beschreibung)
2 Optionale Angaben Inhaltliche Angaben (Sprache, Schlagworte, Datum, CESSDA)
3 Distribution Datenbereitstellung (+ Lizenz als Pflichtfeld pro Distribution)
  • Lizenz wandert von Dataset-Ebene in jede Distribution
  • odw_build_dataset_jsonld() setzt dct:license pro dcat:Distribution
  • Validierung prüft: jede Distribution mit URL benötigt eine Lizenz
  • Rückwärtskompatibel: Legacy byte_size wird als Fallback unterstützt

Änderung 8 — Composite Dateigröße-Widget

  • Numerisches Eingabefeld + Einheiten-Dropdown (KB / MB / GB)
  • JavaScript berechnet Bytes und schreibt sie in das CF-Backing-Field
  • Inline-Anzeige „= X Bytes", Hinweis „1 MB = 1.024 KB"
  • Bestehende byte_size-Daten (Bytes) werden als Fallback weiter gelesen

Test-Plan

  • PHPCS: 0 Verletzungen ✅
  • PHPUnit: 90/90 Tests bestanden (3 Skipped unverändert) ✅
  • Lizenz-Dropdown: „Sonstige" auswählen → Freitext-Feld erscheint, Auto-Suggest zeigt Optionen aus licenses.txt
  • Qualitätsstufen: Datensatz mit nur Pflichtfeldern → „Ausreichend" (55 Pkt); alle Felder → „Perfekt" (100 Pkt)
  • CESSDA-Feld: Eintippen eines deutschen Begriffs → passende Optionen aus SKOS erscheinen
  • Dateigröße: Wert + Einheit eingeben → Byte-Berechnung erscheint live
  • Tab-Reihenfolge prüfen
  • Distribution ohne Lizenz → Veröffentlichung wird blockiert

https://claude.ai/code/session_01CYoDkrxC1coeK23kxY8nB2


Generated by Claude Code

1. Lizenz: Deutschland-Lizenz entfernt, 'Sonstige' + Auto-Suggest
   aus config/licenses.txt (URI | Label Format)
2. Qualitätsstufen: 4 Level — Perfekt (100), Gut (56-99),
   Ausreichend (55), Verbesserungsbedarf (<55)
3. Dateiformatliste nach config/dct-format-list.php ausgelagert
   (18 Formate incl. GML, GPKG, KML, Turtle, JSON-LD)
4. Distribution: Erklärungs-Intro 'Was ist eine Distribution?'
5. DCAT-AP Felddefinitionen nach config/dcat-ap-fields.php
   ausgelagert (Single Source of Truth für Quality + Validation)
6. CESSDA Themenklassifikation: Auto-Suggest aus SKOS/RDF-Datei
   (95 deutsche Konzepte, Version 4.2.3)
7. Wizard-Tabs umstrukturiert: 1=Grundlegende Informationen,
   2=Inhaltliche Angaben, 3=Datenbereitstellung; Lizenz als
   Pflichtfeld pro Distribution (nicht mehr am Dataset)
8. Dateigröße: Composite-Widget (Zahl + Einheit KB/MB/GB)
   mit Byte-Berechnung; backing field bleibt byte_size

PHPCS: 0 violations | Tests: 90/90 passed

https://claude.ai/code/session_01CYoDkrxC1coeK23kxY8nB2
@daimpad daimpad merged commit 018cd19 into main May 6, 2026
10 checks passed
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