| Résumé | Permet aux utilisateurs autorisés de dupliquer des événements/sujets de calendrier (créés via Discourse Calendar and Events ) dans une nouvelle période. Fonctionne sur un seul sujet ou une série entière étiquetée (par ex. chaque sujet étiqueté `grand-prix`), avec une étape de révision pour modifier les dates proposées avant validation. | |
| Lien vers le dépôt | GitHub - louking/discourse-event-duplicator: discourse plugin to duplicate events · GitHub | |
| Guide d’installation | Comment installer des plugins dans Discourse |
Résumé
Ce plugin a été conçu pour une communauté de club de course dont le calendrier est largement composé des mêmes événements qui se produisent chaque année à des dates décalées. Recréer manuellement le sujet de chaque événement à chaque saison impliquait de dupliquer le bloc [event ...], de corriger le titre et de chercher lesquels avaient déjà été refaits. C’était fastidieux et sujet aux erreurs. Event Duplicator automatise cette tâche : choisissez un événement source, ou une série entière étiquetée, obtenez une nouvelle date proposée, révisez ou modifiez-la, puis confirmez.
Consultez docs/USAGE.md pour un guide complet à l’intention des utilisateurs : qui peut l’utiliser, duplication d’une série vs. un seul sujet, fonctionnement de l’étape de révision.
Fonctionnalités
- Duplication de séries : choisissez une catégorie et une ou plusieurs étiquettes (par ex.
grand-prix,signature-race; les correspondances sont combinées par OU et dédoublonnées, donc un sujet avec plusieurs étiquettes correspondantes n’apparaît qu’une fois), éventuellement limité à une plage de dates source, puis révisez les dates de prochaine occurrence proposées avant de confirmer. - Duplication d’événement unique : le même flux de révision et de confirmation pour un sujet à la fois, depuis le menu administrateur de ce sujet (icône clé à molette).
- Étape de révision modifiable : chaque ligne affiche la date de début originale à côté d’une nouvelle date proposée que vous pouvez modifier (granularité au jour près), ainsi qu’un titre modifiable. La date de fin est toujours dérivée automatiquement de la durée propre de l’événement source, donc elle ne peut pas se désynchroniser avec une date de début modifiée.
- Deux stratégies de décalage de date extensibles, sélectionnables par exécution avec une valeur par défaut configurable :
- Même date du calendrier : décale vers l’avant du nombre de mois configuré.
- N-ième jour de la semaine du mois : conserve par ex. “3e samedi du mois” même lorsque le décalage tombe dans un mois différent.
- Montant de décalage configurable : décale vers l’avant de n’importe quel nombre de mois (12, soit un an, par défaut), pas seulement annuellement. Utile pour des cadences mensuelles, trimestrielles ou autres récurrentes. Peut être remplacé par exécution, avec une valeur par défaut globale via un nouveau paramètre (ci-dessous).
- Indicateur “Date à déterminer” : pour les événements dont la date réelle n’est pas encore fixée, marquez une ligne. Une annotation configurable (par défaut
(date à déterminer)) est ajoutée à la fois au titre du sujet et au nom de l’événement. - Suivi des duplications : empêche de dupliquer deux fois le même événement (pertinent car un sujet peut porter plus d’une étiquette de série). Les sujets déjà dupliqués sont marqués et désélectionnés par défaut lors de la révision, avec une case à cocher explicite pour forcer l’opération quand même. La suppression d’un sujet dupliqué libère automatiquement sa source pour une nouvelle duplication, et la restauration la verrouille à nouveau.
- Retour post-duplication : les lignes dupliquées avec succès se transforment en lien vers le nouveau sujet directement dans le tableau de révision. Les échecs réels sont signalés par ligne au lieu d’interrompre tout le lot.
Prérequis
- discourse-calendar doit être installé et activé. Ce plugin duplique les événements en utilisant le balisage
[event ...]propre à discourse-calendar et le modèleDiscoursePostEvent::Event, au lieu de créer un stockage de dates séparé. - Testé avec Discourse 2026.7.0. Non vérifié sur les versions antérieures.
Configuration
Tous les paramètres se trouvent sous Admin → Paramètres → Plugins, recherchez event_duplicator :
| Paramètre | Défaut | Description |
|---|---|---|
event_duplicator_enabled |
désactivé | Active le plugin. |
event_duplicator_allowed_groups |
staff | Groupes (en plus des permissions normales de création de sujets par catégorie) autorisés à dupliquer des événements. Note : une liste vide signifie personne, pas tout le monde. Ajoutez le groupe “everyone” pour ouvrir complètement cette fonctionnalité. |
event_duplicator_default_date_strategy |
Même date du calendrier | Règle de décalage de date par défaut ; remplaçable par exécution. |
event_duplicator_default_shift_months |
12 | Montant de décalage par défaut, en mois ; remplaçable par exécution. |
event_duplicator_tbd_annotation |
(date à déterminer) |
Texte ajouté au titre/nom de l’événement d’un sujet dupliqué lorsqu’il est marqué comme à déterminer lors de la révision. Laissez vide pour désactiver complètement cette fonctionnalité d’annotation. |
L’autorisation est une combinaison ET de trois vérifications : les permissions normales de catégorie Discourse, l’appartenance à event_duplicator_allowed_groups, et la permission propre à discourse-calendar de créer des posts [event].
Limitations connues
- L’édition de date de l’étape de révision est uniquement à la granularité du jour (pas d’édition de l’heure). C’est une décision de portée délibérée : le cas d’utilisation cible concerne les dates récurrentes de courses/événements, pas les heures.
Source / problèmes
- GitHub : GitHub - louking/discourse-event-duplicator: discourse plugin to duplicate events · GitHub
- Problèmes/demandes de fonctionnalités : Issues · louking/discourse-event-duplicator · GitHub
- Les suites de tests backend (RSpec) et frontend (QUnit) sont toutes deux incluses et exécutées en CI à chaque push/PR.
Mis à jour le 2026-08-01 : v1.1.0 ajoute un décalage mensuel configurable, voir ci-dessous

