| Zusammenfassung | Ermöglicht autorisierten Nutzern, Kalenderereignisse/-Themen (erstellt über Discourse Calendar and Events ) in einen neuen Zeitraum zu duplizieren. Funktioniert für ein einzelnes Thema oder eine ganze getaggte Serie (z. B. jedes Thema mit dem Tag `grand-prix`), mit einem Überprüfungsschritt zur Bearbeitung der vorgeschlagenen Daten vor dem Speichern. | |
| Repository-Link | GitHub - louking/discourse-event-duplicator: discourse plugin to duplicate events · GitHub | |
| Installationsanleitung | Plugins in Discourse installieren |
Zusammenfassung
Dieses Plugin wurde für eine Laufgruppen-Community entwickelt, deren Kalender größtenteils aus denselben Ereignissen besteht, die jedes Jahr an verschobenen Terminen stattfinden. Das manuelle Neuerstellen jedes Ereignisthemas jede Saison bedeutete, den [event ...]-Block zu duplizieren, den Titel zu korrigieren und herauszufinden, welche bereits bearbeitet waren. Das war mühsam und fehleranfällig. Event Duplicator automatisiert dies: Wähle ein Quellereignis oder eine ganze getaggte Serie, erhalte ein vorgeschlagenes neues Datum, überprüfe oder bearbeite es und bestätige.
Siehe docs/USAGE.md für eine vollständige, nutzerorientierte Anleitung: Wer es verwenden kann, Duplizierung einer Serie vs. eines einzelnen Themas, wie der Überprüfungsschritt funktioniert.
Funktionen
- Serien-Duplizierung: Wähle eine Kategorie und ein oder mehrere Tags (z. B.
grand-prix,signature-race; Treffer werden ODER-verknüpft und dedupliziert, sodass ein Thema mit mehreren passenden Tags nur einmal erscheint), optional eingeschränkt auf einen Quell-Datumsbereich, überprüfe dann die vorgeschlagenen Daten des nächsten Auftretens vor der Bestätigung. - Duplizierung einzelner Ereignisse: Derselbe Überprüfungs- und Bestätigungsablauf für ein Thema nach dem anderen, über das Admin-Menü des Themas (Schlüssel-Symbol).
- Bearbeitbarer Überprüfungsschritt: Jede Zeile zeigt das ursprüngliche Startdatum neben einem vorgeschlagenen neuen Datum, das du bearbeiten kannst (Tagesgranularität), plus einen bearbeitbaren Titel. Das Enddatum wird immer automatisch aus der Dauer des Quellereignisses abgeleitet, sodass es nicht aus dem Takt mit einem bearbeiteten Startdatum geraten kann.
- Zwei austauschbare Datumsverschiebungsstrategien, pro Ausführung wählbar mit einem konfigurierbaren Standard:
- Selbstes Kalenderdatum: Verschiebung um die konfigurierte Anzahl von Monaten nach vorne.
- N-ter Wochentag des Monats: Bewahrt z. B. „3. Samstag des Monats“ auf, auch wenn die Verschiebung in einen anderen Monat fällt.
- Konfigurierbarer Verschiebungsbetrag: Verschiebung um eine beliebige Anzahl von Monaten (standardmäßig 12, also ein Jahr) nach vorne, nicht nur jährlich. Nützlich für monatliche, vierteljährliche oder andere wiederkehrende Rhythmen. Pro Ausführung überschreibbar, mit einem site-weiten Standard über eine neue Einstellung (unten).
- „Datum TBD“-Kennzeichnung: Für Ereignisse, deren reales Datum noch nicht feststeht, markiere eine Zeile. Eine konfigurierbare Anmerkung (standardmäßig
(date TBD)) wird sowohl zum Titel des Themas als auch zum Ereignisnamen angehängt. - Duplizierungsverfolgung: Verhindert die doppelte Duplizierung desselben Ereignisses (relevant, da ein Thema mehr als einen Serien-Tag tragen kann). Bereits duplizierte Themen werden standardmäßig in der Überprüfung markiert und abgewählt, mit einer expliziten Wiederholung der Auswahl, um es dennoch zu erzwingen. Das Löschen eines duplizierten Themas gibt dessen Quelle automatisch für eine erneute Duplizierung frei, und das Wiederherstellen sperrt es erneut.
- Feedback nach der Duplizierung: Erfolgreich duplizierte Zeilen verwandeln sich in einen Link zum neuen Thema direkt in der Überprüfungstabelle. Echte Fehler werden pro Zeile gemeldet, anstatt den gesamten Batch abzubrechen.
Anforderungen
- discourse-calendar muss installiert und aktiviert sein. Dieses Plugin dupliziert Ereignisse, indem es das eigene
[event ...]-Post-Markup und dasDiscoursePostEvent::Event-Modell von discourse-calendar verwendet, anstatt separate Datumspeicher zu erfinden. - Getestet mit Discourse 2026.7.0. Nicht für frühere Versionen verifiziert.
Konfiguration
Alle Einstellungen finden sich unter Admin → Einstellungen → Plugins, suche nach event_duplicator:
| Einstellung | Standard | Beschreibung |
|---|---|---|
event_duplicator_enabled |
aus | Aktiviert das Plugin. |
event_duplicator_allowed_groups |
staff | Gruppen (zusätzlich zu den normalen Berechtigungen für die Themen-Erstellung pro Kategorie), die Ereignisse duplizieren dürfen. Hinweis: Eine leere Liste bedeutet niemand, nicht alle. Füge die Gruppe „alle“ hinzu, um dies vollständig zu öffnen. |
event_duplicator_default_date_strategy |
Selbes Kalenderdatum | Standard-Regel für die Datumsverschiebung; pro Ausführung überschreibbar. |
event_duplicator_default_shift_months |
12 | Standard-Verschiebungsbetrag in Monaten; pro Ausführung überschreibbar. |
event_duplicator_tbd_annotation |
(date TBD) |
Text, der zum Titel/Ereignisnamen eines duplizierten Themas hinzugefügt wird, wenn es in der Überprüfung als TBD markiert ist. Leer lassen, um die Anmerkungsfunktion vollständig zu deaktivieren. |
Die Autorisierung ist ein UND aus drei Prüfungen: Normale Discourse-Kategorieberechtigungen, Mitgliedschaft in event_duplicator_allowed_groups und die eigene Berechtigung von discourse-calendar, [event]-Posts zu erstellen.
Bekannte Einschränkungen
- Die Datumsbearbeitung im Überprüfungsschritt ist nur tagesgenau (keine Uhrzeitbearbeitung). Das ist eine bewusste Entscheidung: Das Zielanwendungsfall sind wiederkehrende Renn-/Ereignisdaten, nicht -zeiten.
Quelle / Probleme
- GitHub: GitHub - louking/discourse-event-duplicator: discourse plugin to duplicate events · GitHub
- Probleme/Funktionsanfragen: Issues · louking/discourse-event-duplicator · GitHub
- Backend (RSpec) und Frontend (QUnit) Testsuiten sind beide enthalten und werden bei jedem Push/PR in der CI ausgeführt.
Aktualisiert am 2026-08-01: v1.1.0 fügt konfigurierbare monatsbasierte Verschiebungen hinzu, siehe unten

