Discourse Calendar からの議論の続きです。
Fedora Project は現在、独自のカレンダリング Web アプリである Fedocal を使用しています。これは更新時期を迎えており、スタンドアロン アプリを書き直すのではなく、Discourse のカレンダーで置き換えることができるかどうかを検討しています。これは機能リクエストというよりは、ユースケースと、何をすべきかを評価する際に欠けていると思われる点をまとめたものです。
ユースケース
Fedocal には、私が把握している限り 3 つの重要なユースケースがあります。もし他にありましたら、お知らせいただければ検討に追加します。
- 会議のスケジュール設定。これは圧倒的に最も重要です。
- 人々が自分の空き状況を共有できるようにすること。現在、プロジェクトで責任のある立場にある人々に休暇のためにこれらを入力するように依頼していますが、実際に実行している人はほとんどいません。(個人的には、覚えていても非常に面倒だと感じています。)
- Flock to Fedora、Week of Diversity、または Release Party のような Fedora イベントを表示すること。これは現在実際には行っていません。
その他の可能性
- 2013 年に Flock カンファレンスのスケジュールに Fedocal を使用しようとしましたが、それ以降は行っていません。それを魅力的で簡単なソリューションにできると 良い のですが。
- Fedora のリリース スケジュール自体を表示すること。現在、これは go/no-go 会議のスケジュール設定にしか使用しておらず、実際のスケジュールには使用していないと思います。これを行う場合、手動入力ではなく、Fedora Project schedules から自動的に取得する必要があります。
現在の Discourse Calendar プラグインの短所
現在追加されている “events” システム は、私たちのニーズには合っていません。(サイト全体の投稿から「イベント」を収集して 1 つのグローバル カレンダーに表示しますが、それ以上の機能が必要です。
私の最初の仮定は、「トピックの最初の返信にカレンダーがあり、そのトピックへの返信のみで「供給」される」カレンダー プラグインの「従来の」部分を拡張することに焦点を当てるということです。しかし、サイト全体からイベントを取得するという別の方法の方が良い可能性もあります。その場合、複数のカレンダーをターゲットにできるように拡張する必要があります。(そしてその場合、ハンバーガー メニューに隠されているだけでなく、ピン留めされたトピックに埋め込めるようになると良いでしょう。)
したがって、それを踏まえて、必要となるものを以下に示します。
一般的に
- カレンダーの表示自体は非常に基本的なものです。
- もっと見栄えを良くできる
- 表示方法に合わせてスケーリングしたり適応したりする方法が全くない
- 月曜日から日曜日までの EU スタイルの週にハードコードされている
- エントリはローカル タイムゾーンにありますが、常に UTC で日を表示しているように見えるため、ローカル タイムゾーンの終日イベントがカレンダー上で 2 日間 にまたがって表示される可能性があります。(Discourse チームはこのバグを認識しています。)
- 月表示では、イベントの説明の最初の数文字しか表示されません。カレンダーが単純なことだけを扱う場合は問題ありません (たとえば、Fedora Social Hour での使用を参照)。しかし、さまざまなことがたくさんあるカレンダーには適していません。
- 現在、「Holiday」バージョンのカレンダーはイベントに色を割り当てることができますが、ユーザー名からプログラム的に派生した値を使用しています。これは、イベントごとに設定可能であるべきであり、ホリデー カレンダーだけでなくすべてのカレンダーに適用されるべきです。
- .ical フィードはないと思いますか?人々が Google カレンダーなどに簡単に追加できると良いでしょう。
- Nice to have: メーリング リストにリマインダー メールを送信する機能。サブスクライブされたユーザーだけでなく。まだ全員が Discourse に参加しているわけではありません!
- Nice to have: 追跡するエントリを正確に選択できる 個人用 カレンダービュー。
会議ユースケース
- Fedocal には 2 つの主要な「軸」があります。カレンダー エントリが属するグループ (例: 「council」) と場所 (例: 「#fedora-meeting」) です。カレンダー プラグインはどちらか一方を実行できます。私たちは「Fedora Council Meetings」トピックまたは「Fedora Meeting Channel」トピックを作成できますが、エントリはリンクされません。プラグインとして最適な設計がどのようなものになるのか、私にはよくわかりません。UX デザイナーの専門知識を活用して、それについて考えることができると思います。
- 「グループ」軸が Discourse グループであれば問題ありません。特に、いつか _いつか _ SSO に Discourse グループをリンクさせる予定であるためです。
- または、カレンダーの「グループ」軸は タグ である可能性があります。これはより柔軟性があり、サイトの組織のためにグループからタグへのマッピングを計画しているため、私たちにとってうまく機能するでしょう。
- 「場所」軸は短いです。会議チャネルがいくつかあり、奇妙なケースのために「その他」の場所を許可するのが十分でしょう。
- 重要: システムは、両方の軸で競合が発生しないようにする必要があります (または少なくとも警告する必要があります)。つまり、同じ時間に 2 つの council グループ会議を開催することはできません。また、同じ場所に異なるグループからの 2 つの会議を同時に開催することはできません。
- ただし、「その他」というキャッチオールがある場合は… いくつかの場所では重複が許可されるべきだと思います。
- 繰り返しイベントの構文は少し奇妙ですが、大丈夫です。しかし、繰り返しイベントはカレンダー グリッドに繰り返しとして表示されるだけで (リマインダーは次のものに更新されます)、それ以上のものはありません。そして、もっとあるべきです。
- 重要: 各繰り返しイベントに対して、カレンダー エントリごとに通知を購読できるようにする必要があります。
- Nice to have: 特定のカレンダーのデフォルト通知の Discourse グループごとの設定。たとえば、council グループのメンバーは、council カレンダー エントリの通知をデフォルトで受け取ります。
- Nice to have: 今後の会議の 15 分前通知も設定できる機能。
- 重要: 全体を変更することなく、特定のイベントをスキップする (または別の時間に開催する) ようにマークできる必要があります。
- 重要: 各繰り返しイベントに対して、カレンダー エントリごとに通知を購読できるようにする必要があります。
- 現在、イベントの期間は
[date=2021-11-28 time=12:00:00 timezone="America/New_York"] → [date=2021-11-28 time=13:00:00 timezone="America/New_York"]のようなエントリで行われます。入力が面倒で、結果 (2021-11-28T17:00:00Z → 2021-11-28T18:00:00Z) がすぐにわかりません。代わりに[date=2021-11-28 time=12:00:00 timezone="America/New_York" duration="1 hour"]の方が良いでしょう。- Nice to have: 期間のないエントリは視覚的に異なるように表示されるべきです。また、「終日」エントリにのみ許可されるべきかもしれません。
- Nice to have: 各カレンダー エントリ (繰り返しエントリは個別に) に、議題 + メモのトピックへのリンクを含めることができます。このトピックは、対話なしでは自動的に作成されませんが、ワンクリックで簡単に開始でき、作成後は自動的にリンクされるべきです。
「Holidays」ユースケース
- ホリデー カレンダーもグループを認識する必要があります。現在、(Discourse サイトの) スタッフに対して特別な処理がいくつかありますが、それは一般化され設定可能であるべきであり、グローバルなものだけでなく、グループごとに異なるカレンダーも許可されるべきです。
- デフォルト設定では、ホリデー カレンダーは、ロケールが設定されているすべてのユーザーに対して標準の国内休日を表示します。それが 5 人未満で、2 つ以上の異なる場所にない場合、他のすべてを圧倒します。Discourse は一時的なハックを提供して、それを非表示にできるようにしてくれましたが。
- Nice to have: 現在、スタッフ メンバーは休暇中のときにユーザー名の横に
絵文字が表示されますが、これは他のスタッフ メンバーにのみ表示されます。このアイコンの表示は設定可能であるべきです。 - Nice to have: 表示される絵文字を設定できる機能。
- Bonus nice to have: ユーザーが特定の利用不可時間 (休暇、病気、旅行など) に対して、絵文字と理由の リスト から選択できる機能。
Fedora イベント
実際、現在あるものでも機能すると思いますが、上記のいくつかは、より見栄えが良く柔軟なカレンダー表示、通知、色などが役立つでしょう。
その他の可能性について
- カンファレンス スケジュール ユースケースは、会議スケジュール ユースケースと同じですが、非常に集中的です。手動で競合を管理することは不可能になります。このためには、グループ レベルの軸ではなく、ユーザー レベル の軸が必要になる場合があります。(スピーカーは同時に 2 つの場所にいることはできません。) また、私たちの会議室の場所は 15 年間ほとんど変わっておらず (URL の更新を除く)、今後 15 年間も変わらないでしょうが、各イベントには独自の場所のセットがあります。
- リリース スケジュール カレンダー: これは主に既存のスケジュール データからのインポートの自動化の問題だと思います。既存のカレンダー プラグインは、ほとんどの場合機能すると思います。Fedora イベントと同様に、色分けができると良いでしょう。