bootcamp icon indicating copy to clipboard operation
bootcamp copied to clipboard

企業一覧ページから各企業のアドバイザー・現役生のページへ飛べるようにした

Open mousu-a opened this issue 11 months ago • 31 comments

Issue

  • Issue番号 #7473

概要

変更前

企業様が自社のアドバイザー、現役生(研修生)を確認するには自社のページ → ユーザータブ → 現役生/アドバイザー の順に飛ばなければいけなかった。

変更後

企業一覧ページから各企業のアドバイザー・現役生のページへ飛べるようにした。

変更確認方法

  1. feature/Add-link-to-target-users-for-company-on-companies-pageをローカルに取り込む
  2. foreman start -f Procfile.devでサーバーを起動する
  3. komagata(どのユーザーでも構いません)でログインする
  4. /companiesにアクセスする。
  5. リンクをクリックしてみて、企業一覧ページから各企業のユーザータブに飛べることを確認する。

Screenshot

変更前

スクリーンショット_2024-03-14_21_42_54 変更の前と後で見た目に変化はありませんが、それぞれのユーザー区分の下の数字がリンクとなっています。

変更後

スクリーンショット_2024-03-14_21_43_47

追加

企業のユーザーの管理者タブが正しく動くようにしました。合わせて企業一覧ページのリンクも対応させました。 スクリーンショット 2024-03-14 21 44 01

mousu-a avatar Mar 01 '24 12:03 mousu-a

@komagata 質問させていただきたいです🙏 2つあります🙇‍♂️

  1. 今回企業一覧ページに各企業のアドバイザー・現役生へのリンクを追加したのですが、 企業一覧ページと企業のshowページは共通のパーシャルを使っているため、企業のshowページにもアドバイザー・現役生へのリンクが追加されてしまっています。(かといって機能に問題があるわけではありません) これは問題なかったでしょうか? スクリーンショット_2024-03-01_21_49_38 スクリーンショット_2024-03-01_21_50_16

  2. ちょっと配置がおかしなことになってしまっているので直したいのですが、こういった場合は変更が少なければこちらで対応してしまって良いのでしょうか?(この場合.mb-2~3をつけるとかでしょうか。) それともmachidaさんにお願いした方がいいでしょうか?

よろしくお願いします🙏

mousu-a avatar Mar 01 '24 12:03 mousu-a

@mousu-a

1

問題ありません。

2

@machida さんにお願いしてみてください〜

komagata avatar Mar 04 '24 16:03 komagata

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

mousu-a avatar Mar 04 '24 23:03 mousu-a

@machida お疲れ様です🙏 こちら少ないですがデザインをお願いします🙇‍♂️

申し訳ありません、Assignを忘れていました🙇‍♂️

mousu-a avatar Mar 08 '24 09:03 mousu-a

変更点

下記コードを追加しています。

# app/views/companies/_user_counts.html.slim
= link_to_company_users_path(company, 'adviser')

...

= link_to_company_users_path(company, 'student_and_trainee')


# app/helpers/companies_helper.rb
  def link_to_company_users_path(company, target)
    link_to t("target.#{target}"), company_users_path(target:, company_id: company.id), class: 'tab-nav__item-link'
  end

メソッドの内部でlink_toを使ってaタグを作成しています。

現在の表示はこのようになっています image

mousu-a avatar Mar 08 '24 09:03 mousu-a

@mousu-a 追加コードについては差分(Files changed)でわかるので書かなくて大丈夫ですよ〜(基本的にFiles changedを提出側もレビュー側も必ず見るので)

https://github.com/fjordllc/bootcamp/pull/7479/files

komagata avatar Mar 09 '24 17:03 komagata

@mousu-a お待たせしましたーこれからデザインを弄ります。

machida avatar Mar 12 '24 05:03 machida

@mousu-a

イメージと違ったのでデザインを修正しました。 カウントが 0 ではないときは、以下で示した部分がリンクになるようにしてあります。

貼り付けた画像_2024_03_12_16_05

ここで、追加でお願いがあります。

現在、管理者が0ではない企業のとき、管理者をクリックすると、その企業の管理者ユーザーの一覧に遷移したいです。

貼り付けた画像_2024_03_12_16_05

ところが、今は users?target=adminにアクセスすると、その企業の管理者ユーザーの一覧ではなく、現役生が表示されてしまいます。

他にも表示がおかしいところがあります。以下のキャプチャを参照してください。

貼り付けた画像_2024_03_12_16_09

管理者の数字をクリックしたら、

貼り付けた画像_2024_03_12_16_12

その企業に所属する管理者の一覧が表示されるようにしてください。

machida avatar Mar 12 '24 07:03 machida

@mousu-a ポイントを増やしました。

machida avatar Mar 12 '24 07:03 machida

@unikounio

お疲れ様です!こちらのレビューをお願いできないでしょうか🙏 全く急ぎではないです! お忙しければ遠慮なくおっしゃってください🙇‍♂️

mousu-a avatar Mar 14 '24 12:03 mousu-a

@mousu-a さん お疲れ様です! 3日以内にお返事できるよう進めさせていただきます~ 3日を超えそうあればその旨ご連絡させていただきますね。 よろしくお願いいたします🐈

unikounio avatar Mar 14 '24 14:03 unikounio

@mousu-a さん ~~review requestをお願いします🙏~~

【追記】 恐れながらself-requestさせていただきました🙏

unikounio avatar Mar 15 '24 02:03 unikounio

すみません!すっかり忘れていました😭🙏

mousu-a avatar Mar 15 '24 07:03 mousu-a

@unikounio

お待たせいたしました🙇‍♂️ 返信になります!

併せてヘルパーメソッドを定義するとDRYに書けそうです。

こちらに関しては前述の通りです🙏

このelse節は0を表示することになると思うので、直接書いた方がDBアクセスがない分効率が良いのかなと思いました。

ご指摘いただいた箇所を日本語に直してみました!

users.unretired.advisersがあれば
	users.unretired.advisers.sizeをリンクにする
なければ
	users.unretired.advisers.sizeを表示する


users.unretired.advisersがあれば
	users.unretired.advisers.sizeをリンクにする
なければ
	0を表示する

前者はコンテキストが統一されていて「リンクにするかしないか」だけを判断すれば良さそうです。 後者はいきなり0が出てきたので「ん?なんで0?」と多少引っかかる感じがします(ニュアンスで申し訳ないです🙏)

「0を表示する」というのは、実装について多少なりとも把握していないと出てこない発想な気がします。🤔 なのでここで「0」がいきなり出てくると、前述したようにマジックナンバーとなってしまいそうです。👀 (理解するために多少コードを読まなければいけなくなりそう)

ですが反面、正直すぐに分かるようなことである気もしていますが...🤔 これらの自分の意見に関してunikounioさんの見解も伺えたらなと思っています🙇‍♂️

個人的には「最終的な判断はkomagataさんにお伺いする」という形でも良いのかな?と思っているのですがどうでしょうか👀

mousu-a avatar Mar 18 '24 01:03 mousu-a

@mousu-a さん 丁寧にご説明いただきありがとうございます🙏✨

0がマジックナンバー化してしまう可能性についてのご指摘、なるほどです。 マジックナンバーに対しては定数やメソッドを用いて対策ができると思います。 しかし、これらの対策にもデメリットがあります。 私としては、後学のためにも、ヘルパーメソッドの件も含めて町田さんのご意見をお伺いした上で進められるとよいのかなと思っています。いかがでしょうか? (もしお忙しいようであれば私から町田さんに連絡させていただきますのでおっしゃっていただけますと💡)

unikounio avatar Mar 18 '24 04:03 unikounio

@unikounio

マジックナンバーに対しては定数やメソッドを用いて対策ができると思います。

なるほどです、こちらに関しては全く頭にありませんでした😅

私としては、後学のためにも、ヘルパーメソッドの件も含めて町田さんのご意見をお伺いした上で進められるとよいのかなと思っています。いかがでしょうか? (もしお忙しいようであれば私から町田さんに連絡させていただきますのでおっしゃっていただけますと💡)

すみません、ご連絡の方お願い出来ますでしょうか😭🙏 ありがとうございます🙇‍♂️

mousu-a avatar Mar 18 '24 06:03 mousu-a

@machida さん お疲れ様です! 本PRで町田さんが書かれたコードについてお伺いさせてください🙏

私がレビューする中で、町田さんが変更された部分に次のようにコメントさせていただきました。 → https://github.com/fjordllc/bootcamp/pull/7479#discussion_r1527431475 このコメントにおける提案と、ヘルパーメソッドの活用に関する部分について、町田さんのご意見をお伺いさせていただけますと幸いです🙏

unikounio avatar Mar 18 '24 07:03 unikounio

@mousu-a @unikounio 該当のコードの部分にコメントを書きましたー

machida avatar Mar 18 '24 07:03 machida

@machida ご確認ありがとうございますー!

@unikounio

ご連絡までありがとうございます!🙏 確認していただいてよかったですー! 修正に入りますので今しばらくお待ちください🙇‍♂️

mousu-a avatar Mar 18 '24 09:03 mousu-a

@unikounio

お待たせいたしましたー!🙏 ヘルパーメソッドを再導入しDRYにしました。 サイドレビューをお願いいたします🙇‍♂️

0がマジックナンバー化してしまう可能性についてのご指摘、なるほどです。 マジックナンバーに対しては定数やメソッドを用いて対策ができると思います。 しかし、これらの対策にもデメリットがあります。

こちらに関してはkomagataさんにお聞きしようと考えていますがどうでしょうか?

mousu-a avatar Mar 22 '24 14:03 mousu-a

@unikounio

レビューありがとうございますー! 修正いたしましたので再レビューをお願いいたします🙏

mousu-a avatar Mar 25 '24 11:03 mousu-a

@komagata

メンバーの方からApproveいただけましたのでこちらレビューをお願いいたします🙏

一点質問があります🙏

    # app/views/companies/_user_counts.html.slim

	  - if users.unretired.advisers.present?
            = link_to_company_users_path(company, target: 'advisers')
          - else
            = users.unretired.advisers.size

こちらのコードですが、if users.unretired.advisers.present?がfalseの時は0なのが確定しているため、else節は0でいいのではないか?(わざわざusers.unretired.advisers.sizeとする必要はなさそう)ということについて議論しています。 komagataさんのご意見を伺いたいです🙏

こちらのやりとりを参照していただけますとわかりやすいと思います。 https://github.com/fjordllc/bootcamp/pull/7479#discussion_r1527431475 https://github.com/fjordllc/bootcamp/pull/7479#issuecomment-2002721906 https://github.com/fjordllc/bootcamp/pull/7479#discussion_r1528017146 https://github.com/fjordllc/bootcamp/pull/7479#issuecomment-2015235946

mousu-a avatar Mar 26 '24 07:03 mousu-a

@mousu-a

0でいいと思います。またlink_to_ifとかつかったらスマートになるかもと思いました。`

komagata avatar Apr 07 '24 18:04 komagata

@komagata

すみません、このプルリクにmainブランチの他の人のコミットが混ざってしまっているため今後の対応をお伺いしたいです🙇‍♂️

現状の報告

  • 現状どうなっているのか?
    • mainブランチのコミット内容がプルリクに混ざってしまっている
    • mainブランチとのコンフリクトが発生している
  • ログに怪しい記述はないか?
    • 見てみましたが怪しいログはなさそうでした。。下にログを記述します。
  • 推測
    • komagataさん, unikounioさんにレビューいただいた時にはこの状態にはなっていなかったと思います。

ログ

以下git reflogのログになります。

512a88eb7 (HEAD -> feature/Add-link-to-target-users-for-company-on-companies-page, origin/feature/Add-link-to-target-users-for-company-on-companies-page) HEAD@{0}: checkout: moving from feature/introduce-of-link-card to feature/Add-link-to-target-users-for-company-on-companies-page
bc84ed752 (feature/introduce-of-link-card) HEAD@{1}: checkout: moving from feature/Add-link-to-target-users-for-company-on-companies-page to feature/introduce-of-link-card
512a88eb7 (HEAD -> feature/Add-link-to-target-users-for-company-on-companies-page, origin/feature/Add-link-to-target-users-for-company-on-companies-page) HEAD@{2}: pull --rebase origin main (finish): returning to refs/heads/feature/Add-link-to-target-users-for-company-on-companies-page
512a88eb7 (HEAD -> feature/Add-link-to-target-users-for-company-on-companies-page, origin/feature/Add-link-to-target-users-for-company-on-companies-page) HEAD@{3}: pull --rebase origin main (pick): ローカル変数target_allowlistを導入、sendメソッドを実行する前にチェックを入れるようにした
d082e26bf HEAD@{4}: pull --rebase origin main (pick): if文が二重になっていたため削除
7d94d94eb HEAD@{5}: pull --rebase origin main (pick): ヘルパーメソッドを再導入し企業の各usersへのリンクの呼び出しをDRYに
4e28b6332 HEAD@{6}: pull --rebase origin main (pick): 企業の管理者ユーザー一覧を表示できるようにした。同じく企業一覧ページからも飛べるようにした。
4a136410f HEAD@{7}: pull --rebase origin main (pick): 企業ユーザーのカウント部分にリンクを設定。ユーザーroleの絞り込みに管理者を追加。
e9fbf733f HEAD@{8}: pull --rebase origin main (pick): 余計な空白を削除
35aa789e4 HEAD@{9}: pull --rebase origin main (pick): 企業一覧ページから各企業のアドバイザー・現役生のページへ飛べるようにした
79643285f HEAD@{10}: pull --rebase origin main (start): checkout 79643285fe6c4776488178d39eb022f9065525a1
85a590064 HEAD@{11}: commit: ローカル変数target_allowlistを導入、sendメソッドを
実行する前にチェックを入れるようにした
df820b6e1 HEAD@{12}: checkout: moving from feature/introduce-of-link-card to feature/Add-link-to-target-users-for-company-on-companies-page
bc84ed752 (feature/introduce-of-link-card) HEAD@{13}: reset: moving to HEAD
bc84ed752 (feature/introduce-of-link-card) HEAD@{14}: checkout: moving from feature/Add-link-to-target-users-for-company-on-companies-page to feature/introduce-of-link-card
df820b6e1 HEAD@{15}: pull --rebase origin main (finish): returning to refs/heads/feature/Add-link-to-target-users-for-company-on-companies-page
df820b6e1 HEAD@{16}: pull --rebase origin main (pick): if文が二重になっていたた
め削除
42b7b74d5 HEAD@{17}: pull --rebase origin main (pick): ヘルパーメソッドを再導入
し企業の各usersへのリンクの呼び出しをDRYに
2d14f4842 HEAD@{18}: pull --rebase origin main (pick): 企業の管理者ユーザー一覧
を表示できるようにした。同じく企業一覧ページからも飛べるようにした。
d1c0a5618 HEAD@{19}: pull --rebase origin main (pick): 企業ユーザーのカウント部
分にリンクを設定。ユーザーroleの絞り込みに管理者を追加。
13905a283 HEAD@{20}: pull --rebase origin main (pick): 余計な空白を削除
4a72ac083 HEAD@{21}: pull --rebase origin main (pick): 企業一覧ページから各企業
のアドバイザー・現役生のページへ飛べるようにした
258e32fb5 (main) HEAD@{22}: pull --rebase origin main (start): checkout 258e32fb51cb18056b0385fa68f27d7234749694
4c93c79a0 HEAD@{23}: checkout: moving from main to feature/Add-link-to-target-users-for-company-on-companies-page
258e32fb5 (main) HEAD@{24}: pull origin main: Fast-forward
2787cf4ad HEAD@{25}: checkout: moving from feature/introduce-of-link-card to main

よろしくお願いいたします🙇‍♂️

mousu-a avatar Apr 11 '24 05:04 mousu-a

@mousu-a 日常的にやる作業になりますが、mainの最新をローカルに取り込んでrebaseしてください~

komagata avatar Apr 11 '24 05:04 komagata

@komagata お早いお返事ありがとうございます🙇‍♂️ 帰宅後試してみます〜!

mousu-a avatar Apr 11 '24 05:04 mousu-a

ありがとうございました😭解決しました!

mousu-a avatar Apr 11 '24 13:04 mousu-a

@komagata お疲れ様です。 修正いたしましたので再度レビューをお願いいたします🙏

mousu-a avatar Apr 13 '24 04:04 mousu-a

@komagata こちらコンフリクトを修正いたしましたので再度レビューをお願いいたします🙇‍♂️

mousu-a avatar May 24 '24 12:05 mousu-a

@mousu-a すみません、もういちどconflictの修正をお願い致します~。

komagata avatar May 28 '24 20:05 komagata