Retour du commanditaire après le premier envoi réel (juillet 2026) : des
annonces à venir n'étaient pas proposées à la coche, et les dates affichées
étaient les dates de publication.
- Fenêtre « à venir » de 12 mois (FUTURE_HORIZON_MONTHS), démarrant à la fin
du mois de la newsletter ou à aujourd'hui si ce mois est passé, en
remplacement du plafond « début de fenêtre <= fin du mois ». Idem pour les
séances (SEANCE_WINDOW_MARGIN_DAYS de 5 jours supprimée). Ces items sont
regroupés dans un bloc « À venir », décochés par défaut.
- event_date_label() centralise les libellés du thème (« Le X de H1 à H2 »,
« Du X au Y », « Jusqu'au X », « X à H ») sur la convention
date_de_debut > datetime > post_date. Utilisée par l'export et par la
pastille de la liste à cocher, qui affichent donc la même chose.
- Tri par date d'événement (sql_event_date_order) et non par date de
publication.
- Fenêtres de fin « +35 j » et « +3 mois » recalées sur la date d'événement :
un événement annoncé plus de 35 jours à l'avance sortait de la fenêtre
avant d'avoir eu lieu et manquait dans la newsletter de son propre mois.
- merge_selected_items() : une sélection déjà enregistrée est réinjectée dans
la liste même si ses items sont sortis de la fenêtre — sans ça, rouvrir puis
réenregistrer une ancienne newsletter l'amputait silencieusement.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011w7RzAHv4r1Yahnm2NwDDG