Diese viel nachgefragte Funktion ermöglicht es Ihnen, anzugeben, wann eine Serie von wiederkehrenden Ereignissen enden soll, was Ihnen mehr Kontrolle über Ihre Terminplanung gibt.
Erstellen Sie tägliche, wöchentliche oder monatliche wiederkehrende Ereignisse – und legen Sie jetzt genau fest, wann sie enden sollen.
Eine knifflige Sache bei dem Wort „Bis“ ist, dass es nicht ganz offensichtlich ist, ob es eingeschlossen oder ausgeschlossen ist. Gibt es hier etwas, was wir tun können, um mehr Klarheit zu schaffen?
Sie könnten sich einige Ideen von meiner Implementierung der Gutschein-Start-/Enddaten im neuen Gutscheindialog in einem E-Commerce-System, an dem ich arbeite, abschauen:
Technische Details: In unserer Anwendung speichern wir Daten immer als „Timestamp mit Zeitzone“ (Postgres), sodass keine Datenbank- oder Verbindungseinstellung den tatsächlich gespeicherten Zeitstempel beeinflussen kann. Obwohl Postgres es nicht empfiehlt, tun wir es, weil es 100%ige Garantien für die Korrektheit des Datums in jeder Situation und jeder SQL-Abfrage bietet. Sie können mit Datum-Zeitzonen direkt in Postgres mit deren Datums-/Zeit-/Zeitzonenfunktionen arbeiten und sicher sein, dass dies immer zu 100% korrekt funktioniert. Wir verlassen uns darauf.
Und dann haben wir eine Zeitzoneneinstellung für alle Arten von Entitäten, die sie benötigen: Benutzerprofile, Märkte, Gutscheine, Berichte für Buchhalter usw. – damit wir beliebige Daten ohne zu zögern in beliebige Zeitzonen übersetzen können.
Die wichtigsten Erkenntnisse hier sind:
Speichern Sie Datum und Uhrzeit immer mit Zeitzone.
Speichern Sie immer die Zeitzonenpräferenz.
Seien Sie in der Benutzeroberfläche sehr explizit bei Daten, machen Sie keine Magie.
Lassen Sie den Benutzer die tatsächlichen Daten in der gewählten Zeitzone sehen, bevor er auf „Speichern“ klickt.
Ich denke, der Screenshot zeigt den Dialog Datum / Uhrzeit einfügen und nicht den Dialog Ereignis erstellen.
Das sind zwei unterschiedliche Workflows in Discourse Calendar:
Datum / Uhrzeit einfügen wird für Antworten in einem Thema verwendet, dessen Eröffnungsbeitrag einen [calendar]-Block enthält.
Ereignis erstellen erstellt ein tatsächliches Ereignis ([event ...][/event]), und hier sind die Einstellungen für wiederkehrende Ereignisse, einschließlich des Enddatums der Wiederholung, verfügbar.
Für die in diesem Thema angekündigte Funktion öffne also das +-Menü im Editor und wähle Ereignis erstellen aus, anstatt Datum / Uhrzeit einfügen.
Ich habe kürzlich den Workflow für wiederkehrende Ereignisse getestet und dabei auch einen Sonderfall gefunden, nachdem eine begrenzte Wiederholung vollständig abgelaufen ist. Einen Fix dafür habe ich hier eröffnet:
Nur zur Klarstellung: Ich denke, es handelt sich hier nicht wirklich um einen Fall, in dem die Funktion für Datum / Uhrzeit einfügen nicht funktioniert – es ist ein anderer Workflow.
Datum / Uhrzeit einfügen wird verwendet, wenn du einen [calendar]-Block im Eröffnungsbeitrag eines Themas hast und datierte Antworten in dem Kalender dieses bestimmten Themas erscheinen sollen.
Ereignis erstellen hingegen erstellt ein tatsächliches Discourse-Event ([event ...][/event]). Das in diesem Thema besprochene Enddatum für wiederkehrende Ereignisse gilt für dieses Ereignis-Wiederholungssystem.
Wenn dein Ziel also darin besteht, einen Kalender lokal für ein einzelnes Thema zu pflegen, ist der in deinem ursprünglichen Screenshot gezeigte Workflow der richtige; er nutzt nur nicht dieselbe begrenzte Wiederholungsfunktion wie Events.
Der Anwendungsfall ist die Pflege eines Kalenders für meine Schule. Es gibt immer wieder Termine, die eingetragen werden müssen, und daher kann jeder Elternteil auf das Thema antworten, um einen neuen Termin hinzuzufügen.
Aber erst gestern musste ich einen wiederkehrenden Termin eintragen, und leider bietet dieser Workflow diese Option nicht. Also muss ich es manuell erledigen, indem ich mehrfach auf das Thema antworte und jeweils ein neues Datum angibt (ich weiß nicht, ob es dafür einen cleveren Weg gibt …).
Es gibt möglicherweise eine Möglichkeit, die manuellen Antworten zu automatisieren, während du deinen bestehenden, topic-lokalen [calendar]-Workflow beibehältst.
Eine Option wäre, einen dedizierten Discourse-Benutzer mit aktivierter Antwort-per-E-Mail-Funktion zu verwenden und dann ein Tool wie Power Automate oder eine Azure Logic App einzusetzen, um die einzelnen datierten Antworten zu generieren und per E-Mail in das Kalender-Thema zu senden.
Zum Beispiel könnte ein wöchentliches Termin mit Enddatum durch die Automatisierung in die erforderlichen einzelnen Antworten aufgeteilt werden, sodass die Eltern weiterhin einen normalen Themenkalender sehen und keine separaten Event-Themen.
Es gibt einige Details rund um die benutzerspezifischen Antwort-per-E-Mail-Schlüssel in Discourse, die sorgfältig konfiguriert werden müssen. Daher ist dieses Thema wahrscheinlich nicht der beste Ort, um die Konfiguration im Detail durchzugehen.
Falls dieser Ansatz für dich nützlich wäre, helfe ich gerne, ihn in einem separaten Meta-Thema gemeinsam durchzuarbeiten.
Bisher ist es nur einmal passiert, daher warte ich auf das nächste Mal (und hoffe, dass es nicht wieder vorkommt).
Den Trick mit der Antwort per E-Mail behalte ich mir auf jeden Fall, danke. Bedeutet das aber, dass wir für ein wöchentliches Event über ein ganzes Jahr 52 Antworten generieren müssen? Das würde das Thema schwer lesbar machen …
Ansonsten nehme ich an, dass ich als Administrator auch die API nutzen kann, um die Termine manuell hinzuzufügen.
Ja – leider würde die API zwar das Erstellen der Antworten automatisieren, aber das Problem mit dem Chaos nicht wirklich lösen: Bei einem Themenkalender werden die einzelnen Kalendereinträge weiterhin durch einzelne Antworten dargestellt.
Ich habe gerade einen bestehenden Funktionswunsch gefunden, der fast exakt deinem Anwendungsfall entspricht:
Ihr Beispiel ist ein Kurs, der an zwölf aufeinanderfolgenden Mittwochen stattfindet, und sie machen denselben Punkt: Das individuelle Erstellen jedes Vorkommnisses ist mühsam und macht das Thema unübersichtlich.
Sie schlagen vor, in Datum / Uhrzeit einfügen eine Wiederholung zusammen mit einem Enddatum für das letzte Vorkommnis zuzulassen, was sehr nah an dem liegt, was du brauchst.
Anstatt also einen API-/Power-Automate-Workaround zu bauen, der 52 Beiträge generiert, ist dieser Funktionswunsch wahrscheinlich der bessere Ort, um deinen Anwendungsfall für den Schulkalender zu ergänzen.