[PATCH] Beautify check counts in the patch list view

Ali Alnubani alialnu at mellanox.com
Tue Jan 8 23:38:47 AEDT 2019


This patch [1] adds colors to the checks in the patch list view.
The colors are set based on the check's priority, with FAILURE
having the highest priority, followed by WARNING, and then SUCCESS.
Only the check with the highest priority and non-zero count
will be colored. This is to make failures and warnings more visible.

The patch also [2] replaces zero counts with a '-' for
FAILUREs and WARNINGs.
The SUCCESS count will only be replaced by a '-'
when all other checks have zero counts too.

Suggested-by: Thomas Monjalon <thomas at monjalon.net>
Signed-off-by: Ali Alnubani <alialnu at mellanox.com>
---
 htdocs/css/style.css            | 21 +++++++++++++++++++++
 patchwork/templatetags/patch.py | 26 +++++++++++++++++++++++++-
 2 files changed, 46 insertions(+), 1 deletion(-)

diff --git a/htdocs/css/style.css b/htdocs/css/style.css
index 6b2a80a..1c95174 100644
--- a/htdocs/css/style.css
+++ b/htdocs/css/style.css
@@ -240,6 +240,27 @@ table.patchmeta tr th, table.patchmeta tr td {
 	text-decoration: underline;
 }
 
+.patchlistchecks {
+	border-radius: 7px;
+	padding: 3px;
+}
+
+.patchlistchecks.success {
+	background-color: #82ca9d;
+}
+
+.patchlistchecks.warning {
+	background-color: #ffc95e;
+}
+
+.patchlistchecks.fail {
+	background-color: #ff5555;
+}
+
+.patchlistchecks.empty {
+	padding: 4px;
+}
+
 .checks .state {
 	font-weight: bold;
 	color: #ddd;
diff --git a/patchwork/templatetags/patch.py b/patchwork/templatetags/patch.py
index 5d387a4..c57a642 100644
--- a/patchwork/templatetags/patch.py
+++ b/patchwork/templatetags/patch.py
@@ -36,9 +36,33 @@ def patch_checks(patch):
     titles = ['Success', 'Warning', 'Fail']
     counts = patch.check_count
 
+    check_color = {Check.STATE_SUCCESS: "success",
+            Check.STATE_WARNING: "warning",
+            Check.STATE_FAIL: "fail"}
+
+    check_elements = []
+    if any(counts[state] for state in required):
+        for state in required:
+            if counts[state] > 0 and (state == Check.STATE_FAIL or \
+                    (state == Check.STATE_WARNING and counts[Check.STATE_FAIL] == 0) or \
+                    (state == Check.STATE_SUCCESS and counts[Check.STATE_WARNING] == 0 and \
+                    counts[Check.STATE_FAIL] == 0)):
+                check_elements.append('<span class=\"patchlistchecks {}\">{}</span>'.format( \
+                        check_color[state],
+                        str(counts[state])))
+            else:
+                if state == Check.STATE_SUCCESS:
+                    check_elements.append('<span class=\"patchlistchecks\">{}</span>'.format( \
+                            str(counts[state])))
+                else:
+                    check_elements.append('<span class=\"patchlistchecks\">-</span>')
+    else:
+        check_elements = ['<span class=\"patchlistchecks empty\">-</span>'.format(str(counts[state])) \
+                for state in required]
+
     return mark_safe('<span title="%s">%s</span>' % (
         ' / '.join(titles),
-        ' '.join([str(counts[state]) for state in required])))
+        ''.join(check_elements)))
 
 
 @register.filter
-- 
2.11.0



More information about the Patchwork mailing list