fjordllc / bootcamp

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

管理者は、参加者を削除できるようにしたい。 #8074

Closed machida closed 1 week ago

ayu-0505 commented 1 month ago

9月30日(月)の質問雑談タイムで不明点を質問しました。

定期イベントの管理者とは定期イベントの主催者のことで良いか

定期イベントの主催者のことで良い。 主催者ではなくメンターに変更。(10月2日(水)追記)

具体的にどのような想定か

ayu-0505 commented 1 month ago

@komagata さん、@machida さん お疲れ様です🍵

2点質問があります。

issueタイトルを変更してもよいか

issueのタイトルについて、私のほうで以下のように編集してもよろしいでしょうか。

「定期イベントの管理者は、参加者を削除できるようにしたい」  ↓ 「メンターは、参加者を削除できるようにしたい。」

UIと実装方法について

UIと実装方法について迷ったので質問させてください。 現在2つのUIが思い付いていますが、「想定された内容とかけ離れていないか」「実装方法として現実的なのか」 等々で判断に迷っています。 ご意見を伺えたらと思います。

案1

メンターの画面では、常に参加者アイコンの横に「削除する」というリンクが表示されている。 リンク先はparticipations_controller.rbdestroyアクションとし、アイコンのuser_idをparamsとして送信する。

スクリーンショット 2024-10-02 16 43 12

participations_controller.rbdestroy内のcurrent_useruserに変更。 userをセットできるのはuser = current_userまたはcurrent_user = メンターの場合のみに制限する。

class RegularEvents::ParticipationsController < ApplicationController
  skip_before_action :require_active_user_login, raise: false
  before_action :set_regular_event

  def destroy
    # ここでuserを宣言する。
    # `user = current_user`または`current_user = メンター`の場合のみuserをセットできる。
    @regular_event.cancel_participation(current_user)  #current_user を user に変更する。
    redirect_to regular_event_path(@regular_event), notice: '参加を取り消しました。'
  end

案1にて実際に想定される表示

スクリーンショット 2024-10-03 10 43 51

案1の懸念点

メンターの立場で定期イベント参加者部分を見た時、画面表示がごちゃつく。 (イベントページ全体のスクショを撮る際などに、見た目が悪い)

案2

「参加者を編集する(削除する)」というようなボタンを設置し、クリックされたら削除リンクを表示する。

スクリーンショット 2024-10-02 16 41 16 スクリーンショット 2024-10-03 10 58 07

案2の懸念点

現時点では具体的な実装方法が浮かんでおらず、模索の段階です。 コンポーネント単体で更新ではなく、全体の更新を伴うなら 新たなparams(編集中かのboolean)が必要になってくるかと思っています。

ayu-0505 commented 1 month ago

10月7日(月)の質問雑談タイムで上記のUIと実装方法の件について質問しました。

issueタイトルを変更してもよいか

issueという名前の通り、議論の場なので変更についての制限はない。 「メンターは」に変更いたしました。

UIと実装方法について

案1の形で作成を進める。 user_idを同時に表示する案があったが、user_idはアイコンホバーでも表示されるので、一旦現状のままで実装する。

ayu-0505 commented 1 month ago

PR内で連絡があり、参加者削除機能の権限を「メンター」から「管理者」に変更しました。 そのため、「参加者を削除したい」と思った場合は「管理者に連絡する」フローになりました。

ayu-0505 commented 2 weeks ago

@komagata さん、@machida さん、お疲れ様です🍵 こちらのIssueの本番環境確認ですが、管理者権限のログインが必要ですのでお手隙の際にご確認をお願いできますでしょうか。

  1. 定期イベントにアクセス(bootcampアプリ開発MTG-昼の部
  2. ご自身か私のアカウント(id:ayu-0505 GitHubと同じ犬のアイコンです)の削除するリンクをクリック
  3. クリックしたユーザーが参加者一覧から削除されているか確認 ※ご自身のアカウントを削除した場合は再度参加登録をお願いします。

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

machida commented 1 week ago

自分のアカウントで確認しました。 本番で確認ができましたー🎉🎉🎉🎉🎉

ayu-0505 commented 1 week ago

本番確認ありがとうございました!✨