fix(ical): stabiliser la clé de déduplication des devoirs

This commit is contained in:
2026-09-12 14:50:28 +02:00
parent e63000230b
commit a9e4f610c0
2 changed files with 34 additions and 3 deletions
+4 -3
View File
@@ -370,7 +370,8 @@ def generate_homework_id(
:rtype: str
"""
payload = (
f"{due_on.isoformat()}|{subject}|{','.join(sorted(teachers))}|{normalized_text}".encode()
f"{due_on.isoformat()}|{subject.casefold()}|"
f"{','.join(sorted(teacher.casefold() for teacher in teachers))}|{normalized_text}".encode()
)
return hashlib.sha1(payload, usedforsecurity=False).hexdigest()[:12]
@@ -397,7 +398,7 @@ def collect_homeworks(lessons: list[Lesson], target_date: date) -> list[Homework
normalized_text = normalize_homework_text(block.text)
key = (
lesson.subject.casefold(),
tuple(teacher.casefold() for teacher in lesson.teachers),
tuple(sorted(teacher.casefold() for teacher in lesson.teachers)),
normalized_text,
)
if key not in by_context:
@@ -421,7 +422,7 @@ def collect_homeworks(lessons: list[Lesson], target_date: date) -> list[Homework
normalized_text = normalize_homework_text(block.text)
key = (
lesson.subject.casefold(),
tuple(teacher.casefold() for teacher in lesson.teachers),
tuple(sorted(teacher.casefold() for teacher in lesson.teachers)),
normalized_text,
)
if key not in by_context: