📅 新しいカレンダー機能:定期的なイベントの終了日

Discourse Calendar で繰り返しイベントの終了日を設定できるようになりました!:sparkles:

この要望の多かった機能により、繰り返しイベントシリーズがいつ終了するかを指定できるようになり、イベントスケジューリングの制御が向上します。

毎日、毎週、または毎月繰り返されるイベントを作成し、それらがいつ終了するかを正確に決定できるようになりました。

Calendar プラグインとその機能の詳細については、公式 Calendar トピックをご覧ください。

将来的には、特定の曜日を除外する機能を追加する可能性があります。

「いいね!」 22

「Until」という言葉の扱いの難しい点は、それが含まれるのか除外されるのかが完全にはっきりしないことです。ここでより明確にするために何かできることはありますか?

「いいね!」 2

はい、Googleカレンダーも同じ問題を抱えています!彼らは「On」を使用していますが、それは同じ曖昧さの問題を抱えています。

しかし、ほとんどのユーザーは「Until」はその日付を含むと安全に想定すると思います。

「いいね!」 3

まで(含む):

編集:とりあえずこれをやりました UX: better copy by jjaffeux · Pull Request #737 · discourse/discourse-calendar · GitHub シンプルで良い変更のようです。


代替案としては、日付入力の横に実際の日時を表示することも考えられますが、おそらくやりすぎでしょうか?

「いいね!」 3

私が取り組んでいるeコマースの「新規バウチャー」ダイアログでのバウチャー開始/終了日の実装から、いくつかアイデアを拝借できるかもしれません。


UIで日付範囲の曖昧さを回避し、その柔軟性を示す別の例です。


技術的な詳細: 私たちのアプリケーションでは、日付は常に「タイムスタンプ(タイムゾーン付き)」(postgres)として保存されるため、データベースの設定や接続設定が実際に保存されるタイムスタンプに影響を与えることはありません。Postgresは推奨していませんが、これにより、どのような状況やSQLクエリでも日付の正確性が100%保証されるため、私たちはこの方法を採用しています。Postgresのdate/time/timezone関数を使用して、日付のタイムゾーンを直接操作でき、常に100%正確に機能することを確信できます。私たちはそれに依存しています。

そして、タイムゾーンが必要なすべてのエンティティ(ユーザープロファイル、マーケット、バウチャー、会計士向けのレポートなど)に対してタイムゾーン設定を用意しています。これにより、あらゆる日付をあらゆるタイムゾーンに、躊躇なくオンザフライで変換できます。

ここでの主なポイントは次のとおりです。

  1. 日付と時刻は常にタイムゾーンとともに保存する。
  2. タイムゾーンの選択は常に保存する。
  3. UIでは日付を非常に明確にし、魔法のような処理はしない。
  4. ユーザーが「保存」をクリックする前に、選択したタイムゾーンでの実際の日付を確認できるようにする。
「いいね!」 1