orga / pages /accueil.py
Lenylvt's picture
Upload 10 files
a01c266 verified
import streamlit as st
import datetime
import pronotepy
from pages import accueil, devoirs, edt, contenu
def app(client):
st.title('Accueil')
st.write("Bienvenue sur la page d'accueil.")
# Configuration des colonnes pour Emploi du temps et Devoirs
col1, col2 = st.columns([3, 2]) # Donner plus d'espace à l'emploi du temps
with col1:
st.subheader("Emploi du temps")
today = datetime.date.today()
if not display_timetable_for_date(client, today):
# Si aucun cours aujourd'hui, afficher pour le jour suivant
next_day = today + datetime.timedelta(days=1)
st.warning(f"Aucun cours prévu pour aujourd'hui. Affichage pour le {next_day.strftime('%A %d %B')}.")
display_timetable_for_date(client, next_day)
# Bouton pour ouvrir la page détaillée de l'emploi du temps
if st.button('Voir l\'emploi du temps complet'):
st.session_state.current_page = 'edt'
st.rerun()
with col2:
st.subheader("Devoirs pour demain")
tomorrow = datetime.date.today() + datetime.timedelta(days=1)
homeworks = client.homework(tomorrow, tomorrow)
if homeworks:
for homework in homeworks:
with st.expander(f"{'✅' if homework.done else '❌'} | {homework.subject.name}", expanded=False):
st.markdown(f"**Description:** {homework.description}")
st.markdown(f"**Statut:** {'✅ Fait' if homework.done else '❌ À faire'}")
else:
st.write("Pas de devoirs prévus pour demain.")
# Bouton pour ouvrir la page dédiée aux devoirs
if st.button('Voir tous les devoirs'):
st.session_state.current_page = 'devoirs'
st.rerun()
def display_timetable_for_date(client, date):
timetable = client.lessons(datetime.datetime.combine(date, datetime.datetime.min.time()),
datetime.datetime.combine(date, datetime.datetime.min.time()) + datetime.timedelta(days=1))
sorted_timetable = sorted(timetable, key=lambda lesson: lesson.start)
if sorted_timetable:
for lesson in sorted_timetable:
with st.container():
st.markdown(f"**{lesson.subject.name}** ({lesson.start.strftime('%H:%M')} - {lesson.end.strftime('%H:%M')}) - Salle: {lesson.classroom}")
if lesson.status:
st.caption(f"**Statut**: {lesson.status}")
return True
return False
if __name__ == "__main__":
client = pronotepy.Client(...)
app(client)