new file: .gitignore new file: Dockerfile new file: README.md new file: app.py new file: auth.py new file: config.py new file: db.py new file: db_helpers.py new file: docker-compose.yml new file: requirements.txt new file: routes/__init__.py new file: routes/admin_routes.py new file: routes/auth_routes.py new file: routes/journal_routes.py new file: static/css/style.css new file: static/js/main.js new file: templates/admin/dashboard.html new file: templates/admin/users.html new file: templates/base.html new file: templates/day.html new file: templates/future.html new file: templates/index.html new file: templates/login.html new file: templates/week.html
50 lines
1.5 KiB
HTML
50 lines
1.5 KiB
HTML
{% extends "base.html" %}
|
||
{% block title %}Admin – Bullet Journal{% endblock %}
|
||
{% block content %}
|
||
<div class="page-head">
|
||
<div>
|
||
<h1>Admin-Panel</h1>
|
||
<p class="muted">Zentrales Dashboard</p>
|
||
</div>
|
||
<a href="{{ url_for('admin.users') }}" class="btn">Benutzer verwalten</a>
|
||
</div>
|
||
|
||
<section class="stat-grid">
|
||
<div class="stat-card">
|
||
<span class="stat-number">{{ total_users }}</span>
|
||
<span class="stat-label">Benutzer</span>
|
||
</div>
|
||
<div class="stat-card">
|
||
<span class="stat-number">{{ total_admins }}</span>
|
||
<span class="stat-label">Admins</span>
|
||
</div>
|
||
<div class="stat-card">
|
||
<span class="stat-number">{{ total_notes }}</span>
|
||
<span class="stat-label">Notizen</span>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="card">
|
||
<h2>Kürzlich angelegte Benutzer</h2>
|
||
{% if recent %}
|
||
<table class="table">
|
||
<thead>
|
||
<tr><th>Benutzername</th><th>E-Mail</th><th>Rolle</th><th>Erstellt</th></tr>
|
||
</thead>
|
||
<tbody>
|
||
{% for u in recent %}
|
||
<tr>
|
||
<td>{{ u.username }}</td>
|
||
<td>{{ u.email or '–' }}</td>
|
||
<td>{{ 'Admin' if u.is_admin else 'Benutzer' }}</td>
|
||
<td>{{ u.created_at.strftime('%d.%m.%Y %H:%M') if u.created_at else '–' }}</td>
|
||
</tr>
|
||
{% endfor %}
|
||
</tbody>
|
||
</table>
|
||
{% else %}
|
||
<p class="muted">Noch keine Benutzer.</p>
|
||
{% endif %}
|
||
</section>
|
||
{% endblock %}
|