fix(pronote): préserver les cours déplacés et changements de salle

Revue Codex validée. Statuts canoniques iCal/pronotepy et consolidation prudente des cours remplacés.

Co-authored-by: Codex <codex@antoineve.me>
Co-committed-by: Codex <codex@antoineve.me>
This commit was merged in pull request #32.
This commit is contained in:
2026-09-12 14:55:19 +02:00
committed by Codex
parent a9e4f610c0
commit 5bb5d2c2f1
6 changed files with 224 additions and 7 deletions
+4 -3
View File
@@ -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``.