#8984: Tweak ordering of log levels; fix invalid level handling

This commit is contained in:
Jeremy Stretch 2024-07-30 14:49:42 -04:00
parent 5f87724072
commit a63bb6dba6
4 changed files with 17 additions and 10 deletions

View File

@ -156,16 +156,16 @@ class LogLevelChoices(ChoiceSet):
LOG_DEBUG = 'debug' LOG_DEBUG = 'debug'
LOG_DEFAULT = 'default' LOG_DEFAULT = 'default'
LOG_SUCCESS = 'success'
LOG_INFO = 'info' LOG_INFO = 'info'
LOG_SUCCESS = 'success'
LOG_WARNING = 'warning' LOG_WARNING = 'warning'
LOG_FAILURE = 'failure' LOG_FAILURE = 'failure'
CHOICES = ( CHOICES = (
(LOG_DEBUG, _('Debug'), 'teal'), (LOG_DEBUG, _('Debug'), 'teal'),
(LOG_DEFAULT, _('Default'), 'gray'), (LOG_DEFAULT, _('Default'), 'gray'),
(LOG_SUCCESS, _('Success'), 'green'),
(LOG_INFO, _('Info'), 'cyan'), (LOG_INFO, _('Info'), 'cyan'),
(LOG_SUCCESS, _('Success'), 'green'),
(LOG_WARNING, _('Warning'), 'yellow'), (LOG_WARNING, _('Warning'), 'yellow'),
(LOG_FAILURE, _('Failure'), 'red'), (LOG_FAILURE, _('Failure'), 'red'),
) )
@ -173,8 +173,8 @@ class LogLevelChoices(ChoiceSet):
SYSTEM_LEVELS = { SYSTEM_LEVELS = {
LOG_DEBUG: logging.DEBUG, LOG_DEBUG: logging.DEBUG,
LOG_DEFAULT: logging.INFO, LOG_DEFAULT: logging.INFO,
LOG_SUCCESS: logging.INFO,
LOG_INFO: logging.INFO, LOG_INFO: logging.INFO,
LOG_SUCCESS: logging.INFO,
LOG_WARNING: logging.WARNING, LOG_WARNING: logging.WARNING,
LOG_FAILURE: logging.ERROR, LOG_FAILURE: logging.ERROR,
} }

View File

@ -136,10 +136,10 @@ DEFAULT_DASHBOARD = [
] ]
LOG_LEVEL_RANK = { LOG_LEVEL_RANK = {
LogLevelChoices.LOG_DEFAULT: 0, LogLevelChoices.LOG_DEBUG: 0,
LogLevelChoices.LOG_DEBUG: 1, LogLevelChoices.LOG_DEFAULT: 1,
LogLevelChoices.LOG_SUCCESS: 2, LogLevelChoices.LOG_INFO: 2,
LogLevelChoices.LOG_INFO: 3, LogLevelChoices.LOG_SUCCESS: 3,
LogLevelChoices.LOG_WARNING: 4, LogLevelChoices.LOG_WARNING: 4,
LogLevelChoices.LOG_FAILURE: 5, LogLevelChoices.LOG_FAILURE: 5,
} }

View File

@ -1245,7 +1245,10 @@ class ScriptResultView(TableMixin, generic.ObjectView):
table = None table = None
index = 0 index = 0
log_threshold = LOG_LEVEL_RANK.get(request.GET.get('log_threshold', LogLevelChoices.LOG_DEFAULT)) try:
log_threshold = LOG_LEVEL_RANK[request.GET.get('log_threshold', LogLevelChoices.LOG_DEBUG)]
except KeyError:
log_threshold = LOG_LEVEL_RANK[LogLevelChoices.LOG_DEBUG]
if job.data: if job.data:
if 'log' in job.data: if 'log' in job.data:
@ -1302,12 +1305,16 @@ class ScriptResultView(TableMixin, generic.ObjectView):
if job.completed: if job.completed:
table = self.get_table(job, request, bulk_actions=False) table = self.get_table(job, request, bulk_actions=False)
log_threshold = request.GET.get('log_threshold', LogLevelChoices.LOG_DEBUG)
if log_threshold not in LOG_LEVEL_RANK:
log_threshold = LogLevelChoices.LOG_DEBUG
context = { context = {
'script': job.object, 'script': job.object,
'job': job, 'job': job,
'table': table, 'table': table,
'log_levels': dict(LogLevelChoices), 'log_levels': dict(LogLevelChoices),
'log_threshold': request.GET.get('log_threshold', LogLevelChoices.LOG_DEFAULT) 'log_threshold': log_threshold,
} }
if job.data and 'log' in job.data: if job.data and 'log' in job.data:

View File

@ -53,7 +53,7 @@
<div class="dropdown-menu"> <div class="dropdown-menu">
{% for level, name in log_levels.items %} {% for level, name in log_levels.items %}
<a class="dropdown-item d-flex justify-content-between" href="{% url 'extras:script_result' job_pk=job.pk %}?log_threshold={{ level }}"> <a class="dropdown-item d-flex justify-content-between" href="{% url 'extras:script_result' job_pk=job.pk %}?log_threshold={{ level }}">
{{ name }} {{ name }}{% if forloop.first %} ({% trans "All" %}){% endif %}
{% if level == log_threshold %}<span class="badge bg-green ms-auto"></span>{% endif %} {% if level == log_threshold %}<span class="badge bg-green ms-auto"></span>{% endif %}
</a> </a>
{% endfor %} {% endfor %}