bootcamp
bootcamp copied to clipboard
定期イベントに休日を登録できるようする
Issue
- #6715
概要
定期イベントに、任意の休日を設定できるようにするPRです。現状の定期イベントは、祝日に開催するか否かの設定しかできません。
実装したこと
- 定期イベントの編集ページから任意の休みとその理由を設定できる
- 定期イベント詳細の「イベント内容」に祝日休み・任意の休みが理由とともに表示される
- 任意に設定した休みが定期イベント詳細の
次回開催日
・ダッシュボードの近日開催のイベント
に反映される - Discordの定期イベントお知らせに任意の休み設定も反映される
変更確認方法
「イベントの内容」の中に祝日休みの表示があるか確認
-
feature/regular-events-holidays-management
をローカルに取り込む -
kimura
でログイン - 独習Git輪読会にアクセス(毎週水曜日開催・祝日非開催イベント)
- 「イベントの内容」の中に
お休みのお知らせ
と実行日から一年間分の祝日休みが表示されていることを確認(今回は2025年01月01日(水・祝)
のみ)※表示なければ祝日開催しない設定に変更 -
内容修正
を押して編集画面に移動 -
祝日の開催
のチェックボックスにチェックを入れて(祝日開催に変更)、内容変更
で保存 - イベント詳細画面にリダイレクトされるので、その画面で「イベントの内容」の中に
お休みのお知らせ
と休みの日程が表示されていないことを確認
任意の休日を設定できるかの確認(バリデーション含)
-
内容修正
を押して編集画面に移動 -
休みの追加
の「+ 休日を追加」を押してフォームを1つ表示 - 何も入力しないまま
内容変更
で保存 -
休みの追加を入力してください
とバリデーションメッセージが表示されることを確認 - そのまま
休みの追加
に今日以前の水曜日の日付(開催日)を入力し、内容変更
を押す -
休みの追加は今日以降の日付を入力してください
とバリデーションメッセージが表示されることを確認 -
休みの追加
今日以降かつ、開催曜日以外(このイベントでは水曜日以外)の日付を入力し、内容変更
を押す -
休みの追加に設定した{ここは入力した日付が表示}はイベント開催日ではありません。
とバリデーションメッセージが表示されることを確認 -
休みの追加
に2025年1月1日
、理由にテスト
と入力し、内容変更
を押す ※2025年1月1日
を入力する理由は、次の水曜日の祝日がこの日のためです。あとで祝日開催から非開催に切り替えたときのバリデーションを確認します。 - 「イベントの内容」の中に
お休みのお知らせ
と2025年01月01日(水・祝)
とテスト
が表示されていることを確認 -
内容修正
を押して編集画面に移動 -
休みの追加
の設定はそのまま、祝日の開催
のチェックを外して祝日非開催に変更し、内容変更
を押す -
祝日の開催をなしに変更する場合、「休みの追加」に現在設定されている2025年01月01日は祝日休みになります。削除してください。
とバリデーションメッセージが表示されることを確認 -
2025年1月1日
を削除し、次回のイベント開催日(このイベントだと次の水曜日)に休みを設定する(理由
は任意です) -
14
で設定した休みと、祝日休み(2025年01月01日(水・祝)
)が表示されていることを確認 - イベントの詳細画面の
次回開催日
がさらに次の日程に変わっていることを確認
ダッシュボートのイベント表示に任意の休みが反映されるかの確認
- http://localhost:3000/ ダッシュボードに移動する
-
近日開催のイベント
の表示の中から任意の定期イベントの編集に入って、次回の開催日に休みを設定する(特別イベント以外) - 必要に応じてログインアカウントを変更する
- ダッシュボートに戻り、表示が以下のように変わることを確認する(解除後戻ることも確認)
設定前
設定後
定期イベントをお知らせするDiscord通知に任意の休みが反映されるか確認
- Develop環境でのDiscord通知の確認方法を確認しながらご自身のDiscordにテスト用サーバーを作り、ウェブフックURLの取得
- 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
- app/notifiers/discord_notifier.rbの64行目を以下のように変更する
notification(
body: event_info,
name: 'ピヨルド',
+ webhook_url: '取得したウェブフックURL'
)
-
TOKEN=hoge foreman start -f Procfile.dev
で、トークンを指定しつつアプリを立ち上げ直す - http://localhost:3000/scheduler/daily/notify_coming_soon_regular_events?token=hoge を別タブでリロードする
- 1で作ったDiscordにテスト用サーバーに通知が来ていることを確認
- ダッシュボードに移動して、上記通知で来た定期イベントの編集ページで、直近の開催を休みに設定する
- 再び http://localhost:3000/scheduler/daily/notify_coming_soon_regular_events?token=hoge をリロードする
- 通知を確認し、設定したイベントが休みの表示になっていることを確認する
参考URL Develop環境でのDiscord通知の確認方法 Discordチャットに今日と明日分の開催イベント一覧を投稿する + 祝日非開催である定期イベントはDiscordに投稿しない
Screenshot
変更前
イベント詳細
イベント編集画面
ダッシュボードの近日開催イベントの表示
Discordの定期イベント通知
変更後
イベント詳細(祝日非開催の場合)
イベント編集画面
開催日に任意の休みを設定した場合
ダッシュボードの近日開催イベントの表示(開催日に任意の休みを設定)
Discordの定期イベント通知(開催日に任意の休みを設定)