Skip to content

未チェックの日報を一括で開くボタンの復活#9183

Closed
sharoa119 wants to merge 2 commits intomainfrom
bug/reenable-bulk-open-unread-reports
Closed

未チェックの日報を一括で開くボタンの復活#9183
sharoa119 wants to merge 2 commits intomainfrom
bug/reenable-bulk-open-unread-reports

Conversation

@sharoa119
Copy link
Copy Markdown
Contributor

@sharoa119 sharoa119 commented Sep 17, 2025

Issue

概要

PR:#8976 で削除してしまった
「未チェックの日報を一括で開く」ボタンを復活させる

変更確認方法

  1. bug/reenable-bulk-open-unread-reportsをローカルに取り込む
git fetch origin bug/reenable-bulk-open-unread-reports
git checkout bug/reenable-bulk-open-unread-reports
  1. foreman start -f Procfile.devでローカル環境を立ち上げる
  2. komagataでログインする
  3. 「日報・みんなのブログ」ページにおいて、日報タブを選択し、その中の未チェックタブを選択した際に下部に表示される「未チェックの日報を一括で開く」ボタンを確認。(ボタンをクリックして別タブでリンクが開くことも確認)

動作確認時の注意

「未チェックの日報を一括で開く」ボタンを押した際、先頭の1件しか開かない場合があります。
これは Chrome のポップアップブロック機能(window.open を利用したタブの同時オープンも対象)が原因です。

動作確認を行う場合は、以下いずれかでポップアップを許可してください。

  • Chrome の設定で「ポップアップとリダイレクト」を許可する
  • ボタン押下後、アドレスバーの通知から「常にこのサイトのポップアップを許可」を選択する

Screenshot

変更前

スクリーンショット 2025-09-17 11 38 07

変更後

スクリーンショット 2025-09-18 17 22 01

Summary by CodeRabbit

  • 新機能
    • 日報一覧にメンター専用の一括操作UIを追加。メンターかつ該当パラメータがある場合、一覧とページネーションの間に「未チェックの日報を一括で開く」リンクブロックを表示し、未確認の日報をまとめて開けるようにしました。一般ユーザーの表示や既存の動作には影響ありません。

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Sep 17, 2025

Walkthrough

レポート一覧ビューに、mentor_login? が真かつ params[:unchecked] が存在する場合に部分テンプレート unconfirmed_links_open(ラベル: 「未チェックの日報を一括で開く」)を表示する条件ブロックを追加。表示位置は既存の一覧の後、ページネーション前。

Changes

Cohort / File(s) Summary
Reports index view
app/views/reports/index.html.slim
レポート一覧の出力後に、mentor_login?params[:unchecked] を満たす際に部分テンプレート unconfirmed_links_open をレンダリングする条件ブロックを追加(ラベル「未チェックの日報を一括で開く」)。ページネーションの直前に挿入。

Sequence Diagram(s)

sequenceDiagram
    actor Mentor as メンター
    participant Controller as ReportsController#index
    participant View as index.html.slim
    participant Partial as _unconfirmed_links_open

    Mentor->>Controller: GET /reports
    Controller-->>View: render reports (@reports) & pagination
    alt mentor_login? && params[:unchecked]
        View->>Partial: render _unconfirmed_links_open("未チェックの日報を一括で開く")
        Partial-->>View: partial HTML
    end
    View-->>Mentor: HTML response
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested reviewers

  • komagata

Poem

ぴょんと飛んで見にきたよ、ページの隅で
メンターだけの扉がそっと光るよ
未チェックをまとめて、ふわり開いて
さあレビューの道へ、にんじん片手に🐇✨

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
Title Check ✅ Passed タイトルはプルリクエストの主目的である「未チェックの日報を一括で開くボタンの復活」を具体的かつ簡潔に表現しており、変更の要点を理解しやすく伝えています。
Description Check ✅ Passed プルリクエストの説明は指定されたテンプレートに合わせてIssue、概要、変更確認方法、Screenshotの各セクションが適切に記載されており、必要な手順と情報がすべて含まれています。
✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch bug/reenable-bulk-open-unread-reports

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@sharoa119 sharoa119 self-assigned this Sep 17, 2025
@sharoa119 sharoa119 marked this pull request as ready for review September 17, 2025 02:55
Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (2)
app/views/reports/index.html.slim (2)

48-49: 未チェックタブでのみ表示するよう条件を追加してください

現状だと「全て」タブでもボタンが出ます。文言と機能の整合のため、未チェック表示時に限定しましょう。

-        - if mentor_login?
+        - if mentor_login? && params[:unchecked]
           = render partial: 'unconfirmed_links_open', locals: { label: '未チェックの日報を一括で開く' }

49-49: 文言のi18n化(任意)

テスト容易性と今後の多言語化に備え、locals: { label: t('.open_unchecked_reports_bulk') } などに移行を検討ください。

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between c7665c5 and 8aa7b9c.

📒 Files selected for processing (1)
  • app/views/reports/index.html.slim (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: build_and_test
🔇 Additional comments (1)
app/views/reports/index.html.slim (1)

48-49: 権限要件の確認(admin も対象なら条件を合わせる)

上部のタブ表示は admin_or_mentor_login? ベースですが、ボタンは mentor_login? のみです。管理者にも許可する仕様なら下記に変更してください。

-        - if mentor_login? && params[:unchecked]
+        - if admin_or_mentor_login? && params[:unchecked]

@sharoa119
Copy link
Copy Markdown
Contributor Author

@yokomaru さん
お疲れ様です!
レビュー依頼をお願いいたします!
めちゃくちゃ急ぎではないですが、早めの対応を希望しているissueとなっております🙂
お手隙の際にご確認いただければと思います。

@yokomaru
Copy link
Copy Markdown
Contributor

@sharoa119
sharoaさん、お疲れ様です!
承知いたしました🙌 今週中(なるはや)でレビューいたします!

@sharoa119 sharoa119 requested review from yokomaru and removed request for okuramasafumi September 18, 2025 01:42
@yokomaru
Copy link
Copy Markdown
Contributor

yokomaru commented Sep 18, 2025

@sharoa119

お疲れ様です☕️
中身のレビューの前にすみません🙏
仕様について自分の理解が合っているか不安があり確認させていただけますでしょうかっ?

ざっとテキストで共有させていただきますが、言葉で伝えづらい部分もあり、Discordで繋ぎながら確認することも可能なので気軽にご連絡ください🙌


自分が理解したことについての整理

  • 自分がIssueや過去のPRのやり取りを読んで理解した内容を一旦整理しました!
    • 自分の理解が合っているかまず確認させてくださいっ!🙏

以前の仕様

  • 全ての日報(reposts/index.html.slim)と未チェックの日報(reports/unchecked/index.html.slim)で表示ページが分かれていた
  • 未チェックの日報を一括で開くボタンは未チェックの日報(reports/unchecked/index.html.slim)にのみ存在していた

前回のsharoaさんの修正

  • 日報・ブログのタブを修正する
    • 未チェックの日報(reports/unchecked/index.html.slim)はなくなり、全ての日報(reposts/index.html.slim)にて 未チェックかどうか(unchecked) のパラメーターでタブを切り替える形式になった
      • その際に 未チェックの日報を一括で開くボタンが消えてしまった

今回の対応


現状の挙動について

  • 上記理解した仕様が正という前提で、現状の挙動について報告いたします
    • 仕様の認識が間違っており、現状の挙動がsharoaさんの想定通りの可能性もあるのでお手数ですが確認させてください

全ての日報ページ(unchecked: false or nil)での挙動

  • 未チェックの日報を一括で開くボタン という名前になっているが、ボタンを押すと未チェックも含む全ての日報が表示される
    • 確認済みになっている、「リンクカードの動作確認」という日報が表示される
2025-09-18.15.13.58.mov
  • ページネーションで区切られた分の数のみ日報が表示される(1ページにつき25日報表示しているので、max25日報が表示される)

    • 1ページ目でのボタン押下(一気に25件表示)
2025-09-18.15.30.45.mov
  • 2ページ目でのボタン押下(一気に15件表示)
2025-09-18.15.31.37.mov
未チェック日報一覧(unchecked: true)
  • 全ての日報ページと同じく、ページネーションで区切られた分の未チェックの日報が表示される(1ページにつき25日報表示しているので、max25日報が表示される)
    • 1ページ目でのボタン押下(一気に25件表示)
      • 未チェックの日報のみが表示されているのは問題なし
      • 2ページ目は全ての日報の動作を同じなので省略
2025-09-18.15.16.10.mov

確認したいこと

  • このPRで実現したい仕様は自分の認識した内容であってますでしょうか?
    • 仕様が認識と合っている場合は、挙動が仕様と異なる部分があると思われるのでご確認お願いいたします🙏
    • 仕様が認識と異なっている場合は、お手数ですが今回のPRの仕様を整理いただき、再度ご共有いただけますと幸いです🙇‍♀️

余談

  • 動作チェックにあたり、うまく動かず悩んだ部分があったので一応記載しておきます!(PRのDescriptionに検証方法として記載いただくのが丁寧かもしれません🙏)

ブラウザのポップアップのブロックについて

  • 未チェックの日報を一括で開くボタンを押した際、先頭の1件しか表示されなかった

  • Chromeの仕様でポップアップ表示の制限(windows.openで開くタブも含む)がデフォルトで制御されているため、ポップアップを許可しないと日報が一括で表示されなかった
       スクリーンショット 2025-09-18 14 58 05

  • 対処法は以下どちらか

    • ChromeのSettingでポップアップとリダイレクトを許可する
    • 一括ボタンのあるタブに戻り↑の画像のAllway allow popups ~ にチェックを入れる

ものすごく長文になってしまい&読みづらく申し訳ありません・・🙇‍♀️
お手数ですがご確認の程よろしくお願いいたします!

@sharoa119
Copy link
Copy Markdown
Contributor Author

@yokomaru さん
お疲れ様です!

全ての日報ページ(unchecked: false or nil)での挙動

まずこちらについてですが、こちらは私のコードミスです。
全てタブを選択している時はボタンは表示しないです💦
なのでこちらは後ほど修正いたしますね🙇‍♀️

未チェック日報一覧(unchecked: true)

こちらについて、私の認識が間違っていました💦
過去の消してしまったコードを見ても、コードの仕様が正しいので(今いるページ分の件数を表示)、その挙動で間違いないです!
ということで、昨日町田さんとのやりとりにあった

上の場合
そのページに表示されている一覧にあるコンテンツだけが開く場合はページネーションの上でお願いします。
例えば、1 から 60まで記事があり、今のページは20 から 30が一覧で表示されている。
全てを開くボタンをクリックすると、20 から 30が全て開く(1 から 60ではなく)。

が適応されるので、ページネーションの上になることになります。
なので、こちらも修正します!

一応町田さんに確認しますね!

ブラウザのポップアップのブロックについて

こちらは言われて、確かに!となりました!
一度ロックを解除するともう出てこないのですっかりそのことを忘れていました!
なので、Descriptionに追記しておきます!

少々ご対応をお待ちください🙇‍♀️

@yokomaru
Copy link
Copy Markdown
Contributor

@sharoa119
ご返信ありがとうございます🙌(めちゃくちゃ早くてすごい・・!)

上記承知いたしました〜!よろしくお願いしますっ!

@sharoa119
Copy link
Copy Markdown
Contributor Author

@machida さん
お疲れ様です。
よこさんから#9183 (comment) をいただき、再度確認したところ
私の認識が誤っていました。
当初の町田さんがおっしゃっていた通り、日報の未チェック一括ボタンを押すと、そのページの分が(全部ではない)表示される仕様でした。😞

つまり、昨日おっしゃっていた

上の場合
そのページに表示されている一覧にあるコンテンツだけが開く場合はページネーションの上でお願いします。
例えば、1 から 60まで記事があり、今のページは20 から 30が一覧で表示されている。
全てを開くボタンをクリックすると、20 から 30が全て開く(1 から 60ではなく)。

が適応されるので、ボタンの位置はページネーションの上になると思います。

再度確認のため、こちらで問題ないかご教示いただければと思います。

誤認識すみません😭

@sharoa119
Copy link
Copy Markdown
Contributor Author

@machida さん
何度もすみません。

色々と考えてたら
「ページネーションの上」が、
上部のページャの上なのか、
下部のページャの上なのか、どっちのことを指しているのかよくわからなくなってしまいました。

なので2通りやってみました。

上部のページャの上
スクリーンショット 2025-09-18 17 14 48

下部のページャの上

スクリーンショット 2025-09-18 17 22 01

どちらが良いでしょうか。
ご確認いただければと思います🙇‍♀️

@machida
Copy link
Copy Markdown
Member

machida commented Sep 18, 2025

@sharoa119

そのページに表示されている分だけを一括で表示、了解ですー。今気付いて良かったです👍

下部のページャの上でお願いします🙏設置したらデザインを調整するのでメンションお願いしますー

@sharoa119
Copy link
Copy Markdown
Contributor Author

@machida さん
お疲れ様です!
配置いたしましたので、デザインの調整をよろしくお願い致します🙇‍♀️

@komagata
Copy link
Copy Markdown
Member

@sharoa119 (CC: @machida )

すみません、こちらこの機能がないので未確認の日報が大量に貯まる状態になってしまっているので緊急でリリースさせていただければと思います。

僕の方でこちらの内容でhotfixブランチを作ってリリースしてしまいたいと思います。

@komagata komagata force-pushed the bug/reenable-bulk-open-unread-reports branch from e43e2e3 to 0fa75f5 Compare September 27, 2025 06:24
@sharoa119
Copy link
Copy Markdown
Contributor Author

#9183 (comment)
こちらの経緯により、こちらはcloseさせていただきたいと思います

@sharoa119 sharoa119 closed this Oct 1, 2025
@komagata komagata deleted the bug/reenable-bulk-open-unread-reports branch October 9, 2025 04:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants