""" BreakPilot Studio - Modulare Frontend-Architektur Diese Datei ist der zentrale Einstiegspunkt fuer das Studio-Frontend. Sie laedt alle Module und kombiniert sie zu einer vollstaendigen Seite. Architektur: - Jedes Modul (base, jitsi, letters, worksheets, correction) liefert CSS, HTML und JS - Diese werden hier zusammengefuegt - Das Ergebnis ist eine vollstaendige HTML-Seite Module: - BaseLayoutModule: TopBar, Sidebar, Footer, Theme Toggle, Login - JitsiModule: Videokonferenzen (Elterngespraeche, Schulungen) - LettersModule: Elternbriefe mit rechtssicherer Sprache - WorksheetsModule: Lerneinheiten und Arbeitsblaetter - CorrectionModule: Klausurkorrektur mit OCR und AI """ from .modules import ( BaseLayoutModule, DashboardModule, JitsiModule, LettersModule, WorksheetsModule, CorrectionModule, MessengerModule, SchoolModule, ContentCreatorModule, ContentFeedModule, KlausurKorrekturModule, AbiturDocsAdminModule, RbacAdminModule, MailInboxModule, # SecurityModule entfernt - jetzt in /dev-admin verfuegbar ) def get_studio_html() -> str: """ Generiert die vollstaendige Studio-HTML-Seite aus allen Modulen. Returns: str: Vollstaendige HTML-Seite mit allen Modulen """ # CSS von allen Modulen sammeln all_css = "\n".join([ BaseLayoutModule.get_css(), DashboardModule.get_css(), JitsiModule.get_css(), LettersModule.get_css(), WorksheetsModule.get_css(), CorrectionModule.get_css(), MessengerModule.get_css(), SchoolModule.get_css(), ContentCreatorModule.get_css(), ContentFeedModule.get_css(), KlausurKorrekturModule.get_css(), AbiturDocsAdminModule.get_css(), RbacAdminModule.get_css(), MailInboxModule.get_css(), # SecurityModule entfernt - jetzt in /dev-admin ]) # HTML von allen Modulen sammeln (Dashboard zuerst!) all_module_html = "\n".join([ DashboardModule.get_html(), JitsiModule.get_html(), LettersModule.get_html(), WorksheetsModule.get_html(), CorrectionModule.get_html(), MessengerModule.get_html(), SchoolModule.get_html(), ContentCreatorModule.get_html(), ContentFeedModule.get_html(), KlausurKorrekturModule.get_html(), AbiturDocsAdminModule.get_html(), RbacAdminModule.get_html(), MailInboxModule.get_html(), # SecurityModule entfernt - jetzt in /dev-admin ]) # JavaScript von allen Modulen sammeln all_js = "\n".join([ BaseLayoutModule.get_js(), DashboardModule.get_js(), JitsiModule.get_js(), LettersModule.get_js(), WorksheetsModule.get_js(), CorrectionModule.get_js(), MessengerModule.get_js(), SchoolModule.get_js(), ContentCreatorModule.get_js(), ContentFeedModule.get_js(), KlausurKorrekturModule.get_js(), AbiturDocsAdminModule.get_js(), RbacAdminModule.get_js(), MailInboxModule.get_js(), # SecurityModule entfernt - jetzt in /dev-admin ]) # Base HTML Struktur mit allen eingefuegten Modulen base_html = BaseLayoutModule.get_html() # Module HTML in den main-content Bereich einfuegen # Suche nach dem Platzhalter und ersetze ihn if "" in base_html: base_html = base_html.replace("", all_module_html) else: # Fallback: Fuege Module vor dem schliessenden main-content ein base_html = base_html.replace( "", f"{all_module_html}\n " ) # Vollstaendige HTML-Seite zusammenbauen html = f""" BreakPilot Studio {base_html} """ return html def get_studio_page(): """ Kompatibilitaets-Wrapper fuer bestehende API. Returns: str: Vollstaendige HTML-Seite """ return get_studio_html() # Fuer direkten Import studio_html = get_studio_html