Просмотр исходного кода

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

Jeremy Stretch 1 год назад
Родитель
Сommit
a63bb6dba6

+ 3 - 3
netbox/extras/choices.py

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

+ 4 - 4
netbox/extras/constants.py

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

+ 9 - 2
netbox/extras/views.py

@@ -1245,7 +1245,10 @@ class ScriptResultView(TableMixin, generic.ObjectView):
         table = None
         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 'log' in job.data:
@@ -1302,12 +1305,16 @@ class ScriptResultView(TableMixin, generic.ObjectView):
         if job.completed:
             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 = {
             'script': job.object,
             'job': job,
             'table': table,
             '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:

+ 1 - 1
netbox/templates/extras/script_result.html

@@ -53,7 +53,7 @@
             <div class="dropdown-menu">
               {% 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 }}">
-                  {{ name }}
+                  {{ name }}{% if forloop.first %} ({% trans "All" %}){% endif %}
                   {% if level == log_threshold %}<span class="badge bg-green ms-auto"></span>{% endif %}
                 </a>
               {% endfor %}