Nekrocuck

This commit is contained in:
2025-09-28 12:59:09 +02:00
commit a2d093954d
402 changed files with 13763 additions and 0 deletions

View File

@@ -0,0 +1,67 @@
{% import "../macros/staff-nav.html" as staff_nav %}
{% extends "base.html" %}
{% block title %}Účet ({{ account.username }}){% endblock %}
{% block content %}
<h1 class="title">Účet ({{ account.username }})</h1>
{% call staff_nav::staff_nav() %}
<hr>
<h2>Změnit heslo</h2>
<form method="post" action="/staff/actions/change-password">
<table class="form-table">
<tr>
<td class="label">Staré heslo</td>
<td><input name="old_password" type="password" required=""></td>
</tr>
<tr>
<td class="label">Nové heslo</td>
<td><input name="new_password" type="password" required=""></td>
</tr>
<tr>
<td colspan="2"><input class="button" type="submit" value="Změnit heslo"></td>
</tr>
</table>
</form>
<hr>
{% if tcx.perms.owner() %}
<h2>Předat vlastnictví</h2>
<form method="post" action="/staff/actions/transfer-ownership">
<table class="form-table">
<tr>
<td class="label">Účet</td>
<td><input name="account" type="text" required=""></td>
</tr>
<tr>
<td class="label">Potvrdit</td>
<td>
<div class="input-wrapper">
<input name="confirm" type="checkbox" required="">
</div>
</td>
</tr>
<tr>
<td colspan="2"><input class="button" type="submit" value="Předat vlastnictví"></td>
</tr>
</table>
</form>
<hr>
{% endif %}
<h2>Vymazat účet</h2>
<form method="post" action="/staff/actions/delete-account">
<table class="form-table">
<tr>
<td class="label">Potvrdit</td>
<td>
<div class="input-wrapper">
<input name="confirm" type="checkbox" required="">
</div>
</td>
</tr>
<tr>
<td colspan="2"><input class="button" type="submit" value="Vymazat účet"></td>
</tr>
</table>
</form>
{% endblock %}

View File

@@ -0,0 +1,56 @@
{% import "../macros/staff-nav.html" as staff_nav %}
{% extends "base.html" %}
{% block title %}Účty{% endblock %}
{% block content %}
<h1 class="title">Účty</h1>
{% call staff_nav::staff_nav() %}
<hr>
<h2>Účty</h2>
<form method="post" action="/staff/actions/remove-accounts">
<div class="table-wrap">
<table class="data-table center">
<tr>
<th></th>
<th>Jméno</th>
<th>Vlastník</th>
<th>Vytvořen</th>
<th>Oprávnění</th>
</tr>
{% for account in accounts %}
<tr>
<td><input name="accounts[]" type="checkbox" value="{{ account.username }}" {% if !tcx.perms.owner() %}disabled=""{% endif %}></td>
<td>{{ account.username }}</td>
<td>{% if account.owner %}Ano{% else %}Ne{% endif %}</td>
<td><time datetime="{{ account.created }}">{{ account.created|czech_datetime }}</time></td>
<td>{{ account.permissions.0 }} <a href="/staff/permissions/{{ account.username }}">[Zobrazit]</a></td>
</tr>
{% endfor %}
</table>
</div>
{% if tcx.perms.owner() %}
<input class="button" type="submit" value="Odstranit vybrané">
{% endif %}
</form>
{% if tcx.perms.owner() %}
<hr>
<h2>Vytvořit účet</h2>
<form method="post" action="/staff/actions/create-account">
<table class="form-table">
<tr>
<td class="label">Jméno</td>
<td><input name="username" type="text" required=""></td>
</tr>
<tr>
<td class="label">Heslo</td>
<td><input name="account_password" type="password" required=""></td>
</tr>
<tr>
<td colspan="2"><input class="button" type="submit" value="Vytvořit účet"></td>
</tr>
</table>
</form>
{% endif %}
{% endblock %}

View File

@@ -0,0 +1,45 @@
{% import "../macros/staff-nav.html" as staff_nav %}
{% extends "base.html" %}
{% block title %}Bannery{% endblock %}
{% block content %}
<h1 class="title">Bannery</h1>
{% call staff_nav::staff_nav() %}
<hr>
<h2>Bannery</h2>
<form method="post" action="/staff/actions/remove-banners">
<div class="table-wrap">
<table class="data-table center">
<tr>
<th></th>
<th>Banner</th>
</tr>
{% for banner in banners %}
<tr>
<td><input name="banners[]" type="checkbox" value="{{ banner.id }}"></td>
<td>
<img class="banner" src="{{ banner.banner.file_url() }}">
</td>
</tr>
{% endfor %}
</table>
</div>
<input class="button" type="submit" value="Odstranit vybrané">
</form>
<hr>
<h2>Přidat bannery</h2>
<form method="post" enctype="multipart/form-data" action="/staff/actions/add-banners">
<table class="form-table">
<tr>
<td class="label">Bannery</td>
<td><div class="input-wrapper"><input name="files[]" type="file" multiple="multiple" required=""></div></td>
</tr>
<tr>
<td colspan="2"><input class="button" type="submit" value="Přidat bannery"></td>
</tr>
</table>
</form>
{% endblock %}

54
templates/staff/bans.html Normal file
View File

@@ -0,0 +1,54 @@
{% import "../macros/staff-nav.html" as staff_nav %}
{% extends "base.html" %}
{% block title %}Bany{% endblock %}
{% block content %}
<h1 class="title">Bany</h1>
{% call staff_nav::staff_nav() %}
<hr>
<h2>Bany</h2>
<form method="post" action="/staff/actions/remove-bans">
<div class="table-wrap">
<table class="data-table center">
<tr>
<th></th>
<th>IP</th>
<th>Nástěnka</th>
<th>Důvod</th>
<th>Udělil</th>
<th>Odvolatelný</th>
<th>Odvolání</th>
<th>Udělěn</th>
<th>Vyprší</th>
</tr>
{% for ban in bans %}
<tr>
<td><input name="bans[]" type="checkbox" value="{{ ban.id }}"></td>
<td title="{{ ban.ip_range }}">
{% if ban.ip_range.network() == ban.ip_range.broadcast() %}
{{ ban.ip_range.ip() }}
{% else %}
{{ ban.ip_range.network() }}-{{ ban.ip_range.broadcast() }}
{% endif %}
</td>
<td>{% if let Some(board) = ban.board %}/{{ board }}/{% else %}<i>Všechny</i>{% endif %}</td>
<td><div class="post-content">{{ ban.reason }}</div></td>
<td>{{ ban.issued_by }}</td>
<td>{% if ban.appealable %}Ano{% else %}Ne{% endif %}</td>
<td>{% if let Some(appeal) = ban.appeal %}<div class="post-content">{{ appeal }}</div>{% else %}-{% endif %}</td>
<td><time datetime="{{ ban.created }}">{{ ban.created|czech_datetime }}</time></td>
{% if let Some(expires) = ban.expires %}
<td><time datetime="{{ expires }}">{{ expires|czech_datetime }}</time></td>
{% else %}
<td>Nikdy</td>
{% endif %}
</tr>
{% endfor %}
</table>
</div>
<input class="button" type="submit" value="Odstranit vybrané">
</form>
{% endblock %}

View File

@@ -0,0 +1,196 @@
{% import "../macros/staff-nav.html" as staff_nav %}
{% extends "base.html" %}
{% block title %}Nastavení (/{{ board.id }}/){% endblock %}
{% block content %}
<h1 class="title">Nastavení (/{{ board.id }}/)</h1>
{% call staff_nav::staff_nav() %}
<hr>
<form method="post" action="/staff/actions/update-board-config">
<input name="board" type="hidden" value="{{ board.id }}">
<table class="form-table">
<tr>
<td class="label">Uzamknout nástěnku</td>
<td>
<div class="input-wrapper">
<input name="locked" type="checkbox" {% if board.config.0.locked %}checked=""{% endif %}>
</div>
</td>
</tr>
<tr>
<td class="label">Výchozí jméno</td>
<td><input name="anon_name" type="text" value="{{ board.config.0.anon_name }}" required=""></td>
</tr>
<tr>
<td class="label">Velikost stránky</td>
<td><input name="page_size" type="number" min="1" value="{{ board.config.0.page_size }}" required=""></td>
</tr>
<tr>
<td class="label">Počet stránek</td>
<td><input name="page_count" type="number" min="1" value="{{ board.config.0.page_count }}" required=""></td>
</tr>
<tr>
<td class="label">Limit souborů</td>
<td><input name="file_limit" type="number" min="1" value="{{ board.config.0.file_limit }}" required=""></td>
</tr>
<tr>
<td class="label">Limit naťuknutí</td>
<td><input name="bump_limit" type="number" min="0" value="{{ board.config.0.bump_limit }}" required=""></td>
</tr>
<tr>
<td class="label">Limit odpovědí</td>
<td><input name="reply_limit" type="number" min="0" value="{{ board.config.0.reply_limit }}" required=""></td>
</tr>
<tr>
<td class="label">Identifikátory (anti-samefag)</td>
<td>
<div class="input-wrapper">
<input name="user_ids" type="checkbox" {% if board.config.0.user_ids %}checked=""{% endif %}>
</div>
</td>
</tr>
<tr>
<td class="label">Vlajky</td>
<td>
<div class="input-wrapper">
<input name="flags" type="checkbox" {% if board.config.0.flags %}checked=""{% endif %}>
</div>
</td>
</tr>
<tr>
<td class="label">Vlajky Regionů</td>
<td>
<div class="input-wrapper">
<input name="flags_reg" type="checkbox" {% if board.config.0.flags_reg %}checked=""{% endif %}>
</div>
</td>
</tr>
<tr>
<td class="label">CAPTCHA (vlákno)</td>
<td>
<select name="thread_captcha">
<option value="off" {% if board.config.0.thread_captcha == "off" %}selected="selected"{% endif %}>
Žádná
</option>
<option value="easy" {% if board.config.0.thread_captcha == "easy" %}selected="selected"{% endif %}>
Lehká
</option>
<option value="medium" {% if board.config.0.thread_captcha == "medium" %}selected="selected"{% endif %}>
Střední
</option>
<option value="hard" {% if board.config.0.thread_captcha == "hard" %}selected="selected"{% endif %}>
Obtížná
</option>
</select>
</td>
</tr>
<tr>
<td class="label">CAPTCHA (odpověď)</td>
<td>
<select name="reply_captcha">
<option value="off" {% if board.config.0.reply_captcha == "off" %}selected="selected"{% endif %}>
Žádná
</option>
<option value="easy" {% if board.config.0.reply_captcha == "easy" %}selected="selected"{% endif %}>
Lehká
</option>
<option value="medium" {% if board.config.0.reply_captcha == "medium" %}selected="selected"{% endif %}>
Střední
</option>
<option value="hard" {% if board.config.0.reply_captcha == "hard" %}selected="selected"{% endif %}>
Obtížná
</option>
</select>
</td>
</tr>
<tr>
<td class="label">Motiv nástěnky</td>
<td><input name="board_theme" type="text" value="{{ board.config.0.board_theme }}" required=""></td>
</tr>
<tr>
<td class="label">Vyžadovat obsah ve vlákně</td>
<td>
<div class="input-wrapper">
<input name="require_thread_content" type="checkbox" {% if board.config.0.require_thread_content %}checked=""{% endif %}>
</div>
</td>
</tr>
<tr>
<td class="label">Vyžadovat soubor ve vlákně</td>
<td>
<div class="input-wrapper">
<input name="require_thread_file" type="checkbox" {% if board.config.0.require_thread_file %}checked=""{% endif %}>
</div>
</td>
</tr>
<tr>
<td class="label">Vyžadovat obsah v odpovědi</td>
<td>
<div class="input-wrapper">
<input name="require_reply_content" type="checkbox" {% if board.config.0.require_reply_content %}checked=""{% endif %}>
</div>
</td>
</tr>
<tr>
<td class="label">Vyžadovat soubor v odpovědi</td>
<td>
<div class="input-wrapper">
<input name="require_reply_file" type="checkbox" {% if board.config.0.require_reply_file %}checked=""{% endif %}>
</div>
</td>
</tr>
<tr>
<td class="label">Antispam</td>
<td>
<div class="input-wrapper">
<input name="antispam" type="checkbox" {% if board.config.0.antispam %}checked=""{% endif %}>
</div>
</td>
</tr>
<tr>
<td class="label">Interval antispamu (IP)</td>
<td><input name="antispam_ip" type="number" min="0" value="{{ board.config.0.antispam_ip }}" required=""></td>
</tr>
<tr>
<td class="label">Interval antispamu (Obsah)</td>
<td><input name="antispam_content" type="number" min="0" value="{{ board.config.0.antispam_content }}" required=""></td>
</tr>
<tr>
<td class="label">Interval antispamu (IP+Obsah)</td>
<td><input name="antispam_both" type="number" min="0" value="{{ board.config.0.antispam_both }}" required=""></td>
</tr>
<tr>
<td class="label">Interval mezi vlákny (IP)</td>
<td><input name="thread_cooldown" type="number" min="0" value="{{ board.config.0.antispam_both }}" required=""></td>
</tr>
<tr>
<td colspan="2"><input class="button" type="submit" value="Uložit"></td>
</tr>
</table>
</form>
{% endblock %}

View File

@@ -0,0 +1,75 @@
{% import "../macros/staff-nav.html" as staff_nav %}
{% extends "base.html" %}
{% block title %}Nástěnky{% endblock %}
{% block content %}
<h1 class="title">Nástěnky</h1>
{% call staff_nav::staff_nav() %}
<hr>
<h2>Nástěnky</h2>
<form method="post">
<div class="table-wrap">
<table class="data-table center">
<tr>
<th></th>
<th>ID</th>
<th>Jméno</th>
<th>Popis</th>
<th>Vytvořena</th>
<th>Nastavení</th>
</tr>
{% for board in boards %}
<tr>
<td><input name="boards[]" type="checkbox" value="{{ board.id }}"></td>
<td>/{{ board.id }}/</td>
<td>{{ board.name }}</td>
<td>{{ board.description }}</td>
<td><time datetime="{{ board.created }}">{{ board.created|czech_datetime }}</time></td>
<td>{% if tcx.perms.owner() || tcx.perms.board_config() %}<a href="/staff/board-config/{{ board.id }}">[Zobrazit]</a>{% else %}-{% endif %}</td>
</tr>
{% endfor %}
</table>
</div>
{% if tcx.perms.owner() %}
<input class="button" type="submit" formaction="/staff/actions/remove-boards" value="Odstranit vybrané" formnovalidate>
<hr>
<table class="form-table">
<tr>
<td class="label">Jméno</td>
<td><input name="name" type="text" required=""></td>
</tr>
<tr>
<td class="label">Popis</td>
<td><input name="description" type="text"></td>
</tr>
<tr>
<td colspan="2"><input class="button" type="submit" formaction="/staff/actions/update-boards" value="Upravit vybrané"></td>
</tr>
</table>
{% endif %}
</form>
<hr>
<h2>Vytvořit nástěnku</h2>
<form method="post" action="/staff/actions/create-board">
<table class="form-table">
<tr>
<td class="label">ID</td>
<td><input name="id" type="text" required=""></td>
</tr>
<tr>
<td class="label">Jméno</td>
<td><input name="name" type="text" required=""></td>
</tr>
<tr>
<td class="label">Popis</td>
<td><input name="description" type="text"></td>
</tr>
<tr>
<td colspan="2"><input class="button" type="submit" value="Vytvořit nástěnku"></td>
</tr>
</table>
</form>
{% endblock %}

View File

@@ -0,0 +1,26 @@
{% extends "base.html" %}
{% block title %}Upravit příspěvky{% endblock %}
{% block content %}
<div class="container">
<h1 class="title">Upravit novinky</h1>
<hr>
<form method="post" action="/staff/actions/edit-news">
{% for newspost in news %}
<div class="box">
<h2 class="headline">
<span>{{ newspost.title }}</span>
<span class="float-r">
{{ newspost.author }} - <time datetime="{{ newspost.created }}">{{ newspost.created|czech_datetime }}</time>
</span>
</h2>
<hr>
<textarea class="edit-box" name="{{ newspost.id }}">{{ newspost.content_nomarkup }}</textarea>
</div>
<hr>
{% endfor %}
<input class="button full-width" type="submit" value="Upravit">
</form>
</div>
{% endblock %}

51
templates/staff/news.html Normal file
View File

@@ -0,0 +1,51 @@
{% import "../macros/staff-nav.html" as staff_nav %}
{% extends "base.html" %}
{% block title %}Novinky{% endblock %}
{% block content %}
<h1 class="title">Novinky</h1>
{% call staff_nav::staff_nav() %}
<hr>
<h2>Novinky</h2>
<form method="post">
<div class="table-wrap">
<table class="data-table center">
<tr>
<th></th>
<th>Titulek</th>
<th>Autor</th>
<th>Datum</th>
</tr>
{% for newspost in news %}
<tr>
<td><input name="news[]" type="checkbox" value="{{ newspost.id }}"></td>
<td>{{ newspost.title }}</td>
<td>{{ newspost.author }}</td>
<td><time datetime="{{ newspost.created }}">{{ newspost.created|czech_datetime }}</time></td>
</tr>
{% endfor %}
</table>
</div>
<input class="button" type="submit" formaction="/staff/actions/remove-news" value="Odstranit vybrané">&#32;
<input class="button" type="submit" formaction="/staff/edit-news" value="Upravit vybrané">
</form>
<hr>
<h2>Vytvořit novinky</h2>
<form method="post" action="/staff/actions/create-news">
<table class="form-table">
<tr>
<td class="label">Titulek</td>
<td><input name="title" type="text" required=""></td>
</tr>
<tr>
<td class="label">Obsah</td>
<td><textarea name="content" required=""></textarea></td>
</tr>
<tr>
<td colspan="2"><input class="button" type="submit" value="Vytvořit novinky"></td>
</tr>
</table>
</form>
{% endblock %}

View File

@@ -0,0 +1,179 @@
{% import "../macros/staff-nav.html" as staff_nav %}
{% extends "base.html" %}
{% block title %}Oprávnění ({{ account.username }}){% endblock %}
{% block content %}
<h1 class="title">Oprávnění ({{ account.username }})</h1>
{% call staff_nav::staff_nav() %}
<hr>
{% if account.perms().owner() %}
<h2 class="title">Tento uživatel je vlastník, změny nebudou mít žádný vliv.</h2>
<hr>
{% endif %}
<form method="post" action="/staff/actions/update-permissions">
<input name="account" type="hidden" value="{{ account.username }}">
<table class="form-table">
<tr>
<td class="label">Upravit příspěvky</td>
<td>
<div class="input-wrapper">
<input name="edit_posts" type="checkbox"{% if account.perms().edit_posts() %} checked=""{% endif %}{% if !tcx.perms.owner() %} disabled=""{% endif %}>
</div>
</td>
</tr>
<tr>
<td class="label">Spravovat příspěvky</td>
<td>
<div class="input-wrapper">
<input name="manage_posts" type="checkbox"{% if account.perms().manage_posts() %} checked=""{% endif %}{% if !tcx.perms.owner() %} disabled=""{% endif %}>
</div>
</td>
</tr>
<tr>
<td class="label">Používat capcode</td>
<td>
<div class="input-wrapper">
<input name="capcodes" type="checkbox"{% if account.perms().capcodes() %} checked=""{% endif %}{% if !tcx.perms.owner() %} disabled=""{% endif %}>
</div>
</td>
</tr>
<tr>
<td class="label">Vlastní capcode</td>
<td>
<div class="input-wrapper">
<input name="custom_capcodes" type="checkbox"{% if account.perms().custom_capcodes() %} checked=""{% endif %}{% if !tcx.perms.owner() %} disabled=""{% endif %}>
</div>
</td>
</tr>
<tr>
<td class="label">Záznamy</td>
<td>
<div class="input-wrapper">
<input name="staff_log" type="checkbox"{% if account.perms().staff_log() %} checked=""{% endif %}{% if !tcx.perms.owner() %} disabled=""{% endif %}>
</div>
</td>
</tr>
<tr>
<td class="label">Hlášení</td>
<td>
<div class="input-wrapper">
<input name="reports" type="checkbox"{% if account.perms().reports() %} checked=""{% endif %}{% if !tcx.perms.owner() %} disabled=""{% endif %}>
</div>
</td>
</tr>
<tr>
<td class="label">Bany</td>
<td>
<div class="input-wrapper">
<input name="bans" type="checkbox"{% if account.perms().bans() %} checked=""{% endif %}{% if !tcx.perms.owner() %} disabled=""{% endif %}>
</div>
</td>
</tr>
<tr>
<td class="label">Bannery</td>
<td>
<div class="input-wrapper">
<input name="banners" type="checkbox"{% if account.perms().banners() %} checked=""{% endif %}{% if !tcx.perms.owner() %} disabled=""{% endif %}>
</div>
</td>
</tr>
<tr>
<td class="label">Nastavení nástěnek</td>
<td>
<div class="input-wrapper">
<input name="board_config" type="checkbox"{% if account.perms().board_config() %} checked=""{% endif %}{% if !tcx.perms.owner() %} disabled=""{% endif %}>
</div>
</td>
</tr>
<tr>
<td class="label">Novinky</td>
<td>
<div class="input-wrapper">
<input name="news" type="checkbox"{% if account.perms().news() %} checked=""{% endif %}{% if !tcx.perms.owner() %} disabled=""{% endif %}>
</div>
</td>
</tr>
<tr>
<td class="label">Uklízečtext (pravý redtext)</td>
<td>
<div class="input-wrapper">
<input name="jannytext" type="checkbox"{% if account.perms().jannytext() %} checked=""{% endif %}{% if !tcx.perms.owner() %} disabled=""{% endif %}>
</div>
</td>
</tr>
<tr>
<td class="label">Zobrazit IP adresy</td>
<td>
<div class="input-wrapper">
<input name="view_ips" type="checkbox"{% if account.perms().view_ips() %} checked=""{% endif %}{% if !tcx.perms.owner() %} disabled=""{% endif %}>
</div>
</td>
</tr>
<tr>
<td class="label">Obejít ban</td>
<td>
<div class="input-wrapper">
<input name="bypass_bans" type="checkbox"{% if account.perms().bypass_bans() %} checked=""{% endif %}{% if !tcx.perms.owner() %} disabled=""{% endif %}>
</div>
</td>
</tr>
<tr>
<td class="label">Obejít uzamčení nástěnky</td>
<td>
<div class="input-wrapper">
<input name="bypass_board_lock" type="checkbox"{% if account.perms().bypass_board_lock() %} checked=""{% endif %}{% if !tcx.perms.owner() %} disabled=""{% endif %}>
</div>
</td>
</tr>
<tr>
<td class="label">Obejít uzamčení vlákna</td>
<td>
<div class="input-wrapper">
<input name="bypass_thread_lock" type="checkbox"{% if account.perms().bypass_thread_lock() %} checked=""{% endif %}{% if !tcx.perms.owner() %} disabled=""{% endif %}>
</div>
</td>
</tr>
<tr>
<td class="label">Obejít CAPTCHA</td>
<td>
<div class="input-wrapper">
<input name="bypass_captcha" type="checkbox"{% if account.perms().bypass_captcha() %} checked=""{% endif %}{% if !tcx.perms.owner() %} disabled=""{% endif %}>
</div>
</td>
</tr>
<tr>
<td class="label">Obejít antispam</td>
<td>
<div class="input-wrapper">
<input name="bypass_antispam" type="checkbox"{% if account.perms().bypass_antispam() %} checked=""{% endif %}{% if !tcx.perms.owner() %} disabled=""{% endif %}>
</div>
</td>
</tr>
{% if tcx.perms.owner() %}
<tr>
<td colspan="2"><input class="button" type="submit" value="Uložit"></td>
</tr>
{% endif %}
</table>
</form>
{% endblock %}

View File

@@ -0,0 +1,40 @@
{% import "../macros/post-actions.html" as post_actions %}
{% import "../macros/post.html" as post %}
{% import "../macros/staff-nav.html" as staff_nav %}
{% import "../macros/static-pagination.html" as static_pagination %}
{% extends "base.html" %}
{% block title %}Hlášení{% endblock %}
{% block content %}
<div class="center">
<h1 class="title">Hlášení</h1>
<p class="description greentext">&gt;Ukliď to!!!</p>
</div>
{% call staff_nav::staff_nav() %}
<hr>
<form method="post">
{% for post in posts %}
<b>Příspěvek z <a href="/boards/{{ post.board }}">/{{ post.board }}/</a></b>
<br>
{% call post::post(boards[post.board.as_str()], post, true) %}
<table class="data-table inline-block m-0">
<tr>
<th>IP adresa</th>
<th>Důvod hlášení</th>
</tr>
{% for report in post.reports.0 %}
<tr>
<td><b>{{ report.reporter_ip }}</b> (<img class="icon" src="/static/flags/{{ report.reporter_country }}.png">)</td>
<td>{{ report.reason }}</td>
</tr>
{% endfor %}
</table>
<hr>
{% endfor %}
{% call static_pagination::static_pagination("/staff/reports", page, false) %}
<hr>
{% call post_actions::post_actions() %}
</form>
{% endblock %}