diff --git a/app.py b/app.py index 05c3881..55871c4 100644 --- a/app.py +++ b/app.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -"""IT-Hilfe-Sofort.de — Flask-Webapp für IT-Dienstleistungen im Gesundheitswesen.""" +"""IT-Hilfe-Sofort.de — Flask-Webapp fuer IT-Dienstleistungen im Gesundheitswesen.""" import os import re @@ -24,6 +24,25 @@ def _base_template(title: str, content: str, active: str = "") -> str: Returns: Vollstaendiges HTML-Dokument als String. """ + # Kontakt-Banner (auf jeder Seite) + kontakt_banner = """ +
+
+
+

Bereit fuer die digitale Zukunft?

+

Kostenlose Erstberatung — wir finden die passende IT-Loesung fuer Ihre Einrichtung.

+
+ Jetzt Beratungsgespraech vereinbaren +
+
""" + + # Footer mit §400-Hinweis + footer_vermittlung = """ +

+ * Wir vermitteln IT-Dienstleistungen und -Produkte. Es faellt eine Vermittlungsgebuehr + gemaess § 400 BGB an — diese fuehrt nicht zu hoeheren Preisen fuer Sie. +

""" + return f""" @@ -32,49 +51,95 @@ def _base_template(title: str, content: str, active: str = "") -> str: {title} | IT-Hilfe-Sofort.de
{content}
+ {kontakt_banner} """ @@ -85,27 +150,56 @@ def index() -> str: """Startseite.""" content = """
-

IT-Hilfefür das Gesundheitswesen

-

Sicher, schnell, spezialisiert auf Pflegeinrichtungen.

-

Beratungsgespräch vereinbaren

+

IT-Hilfe fuer das Gesundheitswesen

+

Sicher, schnell, spezialisiert auf Pflegeeinrichtungen — mit persoenlicher Beratung und massgeschneiderten Loesungen.

+ Kostenloses Beratungsgespraech
-

Unsere Werte

+

Warum IT-Hilfe-Sofort?

+

Wir verstehen die besonderen Anforderungen im Gesundheitswesen und liefern passgenaue IT-Loesungen.

-

DSGVO-konform

Ihre Patientendaten in sicheren Händen — mit lückenloser Dokumentation und zertifizierten Prozessen.

-

24/7 Support

Wir sind da, wenn Sie uns brauchen — mit garantierter Reaktionszeit und persönlichem Ansprechpartner.

-

Förderfähig

KfW-Anträge stellen wir gemeinsam — digitale Infrastruktur ohne finanzielle Hürden.

+
+

DSGVO-konform

+

Patientendaten in absolut sicheren Haenden — mit zertifizierten Prozessen und Hosting in Deutschland.

+
+
+

Schnelle Reaktion

+

Garantierte Reaktionszeiten mit persoenlichem Ansprechpartner — weil im Gesundheitswesen jede Minute zaehlt.

+
+
+

Foerderfaehig

+

KfW-Antraege stellen wir gemeinsam — digitale Infrastruktur ohne finanzielle Huerden.

+

Unsere Leistungen

+

Vom Pflegedienst bis zur Tagespflege — wir haben die passende IT-Loesung.

-

Pflegedienste

Tourenplanung, mobile Datenerfassung, Abrechnung.

-

Pflegeheime

Heimverwaltung, Biometrie, Dokumentation.

-

Tagespflegen

Terminbuchung, Fahrdienst, Aktivierungsangebote.

-

Hardware

Server, Thin Clients, Drucker — Beschaftung & Einrichtung.

-

Netzwerk

WLAN-Ausleuchtung, VPN, Firewall, Netzwerksegmentierung.

-

Support

SLA-Stufen, Fernwartung, Monitoring — maßgeschneidert.

+
+

Pflegedienste

+

Tourenplanung, mobile Datenerfassung und Abrechnung aus einer Hand.

+
+
+

Pflegeheime

+

Heimverwaltung, Biometrie und digitale Dokumentationssysteme.

+
+
+

Tagespflegen

+

Terminbuchung, Fahrdienst und Aktivierungsangebote digital organisiert.

+
+
+

Hardware

+

Server, Thin Clients und Drucker — Beschaffung, Einrichtung und Wartung.

+
+
+

Netzwerk

+

WLAN-Ausleuchtung, VPN, Firewall und Netzwerksegmentierung.

+
+
+

IT-Support

+

SLA-Stufen, Fernwartung und 24/7-Monitoring — massgeschneidert.

+
""" @@ -121,121 +215,37 @@ def impressum() -> str: @app.route("/datenschutz") def datenschutz() -> str: - """Datenschutzerklärung.""" - content = '

Datenschutzerklärung

Platzhalter — vollständige Datenschutzerklärung folgt.

' + """Datenschutzerklaerung.""" + content = '

Datenschutzerklaerung

Platzhalter — vollstaendige Datenschutzerklaerung folgt.

' return _base_template("Datenschutz", content) # ── Blog-Artikel-Datenbank ─────────────────────────────── _ARTIKEL = [ - ( - "/blog/telematik-vorschriften", - "TI-Anschlusspflicht 2025", - "artikel-01-ti-anschlusspflicht.html", - ), - ( - "/blog/telematik-vorschriften", - "Elektronische Abrechnung ab 12/2026", - "artikel-02-elektronische-abrechnung.html", - ), - ( - "/blog/telematik-vorschriften", - "SMC-B-Karte — 33% Abdeckung", - "artikel-03-smc-b-karte.html", - ), - ( - "/blog/dsgvo-it-sicherheit", - "46,9 Mio. EUR DSGVO-Bugelder", - "artikel-04-dsgvo-bussgelder.html", - ), - ( - "/blog/dsgvo-it-sicherheit", - "BSI: 16 Schwachstellen Pflegesoftware", - "artikel-05-bsi-schwachstellen.html", - ), - ( - "/blog/dsgvo-it-sicherheit", - "138 Sicherheitsvorfaelle Gesundheitswesen", - "artikel-06-sicherheitsvorfaelle.html", - ), - ( - "/blog/telematik-vorschriften", - "NIS-2 Registrierungsfrist", - "artikel-07-nis2.html", - ), - ( - "/blog/fachkraeftemangel", - "200.000 unbesetzte Pflegestellen", - "artikel-08-fachkraeftemangel.html", - ), - ( - "/blog/fachkraeftemangel", - "62% Altenpflege — Personalplanung", - "artikel-09-personalplanung.html", - ), - ( - "/blog/fachkraeftemangel", - "KI-Sprachassistent spart 27% Zeit", - "artikel-10-ki-sprachassistent.html", - ), - ( - "/blog/foerderung-finanzierung", - "Bis 12.000 EUR Digitalisierungszuschuss", - "artikel-11-digitalisierungszuschuss.html", - ), - ( - "/blog/foerderung-finanzierung", - "DiPA — 70 EUR monatlich ab 2026", - "artikel-12-dipa.html", - ), - ( - "/blog/foerderung-finanzierung", - "Pflegeversicherung 1 Mrd. Defizit", - "artikel-13-pflegeversicherung.html", - ), - ( - "/blog/qualitaet-pruefung", - "QPR ambulant ab Juli 2026", - "artikel-14-qpr-ambulant.html", - ), - ( - "/blog/qualitaet-pruefung", - "PeBeM verpflichtend ab 2026", - "artikel-15-pebem.html", - ), - ( - "/blog/qualitaet-pruefung", - "MDK-Pruefung digital bestehen", - "artikel-16-mdk-pruefung.html", - ), + ("/blog/telematik-vorschriften", "TI-Anschlusspflicht 2025", "artikel-01-ti-anschlusspflicht.html"), + ("/blog/telematik-vorschriften", "Elektronische Abrechnung ab 12/2026", "artikel-02-elektronische-abrechnung.html"), + ("/blog/telematik-vorschriften", "SMC-B-Karte — 33% Abdeckung", "artikel-03-smc-b-karte.html"), + ("/blog/dsgvo-it-sicherheit", "46,9 Mio. EUR DSGVO-Bussgelder", "artikel-04-dsgvo-bussgelder.html"), + ("/blog/dsgvo-it-sicherheit", "BSI: 16 Schwachstellen Pflegesoftware", "artikel-05-bsi-schwachstellen.html"), + ("/blog/dsgvo-it-sicherheit", "138 Sicherheitsvorfaelle Gesundheitswesen", "artikel-06-sicherheitsvorfaelle.html"), + ("/blog/telematik-vorschriften", "NIS-2 Registrierungsfrist", "artikel-07-nis2.html"), + ("/blog/fachkraeftemangel", "200.000 unbesetzte Pflegestellen", "artikel-08-fachkraeftemangel.html"), + ("/blog/fachkraeftemangel", "62% Altenpflege — Personalplanung", "artikel-09-personalplanung.html"), + ("/blog/fachkraeftemangel", "KI-Sprachassistent spart 27% Zeit", "artikel-10-ki-sprachassistent.html"), + ("/blog/foerderung-finanzierung", "Bis 12.000 EUR Digitalisierungszuschuss", "artikel-11-digitalisierungszuschuss.html"), + ("/blog/foerderung-finanzierung", "DiPA — 70 EUR monatlich ab 2026", "artikel-12-dipa.html"), + ("/blog/foerderung-finanzierung", "Pflegeversicherung 1 Mrd. Defizit", "artikel-13-pflegeversicherung.html"), + ("/blog/qualitaet-pruefung", "QPR ambulant ab Juli 2026", "artikel-14-qpr-ambulant.html"), + ("/blog/qualitaet-pruefung", "PeBeM verpflichtend ab 2026", "artikel-15-pebem.html"), + ("/blog/qualitaet-pruefung", "MDK-Pruefung digital bestehen", "artikel-16-mdk-pruefung.html"), ("/blog/telematik-vorschriften", "ePA fuer alle — Opt-out", "artikel-17-epa.html"), - ( - "/blog/dsgvo-it-sicherheit", - "Cloud-Hosting Deutschland", - "artikel-18-cloud-hosting.html", - ), - ( - "/blog/praxis-tipps", - "Tablets fuer die Pflege — Top 5", - "artikel-19-tablets.html", - ), + ("/blog/dsgvo-it-sicherheit", "Cloud-Hosting Deutschland", "artikel-18-cloud-hosting.html"), + ("/blog/praxis-tipps", "Tablets fuer die Pflege — Top 5", "artikel-19-tablets.html"), ("/blog/praxis-tipps", "WLAN im Pflegeheim", "artikel-20-wlan.html"), ("/blog/praxis-tipps", "Offline-Dokumentation", "artikel-21-offline.html"), - ( - "/blog/dsgvo-it-sicherheit", - "E-Mail-Verschluesselung", - "artikel-22-email-verschluesselung.html", - ), - ( - "/blog/praxis-tipps", - "Medikationsplan digital", - "artikel-23-medikationsplan.html", - ), - ( - "/blog/praxis-tipps", - "IT-Notfallplan 10-Punkte", - "artikel-24-it-notfallplan.html", - ), + ("/blog/dsgvo-it-sicherheit", "E-Mail-Verschluesselung", "artikel-22-email-verschluesselung.html"), + ("/blog/praxis-tipps", "Medikationsplan digital", "artikel-23-medikationsplan.html"), + ("/blog/praxis-tipps", "IT-Notfallplan 10-Punkte", "artikel-24-it-notfallplan.html"), ] # ── Leistungen-Daten ───────────────────────────────────── @@ -243,52 +253,25 @@ _LEISTUNGEN = { "pflegedienste": { "titel": "IT-Loesungen fuer ambulante Pflegedienste", "cards": [ - ( - "Tourenplanung", - "Digitale Tourenplanung und mobile Datenerfassung vor Ort. Effizientere Routen und Dokumentation auf dem Tablet.", - ), - ( - "Mobile Dokumentation", - "Echtzeit-Dokumentation von Pflegemaßnahmen direkt im Einsatz. Synchronisiert mit der zentralen Verwaltung.", - ), - ( - "Abrechnung und Reporting", - "Automatisierte Abrechnung und Auswertungen. Weniger Verwaltungszeit, mehr Zeit fuer Patienten.", - ), + ("Tourenplanung", "Digitale Tourenplanung und mobile Datenerfassung vor Ort. Effizientere Routen und Dokumentation auf dem Tablet."), + ("Mobile Dokumentation", "Echtzeit-Dokumentation von Pflegemassnahmen direkt im Einsatz. Synchronisiert mit der zentralen Verwaltung."), + ("Abrechnung und Reporting", "Automatisierte Abrechnung und Auswertungen. Weniger Verwaltungszeit, mehr Zeit fuer Patienten."), ], }, "pflegeheime": { "titel": "IT-Loesungen fuer stationaere Pflegeheime", "cards": [ - ( - "Heimverwaltung", - "Digitale Heimpleitung: Dienstplanung, Raummanagement, Budget-Controller. Alles in einer Plattform.", - ), - ( - "Biometrie und Zutrittssysteme", - "Fingerabdruck- und Gesichtserkennung fuer sicheren Zutritt. DSGVO-konform und benutzerfreundlich.", - ), - ( - "Dokumentationssysteme", - "Komplette digitale Dokumentation von Pflegeplanung bis Medikationsueberwachung. Vollstaendig auditfahig.", - ), + ("Heimverwaltung", "Digitale Heimpleitung: Dienstplanung, Raummanagement, Budget-Controller. Alles in einer Plattform."), + ("Biometrie und Zutrittssysteme", "Fingerabdruck- und Gesichtserkennung fuer sicheren Zutritt. DSGVO-konform und benutzerfreundlich."), + ("Dokumentationssysteme", "Komplette digitale Dokumentation von Pflegeplanung bis Medikationsueberwachung. Vollstaendig auditfaehig."), ], }, "tagespflegen": { "titel": "IT-Loesungen fuer Tagespflegen", "cards": [ - ( - "Terminbuchung", - "Online-Terminbuchung mit Kalendersynchronisation. Patienten koennen Termine direkt vereinbaren.", - ), - ( - "Fahrdienstverwaltung", - "Organisation von Fahrdiensten und Kurieren. Automatische Zuweisung und Echtzeit-Tracking.", - ), - ( - "Aktivierungsangebote", - "Digitales Planungs- und Monitoring-System fuer Aktivitaeten und Therapie-Programme im Tagesverlauf.", - ), + ("Terminbuchung", "Online-Terminbuchung mit Kalendersynchronisation. Patienten koennen Termine direkt vereinbaren."), + ("Fahrdienstverwaltung", "Organisation von Fahrdiensten und Kurieren. Automatische Zuweisung und Echtzeit-Tracking."), + ("Aktivierungsangebote", "Digitales Planungs- und Monitoring-System fuer Aktivitaeten und Therapie-Programme im Tagesverlauf."), ], }, } @@ -298,81 +281,36 @@ _IT_SERVICE = { "hardware": { "titel": "IT-Hardware fuer das Gesundheitswesen", "cards": [ - ( - "Server und Workstations", - "Auswahl, Installation und Wartung von Servern und Workstations. DSGVO-konform und skalierbar.", - ), - ( - "Thin Clients und Endgeraete", - "Kosteneffiziente Thin Clients mit zentralem Management. Einfache Administration, hohe Sicherheit.", - ), - ( - "Drucker und Peripherie", - "Medizinische Geraete und Drucker mit Spezialtreibern. Integration in bestehende Netzwerke.", - ), - ( - "Beschaffung und Consulting", - "Unabhaengige Beratung zur Hardware-Auswahl. Gutes Preis-Leistungs-Verhaeltnis garantiert.", - ), + ("Server und Workstations", "Auswahl, Installation und Wartung von Servern und Workstations. DSGVO-konform und skalierbar."), + ("Thin Clients und Endgeraete", "Kosteneffiziente Thin Clients mit zentralem Management. Einfache Administration, hohe Sicherheit."), + ("Drucker und Peripherie", "Medizinische Geraete und Drucker mit Spezialtreibern. Integration in bestehende Netzwerke."), + ("Beschaffung und Consulting", "Unabhaengige Beratung zur Hardware-Auswahl. Gutes Preis-Leistungs-Verhaeltnis garantiert."), ], }, "netzwerk": { "titel": "IT-Netzwerk fuer Pflegeeinrichtungen", "cards": [ - ( - "WLAN-Ausleuchtung", - "Professionelle WLAN-Planung und -Implementierung fuer komplette Einrichtungen. Lueckenlose Abdeckung.", - ), - ( - "VPN und Remote-Zugang", - "Verschluesselte Verbindung fuer mobiles Arbeiten. Sichere Fernwartung und Fernadministration.", - ), - ( - "Firewall und Segmentierung", - "Zwei-Wege-Firewall mit medizinischen Geraete-Portabilitaet. Trennung von Betriebs- und Pflegedaten.", - ), - ( - "Netzwerkmonitoring", - "24/7 Ueberwachung aller Netzwerk-Komponenten. Proaktive Stoerungserkennung und automatische Eskalation.", - ), + ("WLAN-Ausleuchtung", "Professionelle WLAN-Planung und -Implementierung fuer komplette Einrichtungen. Lueckenlose Abdeckung."), + ("VPN und Remote-Zugang", "Verschluesselte Verbindung fuer mobiles Arbeiten. Sichere Fernwartung und Fernadministration."), + ("Firewall und Segmentierung", "Zwei-Wege-Firewall mit medizinischen Geraete-Portabilitaet. Trennung von Betriebs- und Pflegedaten."), + ("Netzwerkmonitoring", "24/7 Ueberwachung aller Netzwerk-Komponenten. Proaktive Stoerungserkennung und automatische Eskalation."), ], }, "email-kommunikation": { "titel": "E-Mail und Kommunikation", "cards": [ - ( - "Microsoft 365", - "Vollstaendige Implementierung und Verwaltung von Microsoft 365. Cloud-Hosting in Deutschland verfuegbar.", - ), - ( - "Exchange und VoIP", - "E-Mail-Server mit Exchange-Integration und VoIP-Telefonie. Nahtlose Kommunikation aller Abteilungen.", - ), - ( - "Spam-Schutz und Archivierung", - "Mehrschichtiger Spam-Schutz und automatische Archivierung fuer Compliance und Aufbewahrungspflichten.", - ), + ("Microsoft 365", "Vollstaendige Implementierung und Verwaltung von Microsoft 365. Cloud-Hosting in Deutschland verfuegbar."), + ("Exchange und VoIP", "E-Mail-Server mit Exchange-Integration und VoIP-Telefonie. Nahtlose Kommunikation aller Abteilungen."), + ("Spam-Schutz und Archivierung", "Mehrschichtiger Spam-Schutz und automatische Archivierung fuer Compliance und Aufbewahrungspflichten."), ], }, "support-wartung": { "titel": "IT-Support und Wartung", "cards": [ - ( - "SLA-Stufen", - "Flexible Service-Level-Agreements: von Standard bis Mission-Critical. Garantierte Reaktionszeiten fuer alle Stoerungen.", - ), - ( - "Reaktionszeiten", - "Erste Antwort innerhalb von 30 Minuten. Vollstaendige Loesung innerhalb von 4 Stunden bei schwerwiegenden Problemen.", - ), - ( - "Fernwartung und Hosting", - "Sichere Fernwartung mit Echtzeit-Desktop-Zugriff. DSGVO-konforme Hostung aller Systeme.", - ), - ( - "Monitoring und Wartung", - "Automatisiertes Monitoring aller IT-Komponenten. Regelmassige Sicherheitsupdates und Wartung in Einweisungszeiten.", - ), + ("SLA-Stufen", "Flexible Service-Level-Agreements: von Standard bis Mission-Critical. Garantierte Reaktionszeiten fuer alle Stoerungen."), + ("Reaktionszeiten", "Erste Antwort innerhalb von 30 Minuten. Vollstaendige Loesung innerhalb von 4 Stunden bei schwerwiegenden Problemen."), + ("Fernwartung und Hosting", "Sichere Fernwartung mit Echtzeit-Desktop-Zugriff. DSGVO-konforme Hostung aller Systeme."), + ("Monitoring und Wartung", "Automatisiertes Monitoring aller IT-Komponenten. Regelmaessige Sicherheitsupdates und Wartung in Einweisungszeiten."), ], }, } @@ -389,7 +327,7 @@ def _sidebar(routes: list[tuple[str, str, str]]) -> str: for route, titel, _datei in routes: links.append('' + titel + "") return ( - "
" + "
" + "".join(links) + "
" ) @@ -397,22 +335,64 @@ def _sidebar(routes: list[tuple[str, str, str]]) -> str: # ── Helper: Karten bauen ───────────────────────────────── def _cards(titel: str, beschreibung: str) -> str: - """Erstelle eine Service-Karte. - - Args: - titel: Titel der Karte. - beschreibung: Beschreibungstext. - """ + """Erstelle eine Service-Karte.""" return '

' + titel + "

" + beschreibung + "

" +# ── Blog-Route (FIX: Nutzt _ARTIKEL-Mapping) ───────────── +@app.route("/blog/") +def blog(slug: str) -> str: + """Blog-Artikel — nutzt _ARTIKEL-Mapping fuer korrekte Dateinamen.""" + route_key = "/blog/" + slug + + # Finde ALLE Artikel dieser Sektion + sektions_artikel = [(r, t, d) for r, t, d in _ARTIKEL if r == route_key] + + if sektions_artikel: + # Ersten Artikel als Hauptinhalt laden + _, haupt_titel, datei = sektions_artikel[0] + pfad = ARTIKEL_DIR / datei + if pfad.exists(): + inhalt = pfad.read_text(encoding="utf-8") + match = re.search(r"]*>(.*?)", inhalt, re.DOTALL | re.IGNORECASE) + inhalt = match.group(1) if match else inhalt + else: + inhalt = "

Artikeltext folgt in Kuerze.

" + else: + inhalt = "

Artikel nicht gefunden.

" + sektions_artikel = _ARTIKEL + haupt_titel = slug.replace("-", " ").title() + + # Seitenleiste: alle Artikel dieser Sektion + sidebar = _sidebar(sektions_artikel) + + content = ( + "

" + + haupt_titel + + "

" + + inhalt + + "
" + + sidebar + + "
" + ) + return _base_template("Blog: " + haupt_titel, content, active="blog") + + # ── Weitere Routen ─────────────────────────────────────── - - @app.route("/ueber-uns") def ueber_uns() -> str: """Ueber uns.""" - content = '

Ueber uns

Daniel Krause ist IT-Berater im Gesundheitswesen. Werte: Transparenz, Schnelligkeit, DSGVO-Compliance.

' + content = ( + '
' + "

Ueber uns

" + "

Daniel Krause ist IT-Berater im Gesundheitswesen mit langjaehriger Erfahrung in der Digitalisierung von Pflegeeinrichtungen.

" + "

Unsere Werte

" + '
' + '

Transparenz

Klare Kommunikation und faire Preise — keine versteckten Kosten.

' + '

Schnelligkeit

Reaktionszeit unter 30 Minuten — weil im Gesundheitswesen Zeit zaehlt.

' + '

DSGVO-Compliance

Hosting in Deutschland, Ende-zu-Ende-Verschluesselung und regelmaessige Audits.

' + "
" + ) return _base_template("Ueber uns", content) @@ -424,10 +404,11 @@ def kontakt() -> str: "

Kontakt

" '
' '
' - "

Wir beraten Sie gerne persoenlich. Sprechen Sie uns an!

" - "

E-Mail: info@it-hilfe-sofort.de

" + "

Wir beraten Sie gerne persoenlich

" + "

Sprechen Sie uns an — wir finden die passende IT-Loesung fuer Ihre Einrichtung.

" + '

E-Mail: info@it-hilfe-sofort.de

' "
" - '
' + '
' '' "
" "
" @@ -441,72 +422,23 @@ def faq() -> str: fragen: list[tuple[str, str]] = [ ("Wie schnell sind Sie vor Ort?", "Innerhalb von 24—48 Stunden."), ("Was kostet der IT-Support?", "Ab 29 EUR/Monat pro Geraet."), - ( - "Uebernehmen Sie die komplette IT?", - "Ja, von der Installation bis zum Monitoring.", - ), - ( - "Wie stellen Sie DSGVO-Compliance sicher?", - "Hosting in Deutschland, Verschlusselung, Zugangskontrollen.", - ), - ( - "Bieten Sie auch Schulungen an?", - "Ja, fuer alle Mitarbeiter Ihrer Einrichtung.", - ), - ( - "Wie laeuft der Onboarding ab?", - "Kostenlose Erstberatung, dann Umsetzung in 2—4 Wochen.", - ), - ( - "Koennen Sie auf bestehende Systeme aufsetzen?", - "Ja, wir arbeiten mit allen gaeingen Pflegesoftwaren.", - ), - ( - "Gibt es einen Notfallservice?", - "Ja, 24/7 Notfallservice fuer kritische Stoerungen.", - ), + ("Uebernehmen Sie die komplette IT?", "Ja, von der Installation bis zum 24/7-Monitoring."), + ("Wie stellen Sie DSGVO-Compliance sicher?", "Hosting in Deutschland, Verschluesselung, Zugangskontrollen und regelmaessige Audits."), + ("Bieten Sie auch Schulungen an?", "Ja, fuer alle Mitarbeiter Ihrer Einrichtung — vor Ort oder remote."), + ("Wie laeuft das Onboarding ab?", "Kostenlose Erstberatung, dann Umsetzung in 2—4 Wochen."), + ("Koennen Sie auf bestehende Systeme aufsetzen?", "Ja, wir arbeiten mit allen gaengigen Pflegesoftwaren."), + ("Gibt es einen Notfallservice?", "Ja, 24/7 Notfallservice fuer kritische Stoerungen."), ] fragen_html_parts: list[str] = [] for f, t in fragen: fragen_html_parts.append( - "
" - + f - + "
" - + t - + "
" + "
" + f + "
" + t + "
" ) fragen_html = "".join(fragen_html_parts) - content = "

Haeufige Fragen

" + fragen_html + "
" + content = "

Haeufige Fragen

Hier finden Sie Antworten auf die haeufigsten Fragen. Falls Ihre Frage nicht dabei ist — kontaktieren Sie uns direkt.

" + fragen_html + "
" return _base_template("FAQ", content) -@app.route("/blog/") -def blog(slug: str) -> str: - """Blog-Artikel.""" - datei = "artikel-" + slug + ".html" - pfad = ARTIKEL_DIR / datei - if pfad.exists(): - inhalt = pfad.read_text(encoding="utf-8") - # Extrahiere Body-Inhalt aus dem Artikel-HTML - match = re.search(r"]*>(.*?)", inhalt, re.DOTALL | re.IGNORECASE) - inhalt = match.group(1) if match else inhalt - else: - inhalt = "

Artikel nicht gefunden.

" - titel = slug.replace("-", " ").title() - content = ( - "
" + inhalt + "
" - ) - # Seitenleiste: alle anderen Artikel derselben Sektion - sektion_routen = [ - (r, t, d) for r, t, d in _ARTIKEL if r == "/blog/" + slug.replace("-", "") - ] - if not sektion_routen: - sektion_routen = _ARTIKEL - sidebar = _sidebar(sektion_routen) - content += sidebar + "
" - return _base_template("Blog: " + titel, content, active="blog") - - @app.route("/leistungen/") def leistungen(slug: str) -> str: """Leistungs-Seite.""" @@ -515,14 +447,8 @@ def leistungen(slug: str) -> str: content = "

Leistung nicht gefunden

" return _base_template("Leistungen", content) cards_items = [_cards(titel, beschreibung) for titel, beschreibung in data["cards"]] - cards_all = ( - '
' - + "".join(cards_items) - + "
" - ) - content = ( - "

" + data["titel"] + "

" + cards_all + "
" - ) + cards_all = '
' + "".join(cards_items) + "
" + content = "

" + data["titel"] + "

Massgeschneiderte IT-Loesungen fuer Ihre Einrichtung.

" + cards_all + "
" return _base_template(data["titel"], content, active="leistungen") @@ -534,14 +460,8 @@ def it_service(slug: str) -> str: content = "

Service nicht gefunden

" return _base_template("IT-Service", content) cards_items = [_cards(titel, beschreibung) for titel, beschreibung in data["cards"]] - cards_all = ( - '
' - + "".join(cards_items) - + "
" - ) - content = ( - "

" + data["titel"] + "

" + cards_all + "
" - ) + cards_all = '
' + "".join(cards_items) + "
" + content = "

" + data["titel"] + "

Professionelle IT-Infrastruktur aus einer Hand.

" + cards_all + "
" return _base_template(data["titel"], content, active="it-service")