format xml task description
authorMaciej Tronowski <mtro@man.poznan.pl>
Fri, 24 Apr 2015 08:32:56 +0000 (10:32 +0200)
committerMaciej Tronowski <mtro@man.poznan.pl>
Fri, 24 Apr 2015 08:32:56 +0000 (10:32 +0200)
qcg/templates/qcg/task.html
qcg/templatetags/qcg_utils.py

index d490fd6..18df41a 100644 (file)
@@ -68,7 +68,7 @@
             </div>
 
             <div role="tabpanel" class="tab-pane" id="desc">
-                <pre>{{ task.description }}</pre>
+                <pre>{{ task.description|format_xml }}</pre>
             </div>
 
             <div role="tabpanel" class="tab-pane text-center" id="results">
index a1b6b52..e176eb3 100644 (file)
@@ -1,8 +1,9 @@
 from datetime import datetime, timedelta
+from xml.dom import minidom
 
 from django import template
 from django.conf import settings
-from django.utils.html import format_html, format_html_join
+from django.utils.html import format_html, format_html_join, conditional_escape
 from django.utils.timesince import timesince
 from django.utils.timezone import now
 
@@ -40,3 +41,9 @@ def get_params_as_hidden(context, *params):
 def bootstrap_checkbox(field, label_class=settings.BOOTSTRAP3['horizontal_label_class'],
                        field_class=settings.BOOTSTRAP3['horizontal_field_class']):
     return {'field': field, 'label_class': label_class, 'field_class': field_class}
+
+
+@register.filter(needs_autoescape=True)
+def format_xml(string, autoescape=None):
+    esc = conditional_escape if autoescape else lambda x: x
+    return esc(minidom.parseString(string).toprettyxml(indent='    '))