Skip to content

Allow admins to archive or delete feedback from the admin review page #991

Description

@paullizer

Summary

Admins need a way to remove feedback records from the active Feedback Review admin queue by archiving them, and where appropriate, permanently deleting them from the admin page.

User Value

Feedback admins can keep the review queue manageable after triage, avoid stale records sitting in the admin workflow forever, and reduce noise in feedback stats and exports while preserving auditability for retained archived feedback.

Proposed Behavior

  • Add archive controls to the Feedback Review admin page for authorized feedback admins.
  • Archived feedback should be hidden from the default active queue, stats, and export results unless the admin explicitly filters for archived records.
  • Provide an archived-record view/filter so admins can audit archived feedback and, if supported by the implementation, restore it to the active queue.
  • Add a separate permanent delete action only behind an explicit confirmation flow, with clear destructive wording.
  • Ensure archive/delete actions refresh the list, cards, stats, pagination, and CSV export behavior consistently.
  • Preserve authorization boundaries: only authenticated users who satisfy the FeedbackAdmin admin page requirements should be able to archive or delete feedback.

Acceptance Criteria

  • The admin Feedback Review page exposes archive/delete actions from the list/card/detail workflow without affecting the user-facing “My Feedback” profile tab unexpectedly.
  • Archiving feedback records who archived it and when, hides it from the default admin queue, and allows admins to filter/view archived records.
  • Permanent deletion requires an explicit confirmation and removes the feedback record from storage only after server-side authorization succeeds.
  • Backend routes for archive/delete are protected with the existing Swagger, login, FeedbackAdmin, and user-feedback-enabled decorators.
  • Stats, pagination, and CSV export use the same archived/default filtering semantics as the visible admin table.
  • Unauthorized users cannot archive or delete feedback records.
  • Functional tests cover archive behavior, delete authorization/confirmation contract, and admin UI control presence.

Notes

Relevant current implementation surface:

  • application/single_app/route_frontend_feedback.py renders /admin/feedback_review.
  • application/single_app/route_backend_feedback.py currently supports submit, admin list, stats, export, single-item fetch, PATCH review updates, retest, and user feedback APIs.
  • application/single_app/templates/admin_feedback_review.html contains the admin page table, cards, filters, review modal, export button, and retest modal.
  • application/single_app/static/js/admin/admin-feedback-review.js renders the admin list/card views and saves review changes.
  • Current admin review state is stored under adminReview, including acknowledgement and admin notes; archive metadata should probably be represented separately from acknowledgement so review semantics stay intact.

Duplicate search performed with: "feedback" admin archive delete. Issue #373 was reviewed and is closed; it covers broad time-based cleanup for conversations/documents, not focused admin feedback review archive/delete behavior.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requestsecurity_improvementThis issue results in an improvement to security

Type

No type

Fields

No fields configured for issues without a type.

Projects

Status
Pending Evaluation

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions