django-orchestra/orchestra/templatetags/utils.py

48 lines
1.2 KiB
Python
Raw Normal View History

2014-05-08 16:59:35 +00:00
from django import template
from django.core.urlresolvers import reverse, NoReverseMatch
from django.forms import CheckboxInput
from orchestra import get_version
register = template.Library()
@register.simple_tag(name="version")
def controller_version():
return get_version()
@register.simple_tag(name="admin_url", takes_context=True)
def rest_to_admin_url(context):
""" returns the admin equivelent url of the current REST API view """
view = context['view']
model = getattr(view, 'model', None)
url = 'admin:index'
args = []
if model:
url = 'admin:%s_%s' % (model._meta.app_label, model._meta.module_name)
pk = view.kwargs.get(view.pk_url_kwarg)
if pk:
url += '_change'
args = [pk]
else:
url += '_changelist'
try:
return reverse(url, args=args)
except NoReverseMatch:
return reverse('admin:index')
@register.filter
def size(value, length):
value = str(value)[:int(length)]
num_spaces = int(length) - len(str(value))
return str(value) + (' '*num_spaces)
@register.filter(name='is_checkbox')
def is_checkbox(field):
return isinstance(field.field.widget, CheckboxInput)