fjordllc / bootcamp

プログラマー向けEラーニングシステム
https://bootcamp.fjord.jp
MIT License
286 stars 71 forks source link

日報の学習日入力部分に範囲バリデーションを追加した #8181

Open ayu-0505 opened 2 weeks ago

ayu-0505 commented 2 weeks ago

Issue

概要

日報の学習日入力部分において、通常あり得ないほど過去の年月日が選択され日報が作られてしまうのを防ぐために、範囲バリデーションを作成しました。 2013年1月1日より前の日時を選択して提出ボタンを押しても、HTMLとモデルの双方のバリデーションでDBへの登録が防止されます。

スクリーンショット 2024-11-08 16 39 26

変更確認方法

HTMLバリデーション確認後、モデルバリデーションを確認する流れです。

  1. feature/add-validation-to-date-in-reportをローカルに取り込む
    1. git fetch origin pull/8181/head:feature/add-validation-to-date-in-report (2度目以降は上記ブランチのローカル変更に気をつけながら--forceをつけてください)
    2. git switch feature/add-validation-to-date-in-report
  2. foreman start -f Procfile.devでローカルサーバーを立ち上げる
  3. 任意のアカウントでログイン
  4. 日報作成ページにアクセス
  5. 一度タイトルを選択し、キーボードのTabキーを1回押して学習日を選択してください
  6. 2000/01/01のような2013年1月1日より前の日時を入力します
  7. タイトル、内容、学習時間を適当に入力した後、ページ下部の提出ボタンをクリックします
  8. HTMLによるバリデーションコメントが表示されているか確認します(コメントの言語はユーザーのブラウザに依存します)
  9. モデルによるバリデーション確認のために、HTMLバリデーションを無効化します
    1. Google Chromeデベロッパーツールを開いてください。(Macユーザーはopt+cmd+i
    2. 要素タグの中から、学習日inputを見つけてください
    3. min="2013-01-01"部分をダブルクリックします
    4. 編集可能となるのでmin="2013-01-01"を消去してエンターを押してください
  10. 2000/01/01のような2013年1月1日より前の日時を入力します
  11. モデルによるバリデーションコメントが表示されているか確認します(学習日は2013年01月01日から今日以前の間の日付にしてください

Screenshot

変更前

変更前はバリデーションがないため、そのまま保存されます。

変更後

基本的にはHTMLバリデーションが表示されます。 デベロッパーツールなどを使用し、HTMLバリデーションを無効化した場合のみ、モデルバリデーションが表示されます。

ayu-0505 commented 2 weeks ago

@ai-24 さん、お疲れ様です🍵

よろしければこちらのPRについて、レビューをお願いできますでしょうか。 急ぎではありませんが、お忙しかったり、ご都合が悪かったりする場合は遠慮なくお知らせください。 ご確認のほどよろしくお願いします🙇🏻‍♀️

ai-24 commented 1 week ago

@ayu-0505 さん、お疲れ様です! ぜひレビューさせていただきたいです🙇‍♀️ 1週間ほどお時間いただくかと思いますがよろしくお願いいたします🙏

ayu-0505 commented 3 days ago

@ai-24 さん、お疲れ様です🍵

こちら修正が終わりましたのでお時間ある際に再度見ていただけたらと思います。 よろしくお願いします🙏