Add admin-side import of game metadata into requests #943
Labels
No labels
automated
code-quality
component: admin dashboard
component: backend
component: billing
component: content management
component: faqs
component: game genres
component: game lists
component: game reviews
component: game search
component: games
component: internal notifications
component: platforms
component: security
component: tests
component: user api
component: user badges
component: user blogs
component: user consoles
component: user favorites
component: user friends
component: user notifications
component: user profiles
component: user site notifications
component: user wishlists
component: web design
dependencies
javascript
php
priority
high
priority
low
priority
medium
security-hotspot
source: codex
source: sonarqube
status
awaiting feedback
status
backlog
status
done
status
in progress
status
in queue
status
in review
status
needs codex review
status
needs investigation
status
wontfix
type: bug
type: documentation
type: feature
type: improvement
type: regression
type: task
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
MyVideoGameList/myvideogamelist.com#943
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Game requests can represent the same game across multiple platforms, creating repetitive admin data entry.
Provide an admin-only source game ID field and import action that reuses existing game metadata without changing request submission or review flows.
Scope
Acceptance Criteria
Test Coverage Required
Progress Checklist
The ability to import game info from other entries to requeststo Add admin-side import of game metadata into requestsImplemented and merged in PR #991 (merge commit
6dda2c5b19).The pending-request review page now accepts an existing enabled game ID and imports populated metadata. Empty source fields preserve current request values. Platform, requester, status, processing staff, and review reason are preserved; boxart is not imported. Import saves immediately and reloads the page, so unsaved review-form edits are discarded. Review imported regional release dates for the target platform before approving.
Access follows the existing game-management roles (1–3), with CSRF protection and the admin mutation rate limiter. Invalid, missing, nonexistent, and deleted source IDs leave the request unchanged. Metadata changes and their audit entry are transactional, and the pending status is rechecked under a row lock. The metadata allowlist is shared with cloning without changing its behavior.
Verification: 104 request/cloning tests passed (939 assertions), Pint, PHPStan, frontend build, and desktop/mobile rendered success/error checks passed. Coverage includes protected-field preservation, empty source values, authorization, invalid IDs, rollback on audit failure, concurrent processing, and approval after import. No migrations or dependency changes are required.
All five progress checklist items are complete. Deployment to dev and production follows this closeout.
Deployment completed to dev and production at merged master revision
6dda2c5b1992ffb5fe4f8b3453ad78c1b958203d.Rollback backups:
/home/mvgldev/deploy-backups/issue943-6dda2c5b-nhjtgy_f/home/mvgl/deploy-backups/issue943-6dda2c5b-j93ru3ssDeployment plans, checksums, runtime smoke results, and receipts are available under each account's
releases/issue943-6dda2c5bdirectory. All five checklist items are complete; this issue is closed withstatus/done.