Paginate the public game reviews index #15

Open
opened 2024-01-14 14:22:08 -06:00 by jimmyb · 3 comments
Owner

The public Game Reviews page needs pagination so visitors can browse published reviews without loading the full review history on one page.

The current Laravel checkout has a sidebar link to /reviews, an admin “Pending Game Reviews” placeholder, merge references for future game_reviews records, and Recent Gamer Updates support for game_review_published, but the public reviews index itself is not rebuilt yet. This issue tracks ensuring the rebuilt /reviews page is paginated from the start.

Scope

  • Public reviews index at /reviews.
  • Published game review listing only.
  • Pagination controls and page metadata.
  • Filtering out draft, pending, rejected, deleted, or otherwise non-public reviews.
  • Sidebar active state for the existing /reviews link.
  • Reuse of existing Laravel/Tailwind layout and pagination patterns.

Acceptance Criteria

  • /reviews renders a public paginated list of published game reviews.
  • Reviews are ordered newest-first by published date.
  • The index shows review title, author, game, platform, score/rating where available, excerpt, and published timestamp.
  • Pagination limits reviews to a reasonable page size and provides next/previous/page links.
  • Invalid or out-of-range pages fall back cleanly or return the expected Laravel pagination response.
  • Draft, pending, rejected, deleted, or soft-deleted reviews are excluded.
  • Reviews by banned, deleted, or soft-deleted users are excluded.
  • Reviews for deleted or disabled games are excluded.
  • Empty review lists show a clear empty state.
  • The sidebar marks Game Reviews active on /reviews and paginated review pages.
  • User-facing UI supports light/dark mode and follows the existing Laravel/Tailwind site layout patterns.

Test Coverage Required

  • Feature tests for /reviews rendering, newest-first ordering, pagination, page links, and empty state.
  • Feature tests confirming unpublished, pending, rejected, deleted, and soft-deleted reviews are excluded.
  • Feature tests confirming reviews tied to banned/deleted users or deleted/disabled games are excluded.
  • Regression test confirming the sidebar /reviews active state works.
  • Regression test confirming review excerpts/content render safely.
  • Tests should use Pest and focused feature coverage.
  • Run the focused affected tests, then run vendor/bin/pint --dirty before closing the issue.

Progress Checklist

  • Public sidebar link to /reviews exists
  • Admin pending reviews placeholder route/view exists
  • Recent Gamer Updates presenter supports game_review_published
  • Add or confirm review persistence/model
  • Add public /reviews route and controller/action
  • Build paginated public reviews index
  • Add review list item/card presentation
  • Filter non-public reviews, deleted users, and deleted/disabled games
  • Add empty state and pagination controls
  • Confirm sidebar active state for /reviews
  • Add tests for rendering, pagination, filtering, ordering, empty state, and sidebar active state
  • Confirm the reviews index matches expected data coverage
The public Game Reviews page needs pagination so visitors can browse published reviews without loading the full review history on one page. The current Laravel checkout has a sidebar link to `/reviews`, an admin “Pending Game Reviews” placeholder, merge references for future `game_reviews` records, and Recent Gamer Updates support for `game_review_published`, but the public reviews index itself is not rebuilt yet. This issue tracks ensuring the rebuilt `/reviews` page is paginated from the start. ## Scope - Public reviews index at `/reviews`. - Published game review listing only. - Pagination controls and page metadata. - Filtering out draft, pending, rejected, deleted, or otherwise non-public reviews. - Sidebar active state for the existing `/reviews` link. - Reuse of existing Laravel/Tailwind layout and pagination patterns. ## Acceptance Criteria - `/reviews` renders a public paginated list of published game reviews. - Reviews are ordered newest-first by published date. - The index shows review title, author, game, platform, score/rating where available, excerpt, and published timestamp. - Pagination limits reviews to a reasonable page size and provides next/previous/page links. - Invalid or out-of-range pages fall back cleanly or return the expected Laravel pagination response. - Draft, pending, rejected, deleted, or soft-deleted reviews are excluded. - Reviews by banned, deleted, or soft-deleted users are excluded. - Reviews for deleted or disabled games are excluded. - Empty review lists show a clear empty state. - The sidebar marks Game Reviews active on `/reviews` and paginated review pages. - User-facing UI supports light/dark mode and follows the existing Laravel/Tailwind site layout patterns. ## Test Coverage Required - Feature tests for `/reviews` rendering, newest-first ordering, pagination, page links, and empty state. - Feature tests confirming unpublished, pending, rejected, deleted, and soft-deleted reviews are excluded. - Feature tests confirming reviews tied to banned/deleted users or deleted/disabled games are excluded. - Regression test confirming the sidebar `/reviews` active state works. - Regression test confirming review excerpts/content render safely. - Tests should use Pest and focused feature coverage. - Run the focused affected tests, then run `vendor/bin/pint --dirty` before closing the issue. ## Progress Checklist - [x] Public sidebar link to `/reviews` exists - [x] Admin pending reviews placeholder route/view exists - [x] Recent Gamer Updates presenter supports `game_review_published` - [ ] Add or confirm review persistence/model - [ ] Add public `/reviews` route and controller/action - [ ] Build paginated public reviews index - [ ] Add review list item/card presentation - [ ] Filter non-public reviews, deleted users, and deleted/disabled games - [ ] Add empty state and pagination controls - [ ] Confirm sidebar active state for `/reviews` - [ ] Add tests for rendering, pagination, filtering, ordering, empty state, and sidebar active state - [ ] Confirm the reviews index matches expected data coverage
Author
Owner

Pushing this back until we get enough reviews.

Pushing this back until we get enough reviews.
Author
Owner

It looks like we've got enough at this point so we should make this one a priority.

It looks like we've got enough at this point so we should make this one a priority.
Codex changed title from Paginate the Reviews Page to Paginate the public game reviews index 2026-05-25 22:31:55 -05:00
Member

Added the public /reviews placeholder route and page. The actual paginated published-reviews index is still tracked by this issue, but the route now resolves and has focused coverage for the placeholder/sidebar state.

Added the public /reviews placeholder route and page. The actual paginated published-reviews index is still tracked by this issue, but the route now resolves and has focused coverage for the placeholder/sidebar state.
Sign in to join this conversation.
No milestone
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
MyVideoGameList/myvideogamelist.com#15
No description provided.