File: //opt/kw-schueler.bak.21032025/app.py.bak
import streamlit as st
import logging
st.set_page_config(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 + "! :)")
# Schaltzentrale der App
current_page = session.get('current_page')
if current_page == 'upload':
upload_image()
elif current_page == 'feedback':
feedback()
elif current_page == 'input_text':
input_text()
elif current_page == 'input_type':
input_type()
elif current_page == 'modify_text':
modify_text()
elif current_page == 'privacy':
privacy()
elif current_page == 'imprint':
imprint()
elif current_page == 'teacher_admin':
teacher_admin()
elif current_page == 'school_admin':
school_admin()
else:
homepage()