| Resumo | Permite que usuários autorizados dupliquem eventos/tópicos de calendário (criados via Discourse Calendar and Events ) em um novo período. Funciona em um único tópico ou em uma série inteira com marcação (por exemplo, todos os tópicos marcados como grand-prix), com uma etapa de revisão para editar as datas propostas antes de confirmar. |
|
| Link do Repositório | GitHub - louking/discourse-event-duplicator: discourse plugin to duplicate events · GitHub | |
| Guia de Instalação | Como instalar plugins no Discourse |
Resumo
Este plugin foi desenvolvido para uma comunidade de clube de corrida cujo calendário é composto principalmente pelos mesmos eventos ocorrendo todos os anos em datas ajustadas. Recriar o tópico de cada evento manualmente a cada temporada significava duplicar o bloco [event ...], corrigir o título e procurar quais já haviam sido refeitos. Isso era tedioso e propenso a erros. O Event Duplicator automatiza esse processo: selecione um evento de origem ou uma série inteira marcada, obtenha uma nova data proposta, revise ou edite-a e confirme.
Veja docs/USAGE.md para um guia completo de uso: quem pode usá-lo, duplicação de uma série versus um único tópico, como funciona a etapa de revisão.
Recursos
- Duplicação de séries: selecione uma categoria e uma ou mais marcações (por exemplo,
grand-prix,signature-race; as correspondências são combinadas com OU e desduplicadas, portanto, um tópico com várias marcações correspondentes aparece apenas uma vez), opcionalmente restrito a um intervalo de datas de origem, e depois revise as datas propostas da próxima ocorrência antes de confirmar. - Duplicação de evento único: o mesmo fluxo de revisão e confirmação para um tópico de cada vez, acessado pelo menu de administração do tópico (ícone de chave de fenda).
- Etapa de revisão editável: cada linha mostra a data de início original ao lado de uma nova data proposta que você pode editar (granularidade de dia), além de um título editável. A data de fim é sempre derivada automaticamente da duração do evento de origem, portanto, não fica dessincronizada com uma data de início editada.
- Duas estratégias de deslocamento de data plugáveis, selecionáveis por execução com um padrão configurável:
- Mesma data do calendário: desloca para frente pelo número configurado de meses.
- N-º dia da semana do mês: preserva, por exemplo, “3º sábado do mês”, mesmo quando o deslocamento cai em um mês diferente.
- Quantidade de deslocamento configurável: desloca para frente por qualquer número de meses (12, ou seja, um ano, por padrão), não apenas anualmente. Útil para cadências mensais, trimestrais ou outras recorrentes. Pode ser sobrescrito por execução, com um padrão global por meio de uma nova configuração (abaixo).
- Marcação “Data a definir”: para eventos cuja data real ainda não está definida, marque uma linha. Uma anotação configurável (padrão
(data a definir)) é adicionada ao título do tópico e ao nome do evento. - Rastreamento de duplicação: impede a duplicação do mesmo evento duas vezes (relevante, pois um tópico pode ter mais de uma marcação de série). Tópicos já duplicados são marcados e desmarcados por padrão na revisão, com uma opção explícita de marcar a caixa novamente para forçar a duplicação. Excluir um tópico duplicado libera automaticamente sua origem para nova duplicação, e restaurá-lo bloqueia-o novamente.
- Feedback pós-duplicação: linhas duplicadas com sucesso se transformam em um link para o novo tópico diretamente na tabela de revisão. Falhas genuínas são relatadas por linha, em vez de abortar todo o lote.
Requisitos
- discourse-calendar deve estar instalado e habilitado. Este plugin duplica eventos usando a marcação de postagem
[event ...]e o modeloDiscoursePostEvent::Eventdo próprio discourse-calendar, em vez de criar armazenamento de datas separado. - Testado no Discourse 2026.7.0. Não verificado em versões anteriores.
Configuração
Todas as configurações estão em Admin → Settings → Plugins, procure por event_duplicator:
| Configuração | Padrão | Descrição |
|---|---|---|
event_duplicator_enabled |
desativado | Habilita o plugin. |
event_duplicator_allowed_groups |
equipe | Grupos (além da permissão normal de criação de tópicos por categoria) autorizados a duplicar eventos. Nota: uma lista vazia significa ninguém, não todos. Adicione o grupo “todos” para abrir completamente essa permissão. |
event_duplicator_default_date_strategy |
Mesma data do calendário | Regra padrão de deslocamento de data; pode ser sobrescrita por execução. |
event_duplicator_default_shift_months |
12 | Quantidade padrão de deslocamento, em meses; pode ser sobrescrita por execução. |
event_duplicator_tbd_annotation |
(data a definir) |
Texto adicionado ao título/nome do evento de um tópico duplicado quando marcado como “a definir” na revisão. Deixe em branco para desativar completamente o recurso de anotação. |
A autorização é uma combinação AND de três verificações: permissões normais de categoria do Discourse, participação no grupo event_duplicator_allowed_groups e a permissão do discourse-calendar para criar postagens [event].
Limitações conhecidas
- A edição de data na etapa de revisão tem apenas granularidade de dia (sem edição de hora). Essa é uma decisão de escopo deliberada: o caso de uso alvo são datas recorrentes de corridas/eventos, não horários.
Código-fonte / problemas
- GitHub: GitHub - louking/discourse-event-duplicator: discourse plugin to duplicate events · GitHub
- Problemas/solicitações de recursos: Issues · louking/discourse-event-duplicator · GitHub
- Suítes de testes de backend (RSpec) e frontend (QUnit) estão incluídas e executadas no CI em cada push/PR.
Atualizado em 2026-08-01: a versão v1.1.0 adiciona deslocamento baseado em meses configurável, veja abaixo

