fjordllc / bootcamp

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

メンターダッシュボードに表示しているn日経過の提出物一覧を非vue化 #8096

Open Shrimprin opened 1 month ago

Shrimprin commented 1 month ago

Issue

概要

メンターでログインしたときにダッシュボードに表示されるn日経過の提出物一覧が今はVueで実装されているため、Railsのviewに移行する。 image

変更確認方法

1. 準備

  1. feature/rewrite-products-on-mentor-dashboard-from-vue-to-htmlをローカルに取り込む
  2. rails db:resetを実行する
  3. bin/setupを実行する
  4. ローカルサーバーを立ち上げる
  5. メンターユーザーでログインする

2. 提出物一覧のラベルの確認

  1. ダッシュボードにアクセスする

  2. 各提出物一覧のラベルの色と()内の数字が画像と同じか確認する

    • [x] 6日以上経過 image

    • [x] 5日経過 image

    • [x] 4日経過 image

  3. 下記を確認する

    • [ ] 4日経過の下に、しばらく4日経過に到達する提出物はありません。と表示され、クリックすると/products/unassigned#3days-elapsedに遷移する

3. 担当するボタンの確認

ダッシュボードで適当な提出物に対して下記を確認する

4. コメント数、コメントしたユーザーのアイコン、時間の表示の確認

  1. ダッシュボードで適当な提出物のタイトルをクリックし、提出物の詳細ページを開く
  2. コメントすると提出物の担当になりました。と表示されるため、提出物詳細ページ内の担当から外れるボタンをクリックして担当から外れる
  3. ダッシュボードに戻り、コメントした提出物のカードについて下記を確認する
    • [x] コメントした件数が表示されている
    • [x] コメントしたユーザーのアイコンが表示されている
    • [x] メンターがコメントした時間が~YYYY年MM月DD日(曜日) hh:mm(メンター)の形式で表示されている
  4. 提出物の提出者でログインしなおし、提出物にコメントする
  5. メンターでログインしなおし、ダッシュボードにアクセスする
  6. コメントした提出物のカードについて下記を確認する
    • [x] メンターと提出者のコメント数の合計が表示されている
    • [x] メンターと提出者のアイコンが表示されている
    • [x] 提出者のコメントした時間が~YYYY年MM月DD日(曜日) hh:mm(提出者)の形式で表示されている

4. 提出物がない場合のダッシュボードの表示

  1. 提出物をすべて削除する
    $ rails c
    $ Product.delete_all
  2. ダッシュボードで下記を確認する

5. 8時間以内にアラート対象になる提出物の表示

  1. 8時間以内にアラート対象となる提出物を作成する
    $ rails c
    $ user = User.first
    $ practice = Practice.first
    $ product = Product.create(practice: practice, user: user, body: 'hoge', published_at: 4.days.ago + 8.hours)
  2. ダッシュボードで下記を確認する

Screenshot

画面に変更はないためスクリーンショットはなし

関連するPR

Shrimprin commented 1 month ago

@su-su-su-su お疲れ様です! 本PRのレビューをお願いしたいのですが、ご対応いただくことは可能でしょうか?

su-su-su-su commented 1 month ago

@Shrimprin

お疲れ様です!承知いたしました。 1週間程でレビューさせていただきます。 よろしくお願いいたします!

Shrimprin commented 1 month ago

@su-su-su-su ありがとうございます! 🙏 よろしくお願いいたします~

Shrimprin commented 1 month ago

@su-su-su-su すみません、こちらのPRとコンフリクトが発生しているため修正するまでレビューをお待ちいただけますでしょうか 🙏

su-su-su-su commented 1 month ago

@Shrimprin お疲れ様です!承知しました! コンフリクトが解消しましたらお知らせ頂けますと助かります🙏

Shrimprin commented 1 month ago

@su-su-su-su お疲れ様です。 コンフリクトを解消できましたのでレビューをお願いいたします! 🙏

su-su-su-su commented 1 month ago

@Shrimprin お疲れ様です。 了解しました。レビューさせて頂きましたらご連絡させて頂きます🙇‍♂️

su-su-su-su commented 1 month ago

@Shrimprin お疲れ様です。

今日提出の下に、しばらく4日経過に到達する提出物はありません。と表示され、クリックすると/products/unassigned#3days-elapsedに遷移する

についてなのですが、 ダッシュボードの表示が以下のようになっていました。 Image from Gyazo

色々調べていたのですが、原因が分からなかったので「関連するPR」を辿って行くと

があり、概要を一部抜粋すると

メンターダッシュボードには、色が付いたカードに所属する提出物だけ表示するように修正した 逆に言うと、3日経過を含むそれ以下の経過日数の提出物はそこに表示しないようにする

と書いていました。 Files changedを見るとapp/javascript/products.vueは削除していらっしゃるのですが、こちらが影響しているのでしょうか。

Shrimprin commented 1 month ago

@su-su-su-su 混乱させてしまい申し訳ございません。 こちら、PRの説明の文面が間違っていました。

上記の通りにPRの説明文を修正しました。

色々調べていたのですが、原因が分からなかったので「関連するPR」を辿って行くと

  • 8122

    があり、概要を一部抜粋すると

    メンターダッシュボードには、色が付いたカードに所属する提出物だけ表示するように修正した 逆に言うと、3日経過を含むそれ以下の経過日数の提出物はそこに表示しないようにする

と書いていました。

ご推察の通りで、こちらのPRとのコンフリクト対応で、ダッシュボードの表示の仕様を変更した際にPRの説明文の修正が漏れていました。 3日経過を含むそれ以下の経過日数の提出物は表示されていない、現状の表示が正しい仕様となります。

su-su-su-su commented 1 month ago

@Shrimprin 早速返信ありがとうございます! そういうことですね。 4日経過までの表示にするということですと app/components/products/products_component.rb

  def elapsed_days_text(elapsed_days)
    if elapsed_days.zero?
      '今日提出'
    elsif elapsed_days >= @reply_deadline_days
      "#{elapsed_days}日以上経過"
    else
      "#{elapsed_days}日経過"
    end
  end

今日提出の分岐があるのですが、私ですと削除してしまうと思います。 どういった理由か教えていただければと思います🙇‍♂️ 2度にわたり質問してしまい申し訳ありません! よろしくお願いいたします!

Shrimprin commented 1 month ago

@su-su-su-su コメントありがとうございます! 以下の理由で分岐は残しておこうと考えていますが、念のため @komagata さんに確認しておきます。

以下のPRでアラート日数を定数から変更できるようになっており、経過日数が設定したアラート日数以上の提出物がダッシュボードに表示されます。

現在は4日に設定されているため、4日以上経過の提出物がダッシュボードに表示されています。 https://github.com/fjordllc/bootcamp/blob/bf31981b657db2b263c0b4f8f2afb766714715dd/app/models/product.rb#L4

あまりないパターンかもしれませんが、アラート日数を0日にした場合は今日提出の分岐に入る可能性があります。

Shrimprin commented 1 month ago

@su-su-su-su お疲れ様です!

以下の理由で分岐は残しておこうと考えていますが、念のため @komagata さんに確認しておきます。

@komagata さんに確認したところ、将来的に提出物一覧を非React化して今回実装したコンポーネントを使う場合に必要なため残したままでOKということになりました。

よろしくお願いいたします 🙏

su-su-su-su commented 1 month ago

@Shrimprin お疲れ様です。

以下のPRでアラート日数を定数から変更できるようになっており、経過日数が設定したアラート日数以上の提出物がダッシュボードに表示されます。

説明していただきありがとうございます!もし変更があった時にも柔軟に対応もできるのですね!

@komagata さんに確認したところ、将来的に提出物一覧を非React化して今回実装したコンポーネントを使う場合に必要なため残したままでOKということになりました。

ミーティングで話を聞いてより理解できました。 ありがとうございます🙇‍♂️ 勉強になりました!

私からはapproveさせていただきます!

Shrimprin commented 1 month ago

@su-su-su-su ありがとうございます!! 🙏

Shrimprin commented 1 month ago

@komagata お疲れ様です! メンバーからApproveいただきましたのでレビューをお願いできますでしょうか 🙏

Shrimprin commented 3 weeks ago

@komagata お疲れ様です! コメントいただいた下記3点を修正しました。

お手数おかけしますが再度ご確認をお願いいたします。

Shrimprin commented 2 weeks ago

@komagata お疲れ様です。 下記を修正いたしました。

修正事項

1.products/product_componentの共通化

products/product_componentについては共通化を行い、提出物一覧系の全てのページで使えるようにしました。

2. テストの追加

3. 不具合修正

提出物のタイトルからのリンク先がプラクティスのページとなっていたため、提出物のページへと修正した

4. リファクタ

質問

ダッシュボードの未アサイン提出物に研修生の修了日は表示しますでしょうか? 従来のVueのダッシュボードでは、研修生の修了日は表示されていませんでした。 一方で、未アサイン提出物一覧を含め、その他の提出物一覧ページでは研修生の修了日は表示されています。 ひとまずはその他の提出物一覧ページに合わせて修了日を表示するようにしましたが、従来のVueに合わせて表示しないべきでしょうか?

komagata commented 2 weeks ago

@Shrimprin

ダッシュボードの未アサイン提出物に研修生の修了日は表示しますでしょうか?

情報量が多すぎて表示がおかしいとかがなければ研修日が表示されるに越したことはないです。 ですので、両方とも研修日が表示された方が実装が楽なのであれば両方表示されるので大丈夫です。

Shrimprin commented 2 weeks ago

@komagata ご回答いただきありがとうございます。 以下スクショのようにダッシュボードでも特に問題なく表示できています。 image

修正は完了していますので、引き続きレビューをよろしくお願いいたします 🙏

komagata commented 1 week ago

@Shrimprin conflictの解消をお願いします〜。

Shrimprin commented 1 week ago

@komagata コンフリクトを解消しました。 レビューよろしくお願いいたします 🙏

Shrimprin commented 2 days ago

@komagata 下記を修正を行いましたのでご確認をお願いします 🙏