X-Git-Url: http://mmka.chem.univ.gda.pl/gitweb/?a=blobdiff_plain;f=qcg%2Ftemplatetags%2Fqcg_utils.py;h=cb4e69454ad4d77affae2466d80c54004db90cbf;hb=9e9b697db82a9dbd7b3fa9f6d8aba80a1d606732;hp=33dd748b16734755d81e756ac87ff563d6f48eb7;hpb=b9bcd422c66e0cd9b0f20a0c037dbc2d811bb59f;p=qcg-portal.git diff --git a/qcg/templatetags/qcg_utils.py b/qcg/templatetags/qcg_utils.py index 33dd748..cb4e694 100644 --- a/qcg/templatetags/qcg_utils.py +++ b/qcg/templatetags/qcg_utils.py @@ -1,7 +1,11 @@ from datetime import datetime, timedelta +from pyexpat import ExpatError +from xml.dom import minidom from django import template -from django.utils.html import format_html +from django.conf import settings +from django.forms.utils import flatatt +from django.utils.html import format_html, format_html_join, conditional_escape from django.utils.timesince import timesince from django.utils.timezone import now @@ -9,6 +13,7 @@ from qcg.utils import localtime_str register = template.Library() +register.filter('flatatt', flatatt) @register.simple_tag @@ -27,3 +32,31 @@ def display_attribute(label, value): u'
{}
' u'
{}
' u'', label, value) + + +@register.simple_tag(takes_context=True) +def get_params_as_hidden(context, *params): + return format_html_join('\n', u'', + ((param, v) for param in params for v in context['request'].GET.getlist(param, []))) + + +@register.inclusion_tag('qcg/tags/bootstrap_checkbox.html') +def bootstrap_checkbox(field, label_class=settings.BOOTSTRAP3['horizontal_label_class'], + field_class=settings.BOOTSTRAP3['horizontal_field_class']): + return {'field': field, 'attrs': flatatt(field.field.widget.attrs), + 'label_class': label_class, 'field_class': field_class} + + +@register.inclusion_tag('qcg/tags/bootstrap_button_group.html') +def bootstrap_button_group(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 + try: + return esc(minidom.parseString(string).toprettyxml(indent=' ')) + except ExpatError: + return string