From a842e194520ea3056ec9304552a3afe44fe6cead Mon Sep 17 00:00:00 2001
From: Henrik Levkowetz <henrik@levkowetz.com>
Date: Fri, 30 Sep 2016 21:30:04 +0000
Subject: [PATCH] Moved some code and tweaked settings to ignore sql debug
 functions when calculating code coverage.  - Legacy-Id: 12070

---
 ietf/utils/templatetags/debug_filters.py | 39 ++++++++++++++++++++++++
 1 file changed, 39 insertions(+)
 create mode 100644 ietf/utils/templatetags/debug_filters.py

diff --git a/ietf/utils/templatetags/debug_filters.py b/ietf/utils/templatetags/debug_filters.py
new file mode 100644
index 000000000..425b0dbeb
--- /dev/null
+++ b/ietf/utils/templatetags/debug_filters.py
@@ -0,0 +1,39 @@
+from django import template
+
+register = template.Library()
+
+@register.filter(name='timesum')
+def timesum(value):
+    """
+    Sum the times in a list of dicts; used for sql query debugging info"""
+    sum = 0.0
+    for v in value:
+        sum += float(v['time'])
+    return sum
+
+
+@register.filter()
+def expand_comma(value):
+    """
+    Adds a space after each comma, to allow word-wrapping of
+    long comma-separated lists."""
+    return value.replace(",", ", ")
+
+
+@register.filter()
+def annotate_sql_queries(queries):
+    counts  = {}
+    timeacc = {}
+    for q in queries:
+        sql = q['sql']
+        if not sql in counts:
+            counts[sql] = 0;
+        counts[sql] += 1
+        if not sql in timeacc:
+            timeacc[sql] = 0.0;
+        timeacc[sql] += float(q['time'])
+    for q in queries:
+        sql = q['sql']
+        q['count'] = str(counts[sql])
+        q['time_accum'] = "%4.3f" % timeacc[sql]
+    return queries