feat: Werkzeugkatalog nennt tatsächliche Verarbeitungsländer statt EU/USA/gemischt-Eimer, plus DPF-Feld

Die USA sind DSGVO-rechtlich bereits ein Drittland wie jedes andere -
der alte verarbeitungsort-Wertebereich (EU/USA/gemischt/on-prem)
verschleierte das. Ersetzt durch verarbeitungslaender TEXT[] mit
echter Weltländerliste im Formular (Mehrfachauswahl, kein JS nötig).
Der harte Filter eu_verarbeitung verlangt jetzt, dass ALLE genannten
Länder EU/EWR sind. Neues Feld dpf_zertifiziert macht die EU-US Data
Privacy Framework-Zertifizierung strukturiert statt nur Fließtext.
Öffnet nebenbei den Weg für Katalogeinträge außerhalb EU/USA (z. B.
DeepSeek), die vorher am alten Wertebereich scheiterten.

Zusätzlich Typografie-Nachbesserung nach Nutzer-Feedback: Formular-
Abschnittsüberschriften (<legend>) saßen zu dicht am Kartenrand, weil
<legend> das Padding des umschließenden <fieldset> ignoriert - jetzt
mit eigenem Padding und größerer Schrift, h2/h3 einheitlich gesetzt.
This commit is contained in:
noroot
2026-08-31 13:52:00 +02:00
parent 2e459f1dd1
commit 59e1bcc8f7
18 changed files with 425 additions and 192 deletions

View File

@@ -7,7 +7,7 @@
<p><a href="{{.ActionBase}}">&larr; Werkzeugkatalog</a></p>
<h1>{{.Title}}</h1>
<p class="hinweis">
Jede Zusicherung hier (AVV, Verarbeitungsort, Training-Opt-out,
Jede Zusicherung hier (AVV, Verarbeitungsländer, Training-Opt-out,
Zertifizierungen) muss belegbar sein — Quelle und letzte Prüfung sind
Pflicht.
</p>
@@ -26,13 +26,13 @@
<input type="text" id="anbieter" name="anbieter" value="{{.Anbieter}}" required>
</div>
<div class="form-full">
<label>Verarbeitungsort</label>
{{$gewaehlt := .Verarbeitungsort}}
<div class="chip-group">
{{range .Verarbeitungsorte}}
<label><input type="radio" name="verarbeitungsort" value="{{.}}" {{if eq . $gewaehlt}}checked{{end}} required> {{.}}</label>
<label for="verarbeitungslaender">Verarbeitungsländer (Mehrfachauswahl: Strg/Cmd-Klick)</label>
<select id="verarbeitungslaender" name="verarbeitungslaender" multiple size="8" required>
{{range .LaenderOptionen}}
<option value="{{.}}" {{if index $.LaenderAusgewaehlt .}}selected{{end}}>{{.}}</option>
{{end}}
</div>
</select>
<p class="hinweis">Tatsächliche Länder benennen, nicht "EU"/"Drittland" — die USA sind DSGVO-rechtlich bereits ein Drittland wie jedes andere.</p>
</div>
</div>
</fieldset>
@@ -46,6 +46,7 @@
<label><input type="checkbox" name="avv_verfuegbar" {{if .AVVVerfuegbar}}checked{{end}}> AVV verfügbar</label>
<label><input type="checkbox" name="training_opt_out" {{if .TrainingOptOut}}checked{{end}}> Training-Opt-out möglich</label>
<label><input type="checkbox" name="training_standard" {{if .TrainingStandard}}checked{{end}}> Training standardmäßig aus</label>
<label><input type="checkbox" name="dpf_zertifiziert" {{if .DPFZertifiziert}}checked{{end}}> EU-US Data Privacy Framework (DPF) zertifiziert</label>
</div>
</div>
<div class="form-full">

View File

@@ -13,7 +13,7 @@
<table>
<thead>
<tr>
<th>Name</th><th>Anbieter</th><th>Verarbeitungsort</th><th>AVV</th>
<th>Name</th><th>Anbieter</th><th>Verarbeitungsländer</th><th>DPF</th><th>AVV</th>
<th>Training aus</th><th>Aufbewahrung</th><th>Zertifizierungen</th><th>Geeignete Zwecke</th>
<th>Zuletzt geprüft</th>
</tr>
@@ -23,7 +23,8 @@
<tr>
<td><a href="/betreiber/werkzeuge/{{.ID}}">{{.Name}}</a></td>
<td>{{.Anbieter}}</td>
<td>{{.Verarbeitungsort}}</td>
<td>{{.Verarbeitungslaender}}</td>
<td>{{if .DPFZertifiziert}}ja{{else}}nein{{end}}</td>
<td>{{if .AVVVerfuegbar}}ja{{else}}nein{{end}}</td>
<td>{{if .TrainingStandard}}ja{{else}}nein{{end}}</td>
<td>{{.Aufbewahrung}}</td>

View File

@@ -19,7 +19,7 @@
<table>
<thead>
<tr>
<th>Name</th><th>Anbieter</th><th>Verarbeitungsort</th><th>AVV</th>
<th>Name</th><th>Anbieter</th><th>Verarbeitungsländer</th><th>AVV</th>
<th>Training aus</th><th>Aufbewahrung</th><th>Geeignete Zwecke</th><th>Zuletzt geprüft</th><th>Status</th>
</tr>
</thead>
@@ -28,7 +28,7 @@
<tr>
<td>{{.Name}}</td>
<td>{{.Anbieter}}</td>
<td>{{.Verarbeitungsort}}</td>
<td>{{.Verarbeitungslaender}}</td>
<td>{{if .AVVVerfuegbar}}ja{{else}}nein{{end}}</td>
<td>{{if .TrainingStandard}}ja{{else}}nein{{end}}</td>
<td>{{.Aufbewahrung}}</td>
@@ -65,14 +65,14 @@
<div class="table-scroll">
<table>
<thead>
<tr><th>Name</th><th>Anbieter</th><th>Verarbeitungsort</th><th>Zuletzt geprüft</th></tr>
<tr><th>Name</th><th>Anbieter</th><th>Verarbeitungsländer</th><th>Zuletzt geprüft</th></tr>
</thead>
<tbody>
{{range .EigeneWerkzeuge}}
<tr>
<td><a href="/verwaltung/werkzeuge/{{.ID}}">{{.Name}}</a></td>
<td>{{.Anbieter}}</td>
<td>{{.Verarbeitungsort}}</td>
<td>{{.Verarbeitungslaender}}</td>
<td>{{.LetztePruefung}}</td>
</tr>
{{end}}