dynamicweb/datacenterlight/templatetags/custom_tags.py

55 lines
1.1 KiB
Python

from django import template
from django.core.urlresolvers import resolve, reverse
from django.utils.translation import activate, get_language
register = template.Library()
@register.simple_tag(takes_context=True)
def change_lang(context, lang=None, *args, **kwargs):
path = context['request'].path
url_parts = resolve(path)
url = path
cur_language = get_language()
try:
activate(lang)
url = reverse(url_parts.view_name, kwargs=url_parts.kwargs)
finally:
activate(cur_language)
return "%s" % url
@register.filter('get_value_from_dict')
def get_value_from_dict(dict_data, key):
"""
usage example {{ your_dict|get_value_from_dict:your_key }}
"""
if key:
return dict_data.get(key)
else:
return ""
@register.filter('multiply')
def multiply(value, arg):
"""
usage: {{ quantity|multiply:price }}
:param value:
:param arg:
:return:
"""
return value * arg
@register.filter('escaped_line_break')
def escaped_line_break(value):
"""
usage: {{ text|escaped_line_break }}
:param value:
:return:
"""
return value.replace("\\n", "\n")