# pages/admin_pages.py - Admin pages import streamlit as st from modules.database import Session, User, Student, AcademicTerm from modules.storage import backup_database def show_admin_menu(): """Show admin menu and handle routing""" page = st.sidebar.selectbox("Menu", [ "Dashboard", "Admin Management", "Staff Management", "Student Enrollment", "Academic Calendar", "Storage Management" ]) if page == "Dashboard": from pages import dashboard dashboard.show() elif page == "Admin Management": show_admin_management() elif page == "Staff Management": show_staff_management() elif page == "Student Enrollment": show_student_enrollment() elif page == "Academic Calendar": show_academic_calendar() elif page == "Storage Management": show_storage_management() def show_admin_management(): """Admin management page""" st.header("👑 Admin Management") session = Session() tab1, tab2 = st.tabs(["View Admins", "Add Admin"]) with tab1: st.subheader("All Administrators") admins = session.query(User).filter_by(role='admin').all() if admins: for admin in admins: st.write(f"• {admin.name} ({admin.email})") else: st.info("No other admins") with tab2: st.subheader("Add New Administrator") with st.form("add_admin"): name = st.text_input("Full Name") email = st.text_input("Email") password = st.text_input("Password", type="password") if st.form_submit_button("Add Admin"): if name and email and password: from modules.auth import authenticate_user # Add admin logic here st.success("Admin added successfully") session.close() def show_staff_management(): """Staff management page""" st.header("👥 Staff Management") session = Session() # Staff management logic st.info("Staff management functionality") session.close() def show_student_enrollment(): """Student enrollment page""" st.header("🎓 Student Enrollment") session = Session() # Student enrollment logic st.info("Student enrollment functionality") session.close() def show_academic_calendar(): """Academic calendar page""" st.header("📅 Academic Calendar") session = Session() # Academic calendar logic st.info("Academic calendar functionality") session.close() def show_storage_management(): """Storage management page""" st.header("💾 Storage Management") st.subheader("Database Backup") if st.button("Create Backup", use_container_width=True): success, message = backup_database() if success: st.success(message) else: st.error(message) # Storage statistics st.subheader("Storage Statistics") try: import os db_size = os.path.getsize(os.environ.get('DB_PATH', './empower.db')) / (1024 * 1024) st.metric("Database Size", f"{db_size:.2f} MB") except: st.metric("Database Size", "Unknown")