Skip to content

Techletter : voir les anciennes + savoir si un lien était déjà envoyé - #2444

Open
mykiwi wants to merge 4 commits into
afup:masterfrom
mykiwi-forks:feat/techletter-old-mails-and-duplicate-links
Open

mykiwi wants to merge 4 commits into
afup:masterfrom
mykiwi-forks:feat/techletter-old-mails-and-duplicate-links

Conversation

@mykiwi

@mykiwi mykiwi commented Nov 3, 2026 •

Copy link
Copy Markdown

Veille : consultation des anciennes campagnes et signalement des liens déjà partagés

Consulter les campagnes envoyées

Dans la liste des campagnes, seule la campagne en cours était cliquable. Les campagnes déjà envoyées à Mailchimp le sont maintenant aussi : elles ouvrent une page en lecture seule (/admin/techletter/show/{id}) qui affiche le mail, avec un lien vers l'archive Mailchimp quand elle existe.

Signaler les liens déjà partagés

Dans l'aperçu d'édition d'une campagne :

  • en haut, un bloc liste les liens déjà présents dans une campagne envoyée. Chaque date ouvre l'ancienne campagne (lecture seule) dans un nouvel onglet ;
  • chaque lien concerné (news, articles, projets) affiche aussi un badge ⚠️ avec la ou les dates de publication (ex. ⚠️ 21/10/2026, 08/10/2026).

Détails :

  • La comparaison ignore le http/https, le www., le slash final, l'ancre et la casse.
  • Le bloc et les badges n'apparaissent que dans l'aperçu, jamais dans le mail envoyé (Mailchimp ou mail de test).
  • Le bloc est placé hors des zones éditables de l'aperçu : le calque « Editer » affiché au survol ne le recouvre pas, de simples liens suffisent (aucun changement JS).

Performance

L'aperçu est recalculé à chaque modification de la campagne. Seuls l'id, la date et le JSON brut des campagnes envoyées sont lus (requête scalaire, sans hydratation d'entités ni Valinor), puis on ne garde que les URLs : ~15 ms avec ~250 campagnes, contre ~600 ms en convertissant chaque campagne en modèle.

Captures

Liens clickable pour voir les précédentes techletters:
1

Affichage d'une précédente techletter:
2

Warning sur les liens:
3

mykiwi and others added 2 commits November 3, 2026 00:43
…s déjà partagés

- Les campagnes déjà envoyées à Mailchimp sont maintenant cliquables depuis la
  liste des campagnes et affichent le mail en lecture seule (avec un lien vers
  l'archive Mailchimp quand elle existe).
- Dans l'aperçu d'édition d'une campagne, les liens déjà présents dans une
  campagne envoyée sont signalés par un ⚠️ suivi de la/des date(s) de
  publication. La comparaison ignore le schéma, le "www.", le slash final,
  l'ancre et la casse. Le badge n'apparaît jamais dans le mail envoyé.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…tagé

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
L'aperçu est recalculé à chaque modification de la campagne en cours. La
détection chargeait toutes les campagnes envoyées en entités puis les
convertissait une à une avec Valinor : ~600 ms avec ~250 campagnes.

On ne lit plus que la date d'envoi et le JSON brut des campagnes envoyées
(requête scalaire, sans hydratation), et on décode le JSON pour n'en garder
que les URLs : ~15 ms pour le même volume, avec les mêmes résultats.

Ajoute un test d'intégration sur la vraie base de test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@Korbeil Korbeil left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM , merci pour cette amélioration !

…s veilles

En haut de l'aperçu d'édition, un bloc liste les liens déjà partagés dans une
veille envoyée. Chaque date ouvre la veille concernée (en lecture seule) dans
un nouvel onglet.

Le bloc est placé hors des zones éditables de l'aperçu : le calque « Editer »
affiché au survol ne le recouvre pas, de simples liens suffisent, sans JS.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@mykiwi

mykiwi commented Nov 3, 2026 •

Copy link
Copy Markdown
Author

Je viens de mettre à jour la dernière screenshot pour ce nouveau commit.

@stakovicz stakovicz left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Top !
Merci

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants