backoffice: use a template to render logged errors page (#42000)

This commit is contained in:
Frédéric Péters 2020-04-25 19:04:13 +02:00
parent 0226e43616
commit 7c5ded1980
3 changed files with 25 additions and 21 deletions

View File

@ -5332,13 +5332,13 @@ def test_backoffice_logged_errors(pub):
app = login(get_app(pub))
resp = app.get('/backoffice/forms/%s/' % formdef.id)
assert 'Failed to evaluate condition' in resp.text
assert 'error ZeroDivisionError' in resp.text
assert 'ZeroDivisionError' in resp.text
resp = resp.click('1 error')
resp = app.get('/backoffice/workflows/%s/' % workflow.id)
resp2 = resp.click('1 error')
assert 'Failed to evaluate condition' in resp2.text
assert 'error ZeroDivisionError' in resp2.text
assert 'ZeroDivisionError' in resp2.text
resp = resp2.click('Failed to evaluate condition')
assert 'ZeroDivisionError: integer division or modulo by zero' in resp.text
assert 'Python Expression: <code>1//0</code>' in resp.text
@ -5361,7 +5361,7 @@ def test_backoffice_logged_errors(pub):
app = login(get_app(pub))
resp = app.get('/backoffice/workflows/%s/' % workflow.id)
assert 'Failed to evaluate condition' in resp2.text
assert 'error ZeroDivisionError' in resp2.text
assert 'ZeroDivisionError' in resp2.text
resp2 = resp.click('1 error')
resp = resp2.click('Failed to evaluate condition')
assert 'href="http://example.net/backoffice/management/test/' in resp.text

View File

@ -19,7 +19,7 @@ import re
from quixote import get_response, get_publisher, redirect
from quixote.directory import Directory
from quixote.html import TemplateIO, htmltext
from wcs.qommon import _, ngettext, N_
from wcs.qommon import _, ngettext, N_, template
from wcs.qommon import errors, get_cfg
from wcs.qommon.misc import localstrftime
@ -197,23 +197,11 @@ class LoggedErrorsDirectory(Directory):
def _q_index(self):
get_response().breadcrumb.append(('logged-errors/', _('Logged Errors')))
self.parent_dir.html_top(_('Logged Errors'))
r = TemplateIO(html=True)
r += htmltext('<div class="bo-block">')
r += htmltext('<h2>%s</h2>') % _('Logged Errors')
r += htmltext('<ul class="biglist">')
for error in self.get_errors(formdef_id=self.formdef_id, workflow_id=self.workflow_id):
r += htmltext('<li><strong><a href="%s/">%s</a></strong> ') % (error.id, error.summary)
if error.exception_class or error.exception_message:
r += htmltext(_('error %(class)s (%(message)s)')) % {
'class': error.exception_class,
'message': error.exception_message,
}
r += htmltext('<p class="details badge">%s</p>') % error.occurences_count
r += htmltext('</li>')
r += htmltext('</ul>')
r += htmltext('</div>')
return r.getvalue()
return template.QommonTemplateResponse(
templates=['wcs/backoffice/logged-errors.html'],
context={
'errors': self.get_errors(formdef_id=self.formdef_id, workflow_id=self.workflow_id),
})
def _q_lookup(self, component):
try:

View File

@ -0,0 +1,16 @@
{% extends "wcs/backoffice/base.html" %}
{% load i18n %}
{% block appbar-title %}{% trans "Logged Errors" %}{% endblock %}
{% block content %}
<ul class="objects-list single-links">
{% for error in errors %}
<li><a href="{{ error.id }}/">{{ error.summary }}
{% if error.exception_class or error.exception_message %}
<span class="extra-info">- {{error.exception_class}} ({{error.exception_message}}</span>
{% endif %}
</a><span class="badge">{{ error.occurences_count }}</span></li>
{% endfor %}
</ul>
{% endblock %}