📅 Nouvelle fonctionnalitĂ© de calendrier : Date de fin pour les Ă©vĂ©nements rĂ©currents

Vous pouvez désormais définir une date de fin pour les événements récurrents dans Discourse Calendar ! :sparkles:

Cette fonctionnalitĂ© trĂšs demandĂ©e vous permet de spĂ©cifier quand une sĂ©rie d’évĂ©nements rĂ©currents doit s’arrĂȘter, vous donnant ainsi plus de contrĂŽle sur la planification de vos Ă©vĂ©nements.

Créez des événements qui se répÚtent quotidiennement, hebdomadairement ou mensuellement - et déterminez maintenant exactement quand ils doivent se terminer.

Pour plus de détails sur le plugin Calendar et ses fonctionnalités, visitez le sujet officiel de Calendar.

À l’avenir, nous pourrions ajouter la possibilitĂ© d’exclure des jours de la semaine spĂ©cifiques.

22 « J'aime »

Une chose dĂ©licate avec le mot « Until » est qu’il n’est pas tout Ă  fait Ă©vident s’il est inclus ou exclu. Pouvons-nous faire quelque chose ici pour apporter plus de clartĂ© ?

2 « J'aime »

Oui, Google Agenda a le mĂȘme problĂšme ! Ils utilisent On, mais cela souffre de la mĂȘme ambiguĂŻtĂ© :

Cependant, je pense que la plupart des utilisateurs supposeraient sans risque que Until inclut cette date.

3 « J'aime »

Jusqu'Ă  (inclus) :

?

edit : J’ai fait ceci pour l’instant UX: better copy by jjaffeux · Pull Request #737 · discourse/discourse-calendar · GitHub semble ĂȘtre un changement simple et bon.


Une solution alternative serait d’afficher la date/heure rĂ©elle Ă  cĂŽtĂ© du champ de saisie de la date, mais probablement excessif ?

3 « J'aime »

Vous pourriez vouloir emprunter quelques idées à mon implémentation des dates de début/fin de bon dans la boßte de dialogue Nouveau bon dans un e-commerce sur lequel je travaille :


Un autre exemple pour dĂ©montrer la flexibilitĂ© et comment nous Ă©vitons l’ambiguĂŻtĂ© dans les plages de dates dans l’interface utilisateur :


DĂ©tail technique : Dans notre application, nous enregistrons toujours les dates sous forme de « timestamp avec fuseau horaire » (postgres), de sorte qu’aucun paramĂštre de base de donnĂ©es, ni aucun paramĂštre de connexion, ne peut affecter le timestamp rĂ©el stockĂ©. MĂȘme si Postgres ne le recommande pas, nous le faisons car cela garantit Ă  100 % la correction de la date dans toutes les situations et dans toutes les requĂȘtes SQL. Vous pouvez manipuler les fuseaux horaires de date directement dans postgres en utilisant leurs fonctions de date/heure/fuseau horaire et ĂȘtre certain que cela fonctionnera toujours Ă  100 % correctement. Nous nous y fions.

Et ensuite, nous avons un paramĂštre de fuseau horaire pour tous les types d’entitĂ©s qui en ont besoin : profils d’utilisateurs, marchĂ©s, bons, rapports pour les comptables, etc. - afin que nous puissions traduire n’importe quelles dates dans n’importe quels fuseaux horaires Ă  la volĂ©e sans hĂ©sitation.

Les principaux points Ă  retenir ici sont :

  1. Stockez toujours la date et l’heure avec le fuseau horaire.
  2. Stockez toujours la préférence du fuseau horaire.
  3. Soyez trùs explicite sur les dates dans l’interface utilisateur, ne faites pas de magie.
  4. Laissez l’utilisateur voir les dates rĂ©elles dans le fuseau horaire choisi avant de cliquer sur « Enregistrer ».
1 « J'aime »

Bonjour,

Sur mon instance auto-hébergée (génée il y a un mois), je ne vois aucune option de date de fin.

Est-ce que je fais une erreur ?

Je pense que la capture d’écran montre la boĂźte de dialogue InsĂ©rer une date / une heure plutĂŽt que celle de CrĂ©er un Ă©vĂ©nement.

Ce sont deux flux de travail différents dans Discourse Calendar :

  • InsĂ©rer une date / une heure est utilisĂ© pour les rĂ©ponses dans un sujet dont le message d’ouverture contient un bloc [calendar].
  • CrĂ©er un Ă©vĂ©nement crĂ©e un vĂ©ritable ÉvĂ©nement ([event ...][/event]) et c’est lĂ  que se trouvent les paramĂštres des ÉvĂ©nements rĂ©currents, y compris la date de fin de la rĂ©currence.

Donc, pour la fonctionnalitĂ© annoncĂ©e dans ce sujet, essayez d’ouvrir le menu + du composeur et de choisir CrĂ©er un Ă©vĂ©nement, plutĂŽt que InsĂ©rer une date / une heure.

Je testais rĂ©cemment ce flux d’ÉvĂ©nement rĂ©current et j’ai Ă©galement dĂ©couvert un cas limite aprĂšs qu’une rĂ©currence bornĂ©e a complĂštement expirĂ©, pour lequel j’ai ouvert une correction ici :

1 « J'aime »

En effet, il s’agissait de maintenir un calendrier (en collectant les Ă©vĂ©nements) dans un sujet.

Désolé pour le malentendu, je suis nouveau ici.

En effet, lors de la crĂ©ation d’un Ă©vĂ©nement, cela semble fonctionner.

C’est dommage que cela ne fonctionne pas pour InsĂ©rer date / heure.

Merci pour votre aide !

1 « J'aime »

Pas de souci :slightly_smiling_face:

Juste pour clarifier, je ne pense pas qu’il s’agisse vraiment d’un problĂšme de la fonctionnalitĂ© InsĂ©rer date / heure qui ne fonctionne pas — il s’agit d’un flux de travail diffĂ©rent.

InsĂ©rer date / heure est utilisĂ© lorsque vous avez un bloc [calendar] dans le message d’ouverture d’un sujet et que vous souhaitez que les rĂ©ponses datĂ©es apparaissent sur le calendrier de ce sujet en particulier.

CrĂ©er un Ă©vĂ©nement, en revanche, crĂ©e un vĂ©ritable Ă©vĂ©nement Discourse ([event ...][/event]). La date de fin de l’évĂ©nement rĂ©current discutĂ©e dans ce sujet s’applique Ă  ce systĂšme de rĂ©currence d’évĂ©nements.

Ainsi, si votre objectif est de maintenir un calendrier local Ă  un seul sujet, le flux de travail montrĂ© dans votre capture d’écran d’origine est le bon ; il n’utilise simplement pas la mĂȘme fonctionnalitĂ© de rĂ©currence bornĂ©e que les ÉvĂ©nements.

Oui, je comprends.

Le cas d’usage consiste Ă  maintenir un calendrier pour mon Ă©cole. Il y a toujours des rendez-vous Ă  saisir, et n’importe quel parent peut rĂ©pondre au sujet pour ajouter un nouveau rendez-vous.

Mais hier seulement, j’avais besoin de saisir un rendez-vous rĂ©current, et malheureusement, cette option n’existe pas dans ce flux de travail. Je dois donc le faire manuellement en rĂ©pondant plusieurs fois au sujet avec une nouvelle date (je ne sais pas s’il existe une mĂ©thode plus astucieuse
).

Il existe peut-ĂȘtre un moyen d’automatiser les rĂ©ponses manuelles tout en conservant votre flux de travail local au sujet [calendar] existant.

Une possibilitĂ© consisterait Ă  utiliser un utilisateur dĂ©diĂ© de Discourse avec la fonction « rĂ©pondre par e-mail » activĂ©e, puis Ă  faire en sorte qu’un outil tel que Power Automate ou une Azure Logic App gĂ©nĂšre les rĂ©ponses individuelles datĂ©es et les envoie dans le sujet du calendrier par e-mail.

Par exemple, un rendez-vous hebdomadaire avec une date de fin pourrait ĂȘtre dĂ©veloppĂ© par l’automatisation en les rĂ©ponses individuelles requises, de sorte que les parents verraient toujours un calendrier de sujet normal plutĂŽt que des sujets d’évĂ©nements sĂ©parĂ©s.

Il y a quelques dĂ©tails concernant les clĂ©s de rĂ©ponse par e-mail par utilisateur de Discourse qui doivent ĂȘtre configurĂ©s avec soin, donc ce sujet n’est probablement pas le meilleur endroit pour passer en revue la configuration.

Si cette approche vous semble utile, je serai ravi de vous aider Ă  la mettre en Ɠuvre dans un sujet Meta sĂ©parĂ©.

Cela ne s’est produit qu’une seule fois pour l’instant, donc j’attendrai la prochaine fois (et j’espùre que cela ne se reproduira pas).

Je garde l’astuce de la rĂ©ponse par e-mail, merci. Mais cela signifie-t-il que pour un Ă©vĂ©nement hebdomadaire sur toute une annĂ©e, nous devrons gĂ©nĂ©rer 52 rĂ©ponses ? Cela rendra le sujet difficile Ă  lire


Sinon, je suppose que, puisque j’ai les droits d’administrateur, je peux Ă©galement utiliser l’API pour ajouter manuellement les rendez-vous.

Merci pour ces précisions !

Oui — malheureusement, l’API automatiserait la crĂ©ation des rĂ©ponses, mais elle ne rĂ©soudrait pas vraiment le problĂšme de la surcharge : pour un calendrier de sujet, les entrĂ©es individuelles du calendrier sont toujours reprĂ©sentĂ©es par des rĂ©ponses individuelles.

Je viens de trouver une demande de fonctionnalitĂ© existante qui correspond presque exactement Ă  votre cas d’utilisation :

Leur exemple est un cours qui se dĂ©roule sur douze mercredis consĂ©cutifs, et ils font le mĂȘme constat : crĂ©er chaque occurrence individuellement est fastidieux et encombre le sujet.

Ils proposent d’autoriser la rĂ©currence dans InsĂ©rer une date / heure, accompagnĂ©e d’une date de fin pour la derniĂšre occurrence, ce qui semble trĂšs proche de ce dont vous avez besoin.

PlutĂŽt que de crĂ©er un contournement via une API/Power Automate qui gĂ©nĂ©rerait 52 publications, cette demande de fonctionnalitĂ© est probablement le meilleur endroit pour ajouter votre cas d’utilisation de calendrier scolaire.

1 « J'aime »

Merci, je vais le faire !

Si vous craignez le dĂ©sordre, je recommande plutĂŽt le paramĂštre Events_calendar_categories plutĂŽt que le calendrier par sujet, et les parents peuvent accĂ©der Ă  Discourse grĂące Ă  une automatisation qui mĂšne Ă