| Riepilogo | Consente agli utenti autorizzati di duplicare eventi/argomenti del calendario (creati tramite Discourse Calendar and Events ) in un nuovo periodo di tempo. Funziona su un singolo argomento o su un’intera serie taggata (ad esempio, ogni argomento con il tag `grand-prix`), con una fase di revisione per modificare le date proposte prima di confermarle. | |
| Link al Repository | GitHub - louking/discourse-event-duplicator: discourse plugin to duplicate events · GitHub | |
| Guida all’installazione | Come installare i plugin in Discourse |
Riepilogo
Questo plugin è stato creato per una comunità di un club di corsa il cui calendario è composto principalmente dagli stessi eventi che si ripetono ogni anno con una data spostata. Ricreare manualmente l’argomento di ogni evento ogni stagione significava duplicare il blocco [event ...], correggere il titolo e cercare quali erano già stati rifatti. Era un processo noioso e soggetto a errori. Event Duplicator automatizza il tutto: scegli un evento sorgente, o un’intera serie taggata di eventi, ottieni una nuova data proposta, rivedila o modificala e conferma.
Consulta docs/USAGE.md per una guida completa all’uso: chi può utilizzarlo, duplicazione di una serie rispetto a un singolo argomento, come funziona la fase di revisione.
Caratteristiche
- Duplicazione di serie: scegli una categoria e uno o più tag (ad esempio
grand-prix,signature-race; le corrispondenze sono combinate con OR e deduplicate, quindi un argomento con più tag corrispondenti appare solo una volta), eventualmente limitato a un intervallo di date sorgente, quindi rivedi le date proposte per la prossima occorrenza prima di confermare. - Duplicazione di singolo evento: lo stesso flusso di revisione e conferma per un argomento alla volta, dal menu amministratore dell’argomento (icona chiave inglese).
- Fase di revisione modificabile: ogni riga mostra la data di inizio originale accanto a una nuova data proposta che puoi modificare (con granularità giornaliera), più un titolo modificabile. La data di fine è sempre derivata automaticamente dalla durata dell’evento sorgente, quindi non può andare fuori sincrono con una data di inizio modificata.
- Due strategie di spostamento delle date plug-in, selezionabili per ogni esecuzione con un’impostazione predefinita configurabile:
- Stessa data del calendario: sposta in avanti del numero di mesi configurato.
- N-esimo giorno della settimana del mese: preserva ad esempio “3° sabato del mese” anche quando lo spostamento cade in un mese diverso.
- Importo dello spostamento configurabile: sposta in avanti di qualsiasi numero di mesi (12, cioè un anno, per impostazione predefinita), non solo annualmente. Utile per cadenze mensili, trimestrali o altre ricorrenti. Sovrascrivibile per ogni esecuzione, con un’impostazione predefinita a livello di sito tramite una nuova impostazione (di seguito).
- Flag “Data da definire”: per gli eventi la cui data reale non è ancora stabilita, contrassegna una riga. Un’annotazione configurabile (predefinita
(date TBD)) viene aggiunta sia al titolo dell’argomento che al nome dell’evento. - Tracciamento delle duplicazioni: impedisce di duplicare lo stesso evento due volte (rilevante poiché un argomento può avere più di un tag di serie). Gli argomenti già duplicati sono contrassegnati e deselezionati per impostazione predefinita nella revisione, con un’esplicita opzione di ri-selezione per forzare comunque l’operazione. Eliminare un argomento duplicato libera automaticamente la sua sorgente per una nuova duplicazione, e ripristinarlo lo blocca di nuovo.
- Feedback post-duplicazione: le righe duplicate con successo si trasformano in un link al nuovo argomento direttamente nella tabella di revisione. I veri errori vengono segnalati per riga invece di interrompere l’intero batch.
Requisiti
- discourse-calendar deve essere installato e abilitato. Questo plugin duplica gli eventi utilizzando la markup
[event ...]dei post di discourse-calendar e il modelloDiscoursePostEvent::Eventinvece di inventare un archiviazione delle date separata. - Testato con Discourse 2026.7.0. Non verificato su versioni precedenti.
Configurazione
Tutte le impostazioni si trovano in Admin → Impostazioni → Plugin, cerca event_duplicator:
| Impostazione | Predefinito | Descrizione |
|---|---|---|
event_duplicator_enabled |
off | Abilita il plugin. |
event_duplicator_allowed_groups |
staff | Gruppi (in aggiunta alle normali autorizzazioni di creazione argomenti per categoria) autorizzati a duplicare gli eventi. Nota: un elenco vuoto significa nessuno, non tutti. Aggiungi il gruppo “tutti” per aprirlo completamente. |
event_duplicator_default_date_strategy |
Stessa data del calendario | Regola predefinita di spostamento della data; sovrascrivibile per ogni esecuzione. |
event_duplicator_default_shift_months |
12 | Importo predefinito dello spostamento, in mesi; sovrascrivibile per ogni esecuzione. |
event_duplicator_tbd_annotation |
(date TBD) |
Testo aggiunto al titolo dell’argomento/nome dell’evento duplicato quando è contrassegnato come da definire nella revisione. Lascia vuoto per disabilitare completamente la funzione di annotazione. |
L’autorizzazione è un AND di tre controlli: normali autorizzazioni della categoria Discourse, appartenenza a event_duplicator_allowed_groups e l’autorizzazione di discourse-calendar per creare post [event] in generale.
Limitazioni note
- La modifica delle date nella fase di revisione ha solo granularità giornaliera (nessuna modifica dell’ora del giorno). Questa è una decisione deliberata di ambito: il caso d’uso target sono le date ricorrenti di gare/eventi, non gli orari.
Sorgente / problemi
- GitHub: GitHub - louking/discourse-event-duplicator: discourse plugin to duplicate events · GitHub
- Problemi/richieste di funzionalità: Issues · louking/discourse-event-duplicator · GitHub
- Suite di test backend (RSpec) e frontend (QUnit) sono entrambe incluse ed eseguite in CI ad ogni push/PR.
Aggiornato il 2026-08-01: la v1.1.0 aggiunge lo spostamento basato sui mesi configurabile, vedi di seguito

