bootcamp icon indicating copy to clipboard operation
bootcamp copied to clipboard

定期イベントに休日を登録できるようする

Open hirano-vm4 opened this issue 10 months ago • 16 comments

Issue

  • #6715

概要

定期イベントに、任意の休日を設定できるようにするPRです。現状の定期イベントは、祝日に開催するか否かの設定しかできません。

実装したこと

  • 定期イベントの編集ページから任意の休みとその理由を設定できる
  • 定期イベント詳細の「イベント内容」に祝日休み・任意の休みが理由とともに表示される
  • 任意に設定した休みが定期イベント詳細の次回開催日・ダッシュボードの近日開催のイベントに反映される
  • Discordの定期イベントお知らせに任意の休み設定も反映される

変更確認方法

「イベントの内容」の中に祝日休みの表示があるか確認

  1. feature/regular-events-holidays-managementをローカルに取り込む
  2. kimuraでログイン
  3. 独習Git輪読会にアクセス(毎週水曜日開催・祝日非開催イベント)
  4. 「イベントの内容」の中にお休みのお知らせと実行日から一年間分の祝日休みが表示されていることを確認(今回は2025年01月01日(水・祝)のみ)※表示なければ祝日開催しない設定に変更
  5. 内容修正を押して編集画面に移動
  6. 祝日の開催のチェックボックスにチェックを入れて(祝日開催に変更)、内容変更で保存
  7. イベント詳細画面にリダイレクトされるので、その画面で「イベントの内容」の中にお休みのお知らせと休みの日程が表示されていないことを確認

任意の休日を設定できるかの確認(バリデーション含)

  1. 内容修正を押して編集画面に移動
  2. 休みの追加の「+ 休日を追加」を押してフォームを1つ表示
  3. 何も入力しないまま内容変更で保存
  4. 休みの追加を入力してくださいとバリデーションメッセージが表示されることを確認
  5. そのまま休みの追加に今日以前の水曜日の日付(開催日)を入力し、内容変更を押す
  6. 休みの追加は今日以降の日付を入力してくださいとバリデーションメッセージが表示されることを確認
  7. 休みの追加今日以降かつ、開催曜日以外(このイベントでは水曜日以外)の日付を入力し、内容変更を押す
  8. 休みの追加に設定した{ここは入力した日付が表示}はイベント開催日ではありません。とバリデーションメッセージが表示されることを確認
  9. 休みの追加2025年1月1日、理由にテストと入力し、内容変更を押す ※2025年1月1日を入力する理由は、次の水曜日の祝日がこの日のためです。あとで祝日開催から非開催に切り替えたときのバリデーションを確認します。
  10. 「イベントの内容」の中にお休みのお知らせ2025年01月01日(水・祝)テストが表示されていることを確認
  11. 内容修正を押して編集画面に移動
  12. 休みの追加の設定はそのまま、祝日の開催のチェックを外して祝日非開催に変更し、内容変更を押す
  13. 祝日の開催をなしに変更する場合、「休みの追加」に現在設定されている2025年01月01日は祝日休みになります。削除してください。とバリデーションメッセージが表示されることを確認
  14. 2025年1月1日 を削除し、次回のイベント開催日(このイベントだと次の水曜日)に休みを設定する(理由は任意です)
  15. 14で設定した休みと、祝日休み(2025年01月01日(水・祝))が表示されていることを確認
  16. イベントの詳細画面の次回開催日がさらに次の日程に変わっていることを確認

ダッシュボートのイベント表示に任意の休みが反映されるかの確認

  1. http://localhost:3000/ ダッシュボードに移動する
  2. 近日開催のイベントの表示の中から任意の定期イベントの編集に入って、次回の開催日に休みを設定する(特別イベント以外)
  3. 必要に応じてログインアカウントを変更する
  4. ダッシュボートに戻り、表示が以下のように変わることを確認する(解除後戻ることも確認)

設定前 スクリーンショット 2024-04-18 11 10 09

設定後 スクリーンショット 2024-04-18 11 09 42

定期イベントをお知らせするDiscord通知に任意の休みが反映されるか確認

  1. Develop環境でのDiscord通知の確認方法を確認しながらご自身のDiscordにテスト用サーバーを作り、ウェブフックURLの取得
  2. app/models/chat_notifier.rbの13行目に以下を追記( '取得したウェブフックURL'は1で取得したものに置き換えてください)
    if Rails.env.production?
      Discord::Notifier.message(message, username: username, url: webhook_url)
    else
+     Discord::Notifier.message(message, username: username, url: '取得したウェブフックURL')
      Rails.logger.info 'Message to Discord.'
    end
  1. app/notifiers/discord_notifier.rbの64行目を以下のように変更する
    notification(
      body: event_info,
      name: 'ピヨルド',
+    webhook_url: '取得したウェブフックURL'
    )
  1. TOKEN=hoge foreman start -f Procfile.devで、トークンを指定しつつアプリを立ち上げ直す
  2. http://localhost:3000/scheduler/daily/notify_coming_soon_regular_events?token=hoge を別タブでリロードする
  3. 1で作ったDiscordにテスト用サーバーに通知が来ていることを確認
スクリーンショット 2024-04-18 13 27 21
  1. ダッシュボードに移動して、上記通知で来た定期イベントの編集ページで、直近の開催を休みに設定する
  2. 再び http://localhost:3000/scheduler/daily/notify_coming_soon_regular_events?token=hoge をリロードする
  3. 通知を確認し、設定したイベントが休みの表示になっていることを確認する
スクリーンショット 2024-04-18 13 29 34

参考URL Develop環境でのDiscord通知の確認方法 Discordチャットに今日と明日分の開催イベント一覧を投稿する + 祝日非開催である定期イベントはDiscordに投稿しない

Screenshot

変更前

イベント詳細 スクリーンショット 2024-04-14 16 56 43

イベント編集画面 スクリーンショット 2024-04-14 16 57 46

ダッシュボードの近日開催イベントの表示 スクリーンショット 2024-04-18 11 10 09

Discordの定期イベント通知 スクリーンショット 2024-04-18 13 27 21

変更後

イベント詳細(祝日非開催の場合) スクリーンショット 2024-04-18 10 33 46

イベント編集画面 スクリーンショット 2024-04-14 16 58 43

開催日に任意の休みを設定した場合 スクリーンショット 2024-04-18 10 35 09

ダッシュボードの近日開催イベントの表示(開催日に任意の休みを設定) スクリーンショット 2024-04-18 11 09 42

Discordの定期イベント通知(開催日に任意の休みを設定) スクリーンショット 2024-04-18 13 46 05

hirano-vm4 avatar Apr 13 '24 14:04 hirano-vm4