provide more error information in map details

* move link to error log file into the actual message
* add mailto: link to contact email address
* show last line of the error log
site-osm-baustelle
Hartmut Holzgraefe 2023-01-19 21:17:12 +00:00
rodzic 5f302d71e4
commit a9c7f0b9d9
3 zmienionych plików z 24 dodań i 10 usunięć

Wyświetl plik

@ -34,7 +34,7 @@
</table>
<div>
{{ map.status|job_status_to_str }}
{{ map|job_status_to_str }}
</div>
<div style="height: 2em"></div>
@ -108,13 +108,7 @@
</div>
{% elif map.get_errorlog %}
<a class="btn btn-large tooltipped"
href="{{map.get_errorlog}}"
target="_blank"
data-placement="right"
data-original-title="{% trans "Something went wrong while processing this job." %}">
<i class="fas fa-ban"></i> {% trans "Error log" %}
</a>
<!-- no more error output here -->
{% else %}
<a class="btn btn-large disabled tooltipped"
data-placement="right"

Wyświetl plik

@ -186,7 +186,7 @@
{% else %}
<a class="btn disabled tooltipped"
data-placement="top"
data-original-title="{{ map.status|job_status_to_str }}">
data-original-title="{{ map|job_status_to_str }}">
<i class="fas fa-ban"></i> {% trans "Download" %}
</a>
{% endif %}

Wyświetl plik

@ -42,6 +42,16 @@ _alert_warn = "<div class='alert alert-warning' role='alert'>"
_alert_err = "<div class='alert alert-danger' role='alert'>"
_alert_end = "</div>"
def _lastline(filename):
with open(filename, "rb") as file:
try:
file.seek(-2, os.SEEK_END)
while file.read(1) != b'\n':
file.seek(-2, os.SEEK_CUR)
except OSError:
return ""
return str(file.readline().decode())
@register.filter()
def job_status_to_str(value):
if value.status == 0:
@ -53,7 +63,17 @@ def job_status_to_str(value):
return mark_safe(_alert_ok + str(_("Rendering was successful.")) + _alert_end)
else:
if www.settings.CONTACT_EMAIL:
return mark_safe(_alert_err + str(_("%(arg)s!<br/>Please check the error log or contact %(email)s for more information." % {'arg': value.resultmsg, 'email': www.settings.CONTACT_EMAIL})) + _alert_end)
return mark_safe(_alert_err
+ str(("<h4><i class='fas fa-triangle-exclamation'></i> <b>%(msg)s!</b></h4>"
+ str(_("Please check the %(error_log)s for more details<br/>or contact %(email)s for more information.")))
% {
'msg': value.resultmsg,
'email': "<a href='mailto:%s?subject=Error on request %d'><i class='fas fa-envelope'></i> %s</a>" % (www.settings.CONTACT_EMAIL, value.id, www.settings.CONTACT_EMAIL),
'error_log': "<a target='_blank' href='%s'><i class='fas fa-file-lines'></i> %s</a>" % (value.get_errorlog(), _("error log")),
}
)
+ "<hr/><tt>"+_lastline(value.get_errorlog_file()).replace(':',':<br/>')+"</tt>"
+ _alert_end)
else:
return mark_safe( _alert_err + _str(_("%(arg)s! Please check the error log for more information.") % {'arg': value.resultmsg}) + _alert_end)
elif value.status == 3: