-
Notifications
You must be signed in to change notification settings - Fork 71
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
管理者の場合、ユーザー情報変更ページでコース変更できるようにした #4596
管理者の場合、ユーザー情報変更ページでコース変更できるようにした #4596
Conversation
cfb8a11
to
4ca22ac
Compare
= f.label :course_id, class: 'a-form-label is-required' | ||
.a-button.is-md.is-secondary.is-select.is-block | ||
= f.collection_select :course_id, Course.order(:created_at), :id, :title, {} | ||
= f.collection_select :course_id, Course.order(:created_at), :id, :title | ||
.a-form-help | ||
p コースの一覧は#{link_to 'こちら', courses_path, trget: '_blank'} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
新しくコース変更用のパーシャルを作成しようとしたところ、すでにusers/form
下に_course.html.slim
が存在しており、中身を確認したところ、そのままコース変更の項目として利用できそうでしたので、こちらのパーシャルを使うことにし、app/views/users/_form.html.slim
でrender
しています。
こちらのパーシャルが他のファイルで呼び出されているか確認したところ、リポジトリ内を「users/form/course
」 や 「form/course
」で検索しても出てこず、コードに変更を加えても他の場所に影響がないと考え、以下2点を変更いたしました。
{}
は削除しても動作に問題がなかったため、不要と考え削除しました。.form-item.is-hidden
ですと、render
しても表示されないため、users/form/job_seeking
やusers/form/company
などのCSSセレクタに合わせ、.form-item
に変更しました。
@saeyama さん |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Saki-htr さん、レビュー依頼ありがとうございます!
説明とてもわかりやすかったです。ありがとうございます😊
動作およびテストが通ったことを確認出来ました!
1点、お手数ですがDraft Pull Request
になっていたのでPull Request
に変更お願いします…!
私の方ではApprove致します!よろしくお願いします🙏
= f.label :course_id, class: 'a-form-label is-required' | ||
.a-button.is-md.is-secondary.is-select.is-block | ||
= f.collection_select :course_id, Course.order(:created_at), :id, :title, {} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
{}は削除しても動作に問題がなかったため、不要と考え削除しました。
余談なんですが、以前レビューさせてもらった、#4385のapp/views/users/form/_company.html.slim で{}
がないと、その後ろに記述されるHTML属性
が効かなかったので、今後、Choices-js
を使って、インクリメンタルサーチできる仕様にする可能性ありそうな気がしたので、残しておいてもいいのかな〜って一瞬思ったのですが、現状なくても動くので問題ないと思います…!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
{}
は、Choices-js
を使って、インクリメンタルサーチできるようにする際に必要なのですね〜
勉強になります。ありがとうございます!
- 今は問題なく動いているので、削除しておくか
- 今後、
Choices-js
を使って、インクリメンタルサーチできる仕様にする可能性があるので削除しないでおくか
で非常に迷ったのですが、今後に備えて残しておくことにしました。
61e71e5のコミットで修正しましたので、ご確認をお願いいたします🙏
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
戻して頂いたんですね…!ありがとうございます🙏
{}は、Choices-jsを使って、インクリメンタルサーチできるようにする際に必要なのですね〜
Choices-jsに限らず、javascriptとかで何かイベントを発火させたい時に、記述の順番として
HTML属性={} or イベント属性={}
の指定の前にはオプション={}
が必要そうな感じがしました…!
もしかしたら、なくても内容によっては動くかもしれませんが😅
f.collection_select(メソッド名, 要素の配列, value属性の項目, テキストの項目, オプション={}, HTML属性={} or イベント属性={})
私が以前レビューさせてもらったissueの場合だと、company-select.js
の4行目のgetElementById('js-company-select')
を _company.html.slim
の= f.collection_select
に指定した時に{}
を外すと動かなかったんですよね〜。
bootcamp/app/javascript/company-select.js
Lines 3 to 15 in a55ba9f
document.addEventListener('DOMContentLoaded', () => { | |
const element = document.getElementById('js-company-select') | |
if (element) { | |
return new Choices(element, { | |
removeItemButton: true, | |
allowHTML: true, | |
searchResultLimit: 10, | |
searchPlaceholderValue: '検索ワード', | |
noResultsText: '一致する情報は見つかりません', | |
itemSelectText: '選択' | |
}) | |
} | |
}) |
= f.collection_select :company_id, all_companies_with_empty, :id, :name, {}, { id: 'js-company-select' } |
4ca22ac
to
61e71e5
Compare
@saeyama さん 早速レビューしてくださってありがとうございます🙏 ✨ 変更点は以下の3つです。 1点目:Draft Pull Request を Pull Requestに変更Draft Pull Request を Pull Requestに変更にするのを失念しており、申し訳ありませんでした🙏 2点目:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Saki-htr さん、変更頂いた3点確認できました!
テストのreload
とても勉強になりました…!
日報も読ませていただきました〜!ありがとうございます🙏
改めて、Approve致します!よろしくお願いします😁
= f.label :course_id, class: 'a-form-label is-required' | ||
.a-button.is-md.is-secondary.is-select.is-block | ||
= f.collection_select :course_id, Course.order(:created_at), :id, :title, {} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
戻して頂いたんですね…!ありがとうございます🙏
{}は、Choices-jsを使って、インクリメンタルサーチできるようにする際に必要なのですね〜
Choices-jsに限らず、javascriptとかで何かイベントを発火させたい時に、記述の順番として
HTML属性={} or イベント属性={}
の指定の前にはオプション={}
が必要そうな感じがしました…!
もしかしたら、なくても内容によっては動くかもしれませんが😅
f.collection_select(メソッド名, 要素の配列, value属性の項目, テキストの項目, オプション={}, HTML属性={} or イベント属性={})
私が以前レビューさせてもらったissueの場合だと、company-select.js
の4行目のgetElementById('js-company-select')
を _company.html.slim
の= f.collection_select
に指定した時に{}
を外すと動かなかったんですよね〜。
bootcamp/app/javascript/company-select.js
Lines 3 to 15 in a55ba9f
document.addEventListener('DOMContentLoaded', () => { | |
const element = document.getElementById('js-company-select') | |
if (element) { | |
return new Choices(element, { | |
removeItemButton: true, | |
allowHTML: true, | |
searchResultLimit: 10, | |
searchPlaceholderValue: '検索ワード', | |
noResultsText: '一致する情報は見つかりません', | |
itemSelectText: '選択' | |
}) | |
} | |
}) |
= f.collection_select :company_id, all_companies_with_empty, :id, :name, {}, { id: 'js-company-select' } |
@@ -182,4 +182,14 @@ class Admin::UsersTest < ApplicationSystemTestCase | |||
assert_text 'アドバイザー' | |||
end | |||
end | |||
|
|||
test 'admin can change user course' do |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
逆に一般ユーザーで変更できると困るので、「一般ユーザーは変更できない」というテストもあるとありがたいです〜
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
dc297a6
to
16b7905
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
確認させて頂きました。OKです〜🙆♂️
@Saki-htr 本番環境で動作することを確認しました。 |
@komagata さん |
概要
現在、DBを直接変更しないとユーザーのコース変更ができないため、管理者でログインした時、ユーザー情報変更ページでコースを変更できるようにしました。
変更前
変更後
動作確認の手順
feature/enable-change-courses-at-user-info-edit-page-when-logined-as-admin
ブランチをローカルに持ってきて、立ち上げるmachida
)でログインする。kensyu
のユーザー個別ページにアクセスする。(http://localhost:3000/users/301971253)kensyu
のプロフィールのコースが、「iOSプログラマー」に変更されていることを確認する。