Muitos grupos ciclísticos têm passeios regulares - a equipa de deslocação da segunda-feira de manhã, o passeio de aventura do primeiro sábado do mês, ou a volta social de quarta-feira à noite. Até agora, os organizadores tinham de criar manualmente cada evento. Com a nossa nova funcionalidade de Festas Recorrentes, pode configurar um horário uma vez e deixar o Party Onbici gerar as instâncias automaticamente.
O Problema com Eventos Únicos
Os grupos ciclísticos comunitários têm tipicamente horários previsíveis:
- “Todas as terças e quintas às 6:30”
- “O primeiro domingo de cada mês”
- “Cada dois sábados de manhã”
Criar estes eventos manualmente é tedioso, propenso a erros e dificulta manter rotas e configurações consistentes entre ocorrências.
Apresentamos o iCalendar RRULE
Construímos o 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 modelo que gera instâncias de Party:
| |
Cada instância de Party gerada liga 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 isto à meia-noite:
| |
Interface de Utilizador
Criar 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 (cada 2 semanas)
- Condições de fim (até uma data, após N ocorrências, ou nunca)
Gerir 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 apresentadas na hora local do visualizador:
| |
Tratamento de Feriados e Exceções
Os utilizadores 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 é eliminada, as instâncias geradas podem opcionalmente ser preservadas:
| |
A Experiência do Utilizador
Criar um passeio semanal leva apenas alguns passos:
- Vá a Painel de Controlo → Festas Recorrentes → Criar
- Defina os detalhes da sua festa (rota, horários, dificuldade)
- Configure o padrão de recorrência (ex., “Todos os sábados às 8h”)
- Defina a data de início e a data de fim opcional
- Guarde - as instâncias são geradas automaticamente!
O sistema cria instâncias de festas com 30 dias de antecedência, e o Celery continua a gerar novas à medida que o tempo passa.
Benefícios para as Comunidades Ciclísticas
- Configure e esqueça - Acabaram-se as criações semanais 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 - Subscreva eventos recorrentes na sua aplicação de calendário
Pronto para configurar o seu passeio regular? Crie uma festa recorrente e deixe-nos tratar do agendamento!