fix(caldav): sérialiser les devoirs avec un composant et un statut iCalendar cohérents #11
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Constat
homework_to_vevent()crée un composantVEVENTpour chaque devoir, lui donne une plage fixe de 08:00 à 18:00 et ajouteSTATUS:NEEDS-ACTION.Or ce statut est défini pour les tâches
VTODO. Pour unVEVENT, RFC 5545 ne permet queTENTATIVE,CONFIRMEDouCANCELLED. Le document produit est donc sémantiquement incohérent et peut être refusé ou corrigé de façon imprévisible par un serveur ou client CalDAV strict. Il rend également un devoir comme un créneau occupé de dix heures.La correction ne se limite pas à la sérialisation : le synchroniseur et les tests recherchent aujourd'hui les composants gérés via
walk("VEVENT").Référence : RFC 5545, sections 3.6.1, 3.6.2 et 3.8.1.11.
Proposition
Prendre une décision de compatibilité explicite, puis l'appliquer de bout en bout :
VTODO(avecDUEetSTATUS:NEEDS-ACTION) et étendre la découverte, la signature, la mise à jour et la suppression aux deux types de composants ;VEVENTpour maximiser la compatibilité CalDAV, mais utiliser un statut autorisé ou l'omettre, et les rendre transparents si un devoir ne doit pas bloquer l'agenda.Prévoir une stratégie de migration pour les éléments déjà marqués
X-PRONOTE-SYNC-MANAGED:v1, afin de préserver l'idempotence et de ne pas créer de doublon ni supprimer un élément utilisateur.Critères d'acceptation
Périmètre
Synchronisation CalDAV et documentation associée ; aucun changement du contenu Pronote des devoirs.