fix: DSFA must be matched before social_media in SECTION_TYPE_MAP

'Datenschutzfolgeabschätzung...Social Media' was matching as social_media
(Art. 26) instead of dsfa (Art. 35) because the social_media pattern
'datenschutz.*social media' matched first.

Fixed: DSFA patterns checked before social_media patterns.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Benjamin Admin
2026-05-07 11:35:10 +02:00
parent 4642abba23
commit 58234ac18b
@@ -259,12 +259,13 @@ def _run_checklist(text: str, doc_type: str, label: str, url: str, word_count: i
# Everything else (Social Media, Betroffenenrechte, Dienste von Drittanbietern) # Everything else (Social Media, Betroffenenrechte, Dienste von Drittanbietern)
# is part of the parent DSI and inherits its checks. # is part of the parent DSI and inherits its checks.
SECTION_TYPE_MAP = [ SECTION_TYPE_MAP = [
(r"^cookie", "cookie"), # Cookie-Richtlinie → §25 TDDDG (r"^cookie", "cookie"),
(r"widerrufsrecht|widerrufsbelehrung", "widerruf"), # Widerruf → §355 BGB (r"widerrufsrecht|widerrufsbelehrung", "widerruf"),
(r"^impressum$", "impressum"), # Impressum → §5 TMG (r"^impressum$", "impressum"),
(r"^(?:agb|allgemeine geschäftsbedingungen|nutzungsbedingungen)$", "agb"), (r"^(?:agb|allgemeine geschäftsbedingungen|nutzungsbedingungen)$", "agb"),
(r"datenschutzerkl.*social|datenschutz.*social\s*media", "social_media"), # DSFA MUST be checked BEFORE social_media (both can contain "Social Media")
(r"datenschutzfolge|dsfa|risikoanalyse.*social", "dsfa"), (r"datenschutzfolge|dsfa|risikoanalyse|risikobew(?:ae|ä)gung", "dsfa"),
(r"datenschutzerkl(?:ae|ä)rung.*social|datenschutz\s+f(?:ue|ü)r\s+social", "social_media"),
] ]