De nombreux groupes cyclistes ont des sorties régulières - l’équipe du trajet du lundi matin, la sortie aventure du premier samedi du mois, ou la balade sociale du mercredi soir. Jusqu’à présent, les organisateurs devaient créer manuellement chaque événement. Avec notre nouvelle fonctionnalité de Fêtes Récurrentes, vous pouvez configurer un calendrier une fois et laisser Party Onbici générer automatiquement les instances.
Le Problème des Événements Uniques
Les groupes cyclistes communautaires ont généralement des horaires prévisibles :
- “Tous les mardis et jeudis à 6h30”
- “Le premier dimanche de chaque mois”
- “Un samedi matin sur deux”
Créer ces événements manuellement est fastidieux, sujet aux erreurs et rend difficile le maintien de routes et paramètres cohérents entre les occurrences.
Présentation de iCalendar RRULE
Nous avons construit notre système d’événements récurrents sur le standard iCalendar RRULE (RFC 5545). C’est le même format utilisé par Google Calendar, Apple Calendar et Outlook - garantissant la compatibilité avec l’écosystème calendrier plus large.
Exemples de Modèles de Récurrence
| |
Le Modèle de Données
Un RecurringParty sert de modèle qui génère des instances de Party :
| |
Chaque instance de Party générée renvoie à son parent :
| |
Génération d’Instances
Lorsqu’une fête récurrente est créée ou que le calendrier change, nous générons des instances pour la période à venir :
| |
Génération Automatique avec Celery Beat
Une tâche Celery quotidienne maintient les instances à jour :
| |
Le planificateur Celery Beat exécute ceci à minuit :
| |
Interface Utilisateur
Créer une Fête Récurrente
Le formulaire utilise le widget django-recurrence pour construire des modèles RRULE :
| |
Le widget fournit une interface intuitive pour les modèles courants :
- Quotidien / Hebdomadaire / Mensuel / Annuel
- Jours spécifiques de la semaine
- Modèles ordinaux (premier, deuxième, dernier)
- Intervalles personnalisés (toutes les 2 semaines)
- Conditions de fin (jusqu’à une date, après N occurrences, ou jamais)
Gestion des Instances
Les organisateurs peuvent voir toutes les instances générées et :
- Modifier des instances individuelles - Changer l’itinéraire ou l’heure pour une occurrence
- Annuler des instances - Marquer des dates spécifiques comme annulées
- Régénérer des instances - Déclencher manuellement la génération pour les 30 prochains jours
Gestion des Cas Particuliers
Conscience des Fuseaux Horaires
Toutes les dates sont stockées dans le fuseau horaire configuré de l’organisateur et affichées dans l’heure locale du spectateur :
| |
Gestion des Jours Fériés et Exceptions
Les utilisateurs peuvent annuler des instances individuelles sans affecter le modèle récurrent :
| |
Les instances annulées apparaissent toujours dans la liste avec un indicateur visuel, évitant la confusion.
Instances Orphelines
Si une fête récurrente est supprimée, les instances générées peuvent optionnellement être préservées :
| |
L’Expérience Utilisateur
Créer une sortie hebdomadaire ne prend que quelques étapes :
- Allez dans Tableau de bord → Fêtes Récurrentes → Créer
- Définissez les détails de votre fête (itinéraire, horaires, difficulté)
- Configurez le modèle de récurrence (ex., “Tous les samedis à 8h”)
- Définissez la date de début et la date de fin optionnelle
- Enregistrez - les instances sont générées automatiquement !
Le système crée des instances de fêtes 30 jours à l’avance, et Celery continue à en générer de nouvelles au fil du temps.
Avantages pour les Communautés Cyclistes
- Configurez et oubliez - Plus de création d’événements hebdomadaires
- Cohérence - Même itinéraire, même horaire, mêmes paramètres
- Flexibilité - Modifiez ou annulez des occurrences individuelles
- Découverte - Les cyclistes peuvent facilement trouver des sorties de groupe régulières
- Intégration calendrier - Abonnez-vous aux événements récurrents dans votre application calendrier
Prêt à configurer votre sortie régulière ? Créez une fête récurrente et laissez-nous gérer la planification !