{% extends "base.html" %} {% from "components/pagination.html" import render_pagination %} {% from "components/empty_state.html" import empty_state %} {% block title %}Reports ยท Admin{% endblock %} {% set status_badge = {'pending': 'warning', 'under_review': 'info', 'resolved': 'success', 'dismissed': 'secondary'} %} {% macro card(label, value, icon, color) %}
{{ value }}
{{ label }}
{% endmacro %} {% block content %}

Reports & Moderation

Review and resolve reports raised by the campus community.

Analytics
{# ---------- Summary ---------- #} {% set s = summary %}
{{ card('Pending', "{:,}".format(s.pending), 'bi-hourglass-split', 'warning') }} {{ card('Under Review', "{:,}".format(s.under_review), 'bi-search', 'info') }} {{ card('Resolved', "{:,}".format(s.resolved), 'bi-check-circle-fill', 'success') }} {{ card('Dismissed', "{:,}".format(s.dismissed), 'bi-slash-circle', 'secondary') }} {{ card("Today", "{:,}".format(s.today), 'bi-calendar-day-fill', 'primary') }} {{ card('This Month', "{:,}".format(s.this_month), 'bi-calendar-month-fill', 'primary') }}
{% if seller %}
Showing reports for a single seller. Clear seller filter
{% endif %} {# ---------- Filters (sticky) ---------- #}
{% if seller %}{% endif %}
{# ---------- Table ---------- #}
{% for r in rows %} {% set detail_url = url_for('admin.report_detail', public_id=r.public_id) %} {% else %} {% endfor %}
ReportDateReporterReported Entity SellerReasonStatusModeratorActions
{{ r.short_id }} {{ r.reporter_name }} {{ r.entity_type }} {{ r.entity_name }} {{ r.seller_name }} {{ r.reason }} {{ r.status_label }} {% if r.moderator_name %}{{ r.moderator_name }}{% else %}Unassigned{% endif %} Review
{{ empty_state('bi-shield-check', 'No reports have been submitted.', "When students report inappropriate listings, they'll appear here for review.", reset_label=('Reset filters' if filter_args else none), reset_url=(url_for('admin.reports') if filter_args else none), compact=true) }}
{{ render_pagination(pagination, 'admin.reports', filter_args) }}
{% endblock %}