HEX
Server: LiteSpeed
System: Linux houston.panomity.com 6.8.0-100-generic #100-Ubuntu SMP PREEMPT_DYNAMIC Tue Jan 13 16:40:06 UTC 2026 x86_64
User: nudepix (1011)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //opt/kw-schueler.bak.21032025/app.py
import streamlit as st
import logging
st.set_page_config(
    page_title="klausurenweb.de",
    page_icon="./kwstatic/images/favicon.ico",  # Temporäres Icon, kann durch eigenes Favicon ersetzt werden
    layout="wide"
)
from aaw.mysession import session
from aaw.pages import (homepage, upload_image, feedback, input_text, input_type, modify_text, privacy, imprint, teacher_admin, school_admin, PAGES)
from aaw.utils import create_dataset

# Create dataset folder
create_dataset()

# Configure logging
logging.basicConfig(
    filename='/opt/klausurenweb-schueler/aaw/app.log',  # Specify the log file path
    level=logging.DEBUG,  # Set to DEBUG to capture all levels of logs
    format='%(asctime)s - %(levelname)s - %(message)s'
)

# Set up session variables for page navigation and data storage
session.update('page_map', dict(
    home=homepage,
    upload_image=upload_image,
    feedback=feedback,
    input_text=input_text,
    input_type=input_type,
    modify_text=modify_text,
    privacy=privacy,
    imprint=imprint,
    teacher_admin=teacher_admin,
    school_admin=school_admin,
))

# Initialize session variables with default values
# These variables will only be initialized when a new session starts (e.g., when the user refreshes the page)
session.init('page_widgets', dict())
session.init('current_page', "home")
session.init('feedback', None)
session.init('title', None)
session.init("user_args", dict())
session.init("input_type", None)
session.init("new_feedback", True)

# Initialisiere lehrer-spezifische Sitzungsvariablen für persistente Anmeldung
session.init("teacher_logged_in", False)
session.init("teacher_id", None)
session.init("teacher_school", None)
session.init("teacher_name", None)
session.init("admin_view", "login")  # Standardansicht für den Admin-Bereich

# Stelle URL-Parameter basierend auf Session-Daten wieder her
# Dies ermöglicht die Wiederherstellung der Login-Informationen nach einem Refresh
session.restore_query_params()

# Prüfe, ob ein Reset-Token in der URL vorhanden ist
reset_token = st.query_params.get('reset_token', None)
if reset_token:
    # Speichere das Token in der Session
    st.session_state['reset_token'] = reset_token
    # Entferne das Token aus der URL
    st.query_params.clear()
    # Leite zur Lehrkräfte-Administrationsseite weiter
    session.update('current_page', "teacher_admin")
    st.rerun()

# Perform post-processing for each page in PAGES
for page in PAGES:
    page.__post_process__(session)

# Render the current page using the session manager's render method
# Die render-Methode verwendet bereits den page_map um die richtige Seite anzuzeigen
session.render()

# url = "https://peer.edu.sot.tum.de/"
#
# st.title("👋 Wir sind umgezogen!")
# st.header("PEER läuft jetzt unter " + url + "! :)")