Skip to content

Vues du calendrier et détail du jour

Le module Calendrier a deux onglets et une barre de filtres toujours visible. Les valeurs par défaut sont réglées pour « ce qui se passe ce mois-ci, dans ma branche » — la question la plus courante — mais les filtres et le sélecteur de vue vous permettent d'élargir ou de rétrécir selon le besoin.

Vue mensuelle du calendrier

La grille mensuelle

L'onglet Calendrier est la surface d'atterrissage par défaut. Il rend une grille mensuelle traditionnelle avec la date sélectionnée mise en évidence et trois couches visuelles sur chaque cellule du jour :

  • Points d'événement — colorés selon la couleur choisie de l'événement. Un point par événement, plafonné visuellement pour qu'une journée chargée ne déborde pas.
  • Marqueurs d'anniversaire — une petite icône de gâteau. Tirés directement de members.date_of_birth, pas d'une ligne d'événement.
  • Soulignement du jour — la date actuelle est soulignée, indépendamment de la date que vous avez sélectionnée.

Cliquez sur n'importe quelle date pour charger le panneau de détail du jour sous la grille. Cliquez sur le nom du mois dans l'en-tête pour sauter au sélecteur de mois ; cliquez sur les flèches pour avancer mois par mois. La date sélectionnée persiste quand vous changez de mois — le panneau montre toujours ce qui a été choisi en dernier.

TIP

Vous n'avez pas à cliquer dans une journée pour lire ses événements — survolez un point d'événement et une carte d'aperçu apparaît avec le titre, l'heure et le lieu.

Ce que la grille requête réellement

La grille mensuelle exécute une seule requête Supabase pour la fenêtre visible : chaque événement dont la event_date tombe dans le mois ou dont recurring = true indépendamment de la date. Le navigateur étend ensuite les lignes récurrentes en occurrences individuelles à l'aide de la RRULE, filtrant les dates d'exception et les dates au-delà de recurrence_end_date. Il n'y a pas de cron côté serveur qui pré-calcule les lignes d'occurrence — tout est dérivé à la volée.

Cela signifie que les changements se propagent instantanément. Modifiez la RRULE d'un événement récurrent et les nouvelles dates s'affichent au prochain rendu ; ajoutez une exception et la date annulée disparaît au moment où la requête se revalide.

Le panneau de détail du jour

Sous la grille, une carte montre tout ce qui se passe à la date actuellement sélectionnée — les événements d'abord, puis les anniversaires, séparés par un séparateur quand les deux sont présents. Chaque carte d'événement porte :

  • Une barre colorée correspondant à la couleur de l'événement.
  • Le titre, l'heure de début/fin, le lieu.
  • Une icône de répétition si la date vient d'une expansion récurrente.
  • Un badge de branche si l'événement est limité à une unité organisationnelle spécifique.
  • Les boutons Modifier et Supprimer (visibles uniquement si vous avez events.edit / events.delete).

Cliquez n'importe où sur la carte pour ouvrir la boîte de dialogue d'édition ; cliquez sur l'icône de corbeille pour la confirmation de suppression douce. Les cartes d'anniversaire sont cliquables et mènent directement au profil du membre.

L'état vide est intentionnel : si rien n'est sur la date et que vous avez events.create, un petit lien « + Ajouter un événement » apparaît dans le panneau vide pour que vous puissiez le remplir sans quitter l'écran.

La liste à venir

L'onglet À venir retourne le calendrier : au lieu d'aménager un mois, il affiche les vingt prochains événements à partir d'aujourd'hui, dans l'ordre chronologique. Chaque ligne est la même carte d'événement compacte que vous voyez dans le panneau du jour, plus une étiquette de date.

Utilisez cet onglet quand vous répondez à « quoi de neuf ? » plutôt qu'à « qu'est-ce qui est au programme du 14 mars ? » — c'est la bonne vue pour une réunion des leaders un lundi matin où vous passez en revue la semaine à venir.

La requête à venir est bornée par le filtre de branche et par le rôle de l'utilisateur. Un pasteur affecté à une branche ne voit que les événements de cette branche ; un administrateur global voit les vingt à travers l'org.

Filtrage par unité organisationnelle

La barre d'outils porte un seul menu déroulant étiqueté d'une icône de branche. Par défaut, il affiche votre branche assignée ; les administrateurs à portée globale voient « Toutes les branches ».

Le filtre applique une clause OR org_unit_id IS NULL, ce qui signifie que les événements à l'échelle de l'org restent visibles peu importe la branche choisie. Un service de Noël marqué comme à l'échelle de l'org apparaît sur le calendrier de chaque branche. Seuls les événements spécifiques à une branche (avec un org_unit_id concret) sont écartés.

Les utilisateurs dont le rôle ne couvre pas l'org entière ne voient que les branches auxquelles ils sont affectés dans le menu déroulant. Il n'y a pas de « fuite » — choisir une branche à laquelle vous n'êtes pas affecté n'est pas une option pour commencer.

WARNING

Le filtre ne prend pas en charge la sélection multiple actuellement. Si vous avez besoin de comparer deux branches spécifiques, basculez entre elles ; si vous avez besoin d'une vraie vue transversale, choisissez « Toutes les branches ».

Filtrage par catégorie d'événement

Chaque événement a une colonne texte category (définie sur le formulaire d'événement, distincte de la couleur) — des valeurs comme service, outreach, meeting, social. Le calendrier n'affiche pas la catégorie comme filtre de premier niveau aujourd'hui ; elle est enregistrée pour être utilisée par les rapports et les futures passes de filtre.

Si vous cherchez un sous-ensemble par catégorie maintenant, le contournement est la liste à venir — scannez visuellement par couleur, puisque la plupart des orgs font correspondre couleur et catégorie un-à-un (bleu = service, vert = outreach, etc.).

Permissions et ce que chaque rôle voit

Les règles de vue sont simples :

RôleVoit
AdminTout dans l'org, chaque branche.
PasteurTout dans ses branches assignées.
BergerÉvénements à l'échelle de l'org + événements de sa branche assignée.
MembreÉvénements à l'échelle de l'org + événements dans sa branche principale.

La même permission events.view contrôle la page entièrement. Sans elle, l'élément de menu est caché.

Mobile et petits écrans

Sur un téléphone, la grille mensuelle conserve sa pleine disposition mais chaque cellule rétrécit ; les points d'événement passent de barres colorées à de petits cercles pleins. Le panneau de détail du jour s'empile sous la grille comme une carte séparée — touchez la date que vous voulez, faites défiler vers le bas. Le filtre de branche et le sélecteur d'onglets se déplacent tous deux dans la barre d'outils collante pour qu'ils restent accessibles.

L'installation PWA est la meilleure expérience si vous vivez sur mobile — les vues du calendrier semblent natives et la cible tactile du détail du jour est plus grande. Les notifications push deviennent aussi possibles une fois installées, ce qui alimente le flux de rappels sans passer par les crédits SMS ou WhatsApp.