diff --git a/pronote_sync/sources/pronote/client.py b/pronote_sync/sources/pronote/client.py index 7f5c2ab..48670b1 100644 --- a/pronote_sync/sources/pronote/client.py +++ b/pronote_sync/sources/pronote/client.py @@ -25,10 +25,11 @@ import requests from pronote_sync.config.settings import PronoteSettings from pronote_sync.errors import PronoteAuthRotationError -from pronote_sync.models.agenda import Lesson, LessonStatus +from pronote_sync.models.agenda import Lesson from pronote_sync.models.homework import Homework from pronote_sync.models.message import Message, MessageType from pronote_sync.sources.pronote.auth_state import PronoteAuthState +from pronote_sync.sources.pronote.lessons import collapse_replaced_lessons, lesson_status from pronote_sync.utils.redaction import redact_exception, redact_secrets from pronote_sync.utils.uid import generate_deterministic_uid, normalize_pronote_uid @@ -573,12 +574,12 @@ class PronoteClient: teachers=tuple(lesson.teacher_names or ()), rooms=tuple(lesson.classrooms or ()), group=lesson.group_name, - status=(LessonStatus.CANCELLED if lesson.canceled else LessonStatus.NORMAL), + status=lesson_status(getattr(lesson, "status", None), lesson.canceled), content=content.description if content is not None else None, ) ) self._persist_credentials() - return lessons + return collapse_replaced_lessons(lessons) def get_homeworks(self, start: date, end: date) -> list[Homework]: """Récupère les devoirs via ``pronotepy``. diff --git a/pronote_sync/sources/pronote/ical.py b/pronote_sync/sources/pronote/ical.py index 4e7ecc3..4a279e5 100644 --- a/pronote_sync/sources/pronote/ical.py +++ b/pronote_sync/sources/pronote/ical.py @@ -35,6 +35,7 @@ from ...models.agenda import ( from ...models.homework import Homework from ...utils.redaction import redact_exception, redact_url from ...utils.uid import generate_deterministic_uid, normalize_pronote_uid +from .lessons import collapse_replaced_lessons _HEADER_LABEL_PATTERN = re.compile( r"(?P