diff mbox

[v2,07/10] templates/patch: Add check summary panel

Message ID 1443711154-18689-8-git-send-email-stephen.finucane@intel.com
State Superseded
Headers show

Commit Message

Stephen Finucane Oct. 1, 2015, 2:52 p.m. UTC
Add a table to display the checks associated with a patch. This
includes the requisite styling along with some additional filters.

Signed-off-by: Stephen Finucane <stephen.finucane@intel.com>
---
 htdocs/css/style.css                     | 44 ++++++++++++++++++++++++++++++++
 patchwork/settings/base.py               |  1 +
 patchwork/templates/patchwork/patch.html | 25 ++++++++++++++++++
 patchwork/templatetags/patch.py          |  5 ++++
 4 files changed, 75 insertions(+)
diff mbox

Patch

diff --git a/htdocs/css/style.css b/htdocs/css/style.css
index e5bbc75..d3c02c2 100644
--- a/htdocs/css/style.css
+++ b/htdocs/css/style.css
@@ -285,6 +285,50 @@  table.patchmeta tr th, table.patchmeta tr td {
 	padding-top: 1em;
 }
 
+.checks {
+	border: 1px solid gray;
+	margin: 0.5em 1em;
+}
+
+.checks th {
+	background: #786fb4;
+	color: white;
+}
+
+.checks td {
+	border-top: 1px solid gray;
+	padding: 10px 15px;
+}
+
+.checks td a {
+	text-decoration: none;
+}
+
+.checks td a:visited {
+	color: #786FB4;
+}
+
+.checks a:hover {
+	text-decoration: underline;
+}
+
+.checks .state {
+	font-weight: bold;
+	color: #ddd;
+}
+
+.checks .state.success {
+	color: #82ca9d;
+}
+
+.checks .state.warning {
+	color: #ffe59a;
+}
+
+.checks .state.fail {
+	color: #f7977a;
+}
+
 .comment .meta {
 	background: #f0f0f0;
 }
diff --git a/patchwork/settings/base.py b/patchwork/settings/base.py
index d00245d..8facb52 100644
--- a/patchwork/settings/base.py
+++ b/patchwork/settings/base.py
@@ -19,6 +19,7 @@  ROOT_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)),
 INSTALLED_APPS = [
     'django.contrib.auth',
     'django.contrib.contenttypes',
+    'django.contrib.humanize',
     'django.contrib.sessions',
     'django.contrib.sites',
     'django.contrib.admin',
diff --git a/patchwork/templates/patchwork/patch.html b/patchwork/templates/patchwork/patch.html
index f18ee3b..fe05d34 100644
--- a/patchwork/templates/patchwork/patch.html
+++ b/patchwork/templates/patchwork/patch.html
@@ -1,5 +1,6 @@ 
 {% extends "base.html" %}
 
+{% load humanize %}
 {% load syntax %}
 {% load person %}
 {% load patch %}
@@ -176,6 +177,30 @@  function toggle_headers(link_id, headers_id)
  >{{ patch.pull_url }}</a>
 {% endif %}
 
+{% if patch.checks %}
+<h2>Checks</h2>
+<table class="checks">
+<tr>
+  <th>Context</th>
+  <th>Description</th>
+  <th>Check</th>
+</tr>
+{% for check in patch.checks %}
+<tr>
+  <td>{{ check.context }}</td>
+  <td>
+  {% if check.target_url %}<a href="{{ check.target_url }}">{% endif %}
+  {{ check.description }}</td>
+  {% if check.target_url %}</a>{% endif %}
+  <td><span title="Updated {{ check.date|naturaltime }}"
+    class="state {{ check.get_state_display }}">
+    {{ check.get_state_display }}</span>
+  </td>
+</tr>
+{% endfor %}
+</table>
+{% endif %}
+
 <h2>Comments</h2>
 {% for comment in patch.comments %}
 <div class="comment">
diff --git a/patchwork/templatetags/patch.py b/patchwork/templatetags/patch.py
index 58575e9..3d4eb9e 100644
--- a/patchwork/templatetags/patch.py
+++ b/patchwork/templatetags/patch.py
@@ -48,3 +48,8 @@  def patch_checks(patch):
     return mark_safe('<span title="%s">%s</span>' % (
         ' / '.join(titles),
         ' '.join([str(counts[state]) for state in required])))
+
+
+@register.filter(name='state_class')
+def state_class(state):
+    return '-'.join(state.split())