Muitos grupos de ciclismo têm passeios regulares - a turma do trajeto de segunda de manhã, o passeio de aventura do primeiro sábado do mês, ou a pedalada social de quarta à noite. Até agora, os organizadores tinham que criar manualmente cada evento. Com nossa nova funcionalidade de Festas Recorrentes, você pode configurar um horário uma vez e deixar o Party Onbici gerar as instâncias automaticamente.
O Problema com Eventos Únicos
Os grupos de ciclismo comunitários tipicamente têm horários previsíveis:
- “Toda terça e quinta às 6:30 da manhã”
- “O primeiro domingo de cada mês”
- “A cada dois sábados de manhã”
Criar esses eventos manualmente é tedioso, propenso a erros e dificulta manter rotas e configurações consistentes entre as ocorrências.
Apresentamos o iCalendar RRULE
Construímos nosso sistema de eventos recorrentes sobre o padrão iCalendar RRULE (RFC 5545). Este é o mesmo formato usado pelo Google Calendar, Apple Calendar e Outlook - garantindo compatibilidade com o ecossistema de calendários mais amplo.
Exemplos de Padrões de Recorrência
| |
O Modelo de Dados
Um RecurringParty serve como template que gera instâncias de Party:
| |
Cada instância de Party gerada vincula de volta ao seu pai:
| |
Geração de Instâncias
Quando uma festa recorrente é criada ou o horário muda, geramos instâncias para o período seguinte:
| |
Geração Automática com Celery Beat
Uma tarefa Celery diária mantém as instâncias atualizadas:
| |
O agendamento do Celery Beat executa isso à meia-noite:
| |
Interface do Usuário
Criando uma Festa Recorrente
O formulário usa o widget django-recurrence para construir padrões RRULE:
| |
O widget fornece uma interface intuitiva para padrões comuns:
- Diário / Semanal / Mensal / Anual
- Dias específicos da semana
- Padrões ordinais (primeiro, segundo, último)
- Intervalos personalizados (a cada 2 semanas)
- Condições de fim (até uma data, após N ocorrências, ou nunca)
Gerenciando Instâncias
Os organizadores podem ver todas as instâncias geradas e:
- Editar instâncias individuais - Alterar rota ou horário para uma ocorrência
- Cancelar instâncias - Marcar datas específicas como canceladas
- Regenerar instâncias - Acionar manualmente a geração para os próximos 30 dias
Tratamento de Casos Especiais
Consciência de Fuso Horário
Todas as datas são armazenadas no fuso horário configurado do organizador e exibidas no horário local do visualizador:
| |
Tratamento de Feriados e Exceções
Os usuários podem cancelar instâncias individuais sem afetar o padrão recorrente:
| |
As instâncias canceladas ainda aparecem na lista com um indicador visual, evitando confusão.
Instâncias Órfãs
Se uma festa recorrente é excluída, as instâncias geradas podem opcionalmente ser preservadas:
| |
A Experiência do Usuário
Criar um passeio semanal leva apenas alguns passos:
- Vá em Painel de Controle → Festas Recorrentes → Criar
- Defina os detalhes da sua festa (rota, horários, dificuldade)
- Configure o padrão de recorrência (ex., “Todo sábado às 8h”)
- Defina a data de início e a data de fim opcional
- Salve - as instâncias são geradas automaticamente!
O sistema cria instâncias de festas com 30 dias de antecedência, e o Celery continua gerando novas conforme o tempo passa.
Benefícios para as Comunidades de Ciclismo
- Configure e esqueça - Chega de criação semanal de eventos
- Consistência - Mesma rota, mesmo horário, mesmas configurações
- Flexibilidade - Edite ou cancele ocorrências individuais
- Descoberta - Os ciclistas podem facilmente encontrar passeios de grupo regulares
- Integração de calendário - Inscreva-se em eventos recorrentes no seu app de calendário
Pronto para configurar seu passeio regular? Crie uma festa recorrente e deixe a gente cuidar do agendamento!