Muchos grupos ciclistas tienen paseos regulares: el grupo del lunes por la mañana para ir al trabajo, el paseo de aventura del primer sábado del mes, o la salida social del miércoles por la noche. Hasta ahora, los organizadores tenían que crear manualmente cada evento. Con nuestra nueva función de Fiestas Recurrentes, puedes configurar un horario una vez y dejar que Party Onbici genere las instancias automáticamente.
El Problema con los Eventos Únicos
Los grupos ciclistas comunitarios típicamente tienen horarios predecibles:
- “Todos los martes y jueves a las 6:30 AM”
- “El primer domingo de cada mes”
- “Cada dos sábados por la mañana”
Crear estos eventos manualmente es tedioso, propenso a errores y dificulta mantener rutas y configuraciones consistentes entre ocurrencias.
Presentamos iCalendar RRULE
Construimos nuestro sistema de eventos recurrentes sobre el estándar iCalendar RRULE (RFC 5545). Este es el mismo formato usado por Google Calendar, Apple Calendar y Outlook, asegurando compatibilidad con el ecosistema de calendarios más amplio.
Ejemplos de Patrones de Recurrencia
| |
El Modelo de Datos
Un RecurringParty sirve como plantilla que genera instancias de Party:
| |
Cada instancia de Party generada enlaza de vuelta a su padre:
| |
Generación de Instancias
Cuando se crea una fiesta recurrente o cambia el horario, generamos instancias para el período próximo:
| |
Generación Automática con Celery Beat
Una tarea diaria de Celery mantiene las instancias actualizadas:
| |
El horario de Celery Beat ejecuta esto a medianoche:
| |
Interfaz de Usuario
Creando una Fiesta Recurrente
El formulario usa el widget django-recurrence para construir patrones RRULE:
| |
El widget proporciona una interfaz intuitiva para patrones comunes:
- Diario / Semanal / Mensual / Anual
- Días específicos de la semana
- Patrones ordinales (primero, segundo, último)
- Intervalos personalizados (cada 2 semanas)
- Condiciones de fin (hasta una fecha, después de N ocurrencias, o nunca)
Gestionando Instancias
Los organizadores pueden ver todas las instancias generadas y:
- Editar instancias individuales - Cambiar ruta u horario para una ocurrencia
- Cancelar instancias - Marcar fechas específicas como canceladas
- Regenerar instancias - Activar manualmente la generación para los próximos 30 días
Manejo de Casos Especiales
Conciencia de Zona Horaria
Todas las fechas se almacenan en la zona horaria configurada del organizador y se muestran en la hora local del espectador:
| |
Manejo de Festivos y Excepciones
Los usuarios pueden cancelar instancias individuales sin afectar el patrón recurrente:
| |
Las instancias canceladas aún aparecen en la lista con un indicador visual, evitando confusión.
Instancias Huérfanas
Si se elimina una fiesta recurrente, las instancias generadas pueden preservarse opcionalmente:
| |
La Experiencia del Usuario
Crear un paseo semanal toma solo unos pasos:
- Ve a Panel de Control → Fiestas Recurrentes → Crear
- Configura los detalles de tu fiesta (ruta, horarios, dificultad)
- Configura el patrón de recurrencia (ej., “Todos los sábados a las 8 AM”)
- Establece la fecha de inicio y fecha de fin opcional
- Guarda - ¡las instancias se generan automáticamente!
El sistema crea instancias de fiestas con 30 días de anticipación, y Celery sigue generando nuevas a medida que pasa el tiempo.
Beneficios para las Comunidades Ciclistas
- Configúralo y olvídalo - No más creación semanal de eventos
- Consistencia - Misma ruta, mismo horario, mismas configuraciones
- Flexibilidad - Edita o cancela ocurrencias individuales
- Descubrimiento - Los ciclistas pueden encontrar fácilmente paseos grupales regulares
- Integración de calendario - Suscríbete a eventos recurrentes en tu aplicación de calendario
¿Listo para configurar tu paseo regular? Crea una fiesta recurrente y ¡déjanos manejar la programación!