Commit Graph

5 Commits

Author SHA1 Message Date
Weapie
265ca8ac38 Improve accessibility and access controls; verify production and database recovery
All checks were successful
Container-Image bauen und veröffentlichen / build-and-push (push) Successful in 5m15s
2026-09-14 11:44:41 +02:00
Weapie
c951a4123a Sortierung nach Titel und haengendes Overlay beheben
All checks were successful
Container-Image bauen und veröffentlichen / build-and-push (push) Successful in 2m3s
Sortierung: Erklaerungen erscheinen im Admin wie im oeffentlichen
Bereich alphabetisch nach Titel. Bewusst in JavaScript statt ueber die
Datenbank - SQLite vergleicht binaer, dort landeten "Aenderungs-
mitteilung" und "Uebernahme" hinter "Zaehlerstandsablesung". Intl mit
deutscher Kollation sortiert Ae bei A. Gemeinsame Regel in
lib/policy-sort.ts, benutzt von der Server-Komponente, der API und der
Admin-Tabelle; die Spaltenkoepfe bleiben umschaltbar.

Overlay: @radix-ui/react-select verlangte react-dismissable-layer
1.1.11, alle anderen Radix-Pakete 1.1.19. Dieses Paket setzt und
entfernt pointer-events auf dem body und fuehrt dazu eine Liste offener
Layer im Modulzustand - bei zwei Kopien zwei getrennte Listen. Ein
Select im Dialog liess deshalb beim Schliessen das Overlay des Dialogs
verschwinden und pointer-events: none stehen. Die Seite war danach bis
zum Neuladen tot.

Belegt im Browser mit einer Wegwerfseite (Select im Dialog):
  zwei Versionen -> Dialog nach Select-Schliessen nicht mehr bedienbar,
                    body pointer-events bleibt "none"
  eine Version   -> body wieder leer, Seite klickbar

react-select, -label, -slot und -tabs auf aktuelle Versionen gehoben;
damit liegt jedes Radix-Kernpaket nur noch einmal im Baum.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-08 13:37:58 +02:00
Weapie
328a32a7f2 Geprüfte Fachrechts-Zitate korrigieren
Some checks failed
Container-Image bauen und veröffentlichen / build-and-push (push) Failing after 21s
Gegen den geltenden Normbestand geprüft und berichtigt:

- Landesbauordnung SH, neu gefasst zum 01.09.2022 und dabei umnummeriert.
  Bauvoranfrage § 61 -> § 75 (Vorbescheid), Befreiungs-/Abweichungsantrag
  § 61 -> § 67 LBO und § 31 BauGB, gemeindliches Einvernehmen § 61 ->
  § 36 BauGB und § 71 LBO. Beim Bauantrag § 68 ergänzt, § 64 bleibt.
- Wohnberechtigungsschein: benannte das Dokument statt der Norm,
  jetzt § 27 WoFG i. V. m. § 5 WoBindG.
- Bildung und Teilhabe: "BKKG" berichtigt zu § 6b BKGG, § 34 SGB XII
  präzisiert (drei Erklärungen).
- Ausschreibungsunterlagen: überholte VOL/A entfernt.
- Beihilfe, Mutterschutz und Arbeitsmedizin verarbeiten Gesundheitsdaten
  und haben zusätzlich Art. 9 Abs. 2 lit. b DSGVO erhalten.

Nicht angefasst, weil ohne belegte Fassung: nicht zitierfähige Satzungen,
die Anschlussbescheinigung, die Angelerlaubnis sowie alle fehlenden
Fristen, Zwecke und Datenkategorien.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-08 11:46:13 +02:00
Weapie
88a3eb1dcc Erklärungen aus der DSE-Gesamtliste neu aufbauen
All checks were successful
Container-Image bauen und veröffentlichen / build-and-push (push) Successful in 1m54s
Führende Quelle ist jetzt der Excel-Export des Amtes statt der einzelnen
Merkblatt-PDFs: 120 Zeilen, davon 4 bisher nicht erfasste Sozialamts-
Leistungen. Zuordnung über den Bezeichner, nicht den Titel – die aus PDF
gelesenen Titel unterscheiden sich in neun Fällen nur in Leerzeichen um
Schrägstriche und hätten Dubletten erzeugt.

Zwei Angaben stehen nicht in der Liste und werden ergänzt: der in allen
Merkblättern enthaltene Empfängersatz zur Finanzbuchhaltung (ohne ihn
hätten 27 Erklärungen gar keine Empfängerangabe) und die Bezeichnung der
Verarbeitungstätigkeit aus den Organisationsspalten.

Die zehn Bausteine folgen durchgehend den zentralen Standardtexten;
gespeichert wird nur die eine echte Abweichung: die gemeinsame
Verantwortlichkeit mit dem ZIT SH beim Online-Wohngeldantrag.

Alle 121 Erklärungen bleiben unveröffentlicht – drei Standardtexte
(Widerspruchsrecht, Drittlandübermittlung, automatisierte Entscheidungen)
sind noch nicht gepflegt und ohne sie ist keine vollständig.

Die Quellliste selbst bleibt unversioniert: Sie führt Namen von
Beschäftigten, die nicht in die Erklärungen übernommen werden.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-08 09:12:26 +02:00
Weapie
328f042307 Syncova Policies: Portal für DSGVO-Datenschutzerklärungen
Next.js 15 App Router mit öffentlicher Übersicht und geschütztem
Admin-Bereich zur Pflege von Datenschutzerklärungen nach Art. 12ff. DSGVO.

- Oberfläche auf Basis von shadcn/ui, Inter lokal eingebunden
- Prisma/SQLite, Auth.js mit Credentials-Provider und Rollen
- Massenimport der Merkblätter des Amtes Leezen aus PDF
- Docker-Image (standalone) und Gitea-Workflow zur Veröffentlichung

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-07 16:23:51 +02:00