From 636af5efb22d6c16745f9f146d5a3ef1941422a5 Mon Sep 17 00:00:00 2001
From: Martin Mares <mj@ucw.cz>
Date: Sat, 25 Jan 2025 01:29:55 +0100
Subject: [PATCH] =?UTF-8?q?DSN:=20Adminsk=C3=BD=20p=C5=99ehled=20ukazuje,?=
=?UTF-8?q?=20koho=20se=20nedoru=C4=8Denka=20t=C3=BDk=C3=A1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
mo/web/admin.py | 7 +++++--
mo/web/templates/parts/dsn.html | 12 ++++++++++++
2 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/mo/web/admin.py b/mo/web/admin.py
index 71a9e83a..c31dc9d0 100644
--- a/mo/web/admin.py
+++ b/mo/web/admin.py
@@ -1,6 +1,7 @@
# Web: Nástroje pro správce
from flask import render_template, request
+from sqlalchemy.orm import joinedload
import mo.db as db
from mo.web import app
@@ -14,8 +15,10 @@ def admin_all_dsn():
pager.validate()
sess = db.get_session()
- query = sess.query(db.EmailDSN).order_by(db.EmailDSN.arrived_at.desc())
+ query = (sess.query(db.EmailDSN)
+ .options(joinedload(db.EmailDSN.user), joinedload(db.EmailDSN.reg))
+ .order_by(db.EmailDSN.arrived_at.desc()))
(count, query) = pager.apply_limits(query, pagesize=20)
dsns = query.all()
- return render_template('admin_dsn.html', dsns=dsns, pager=pager, count=count)
+ return render_template('admin_dsn.html', dsns=dsns, pager=pager, count=count, admin_list=True)
diff --git a/mo/web/templates/parts/dsn.html b/mo/web/templates/parts/dsn.html
index f7260c86..06d0da26 100644
--- a/mo/web/templates/parts/dsn.html
+++ b/mo/web/templates/parts/dsn.html
@@ -6,6 +6,18 @@
<tr>
<th>Čas
<td>{{ dsn.arrived_at|time_and_timedelta }}
+ {% if admin_list %}
+ <tr>
+ <th>Pro koho
+ {% if dsn.user is not none %}
+ <td>Uživatel {{ dsn.user|user_link }}{{ dsn.user|user_flags }}
+ {% if dsn.user.dsn == dsn %} (primární DSN){% endif %}
+ {% elif dsn.reg_id is not none %}
+ <td>Registrace #{{dsn.reg_id}} ({{dsn.reg.type.name}})
+ {% else %}
+ <td>???
+ {% endif %}
+ {% endif %}
<tr>
<th>Kód chyby
<td>{{ dsn.status|dsn_status }}
--
GitLab