diff --git a/mo/web/admin.py b/mo/web/admin.py index 71a9e83a57d71f59e45f3c04c9127415faeb85e4..c31dc9d0009569bfe6c9c155912d6dceca07a68f 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 f7260c86299e87ae8124f016eeb7c069791d4610..06d0da2659b19cdadb04f5c85d81009028063dd4 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 }}