django-orchestra/orchestra/templatetags/utils.py

64 lines
1.5 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
2014-09-18 15:07:39 +00:00
from orchestra.admin.utils import change_url
2014-10-17 10:04:47 +00:00
from orchestra.utils.apps import isinstalled
2014-05-08 16:59:35 +00:00
register = template.Library()
2014-10-17 10:04:47 +00:00
@register.filter(name='isinstalled')
def app_is_installed(app_name):
return isinstalled(app_name)
2014-05-08 16:59:35 +00:00
@register.simple_tag(name="version")
2014-07-09 16:17:43 +00:00
def orchestra_version():
2014-05-08 16:59:35 +00:00
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)
2014-09-10 16:53:09 +00:00
@register.filter
2014-05-08 16:59:35 +00:00
def is_checkbox(field):
return isinstance(field.field.widget, CheckboxInput)
2014-09-10 16:53:09 +00:00
@register.filter
2014-10-20 19:22:18 +00:00
def admin_url(obj):
2014-09-18 15:07:39 +00:00
return change_url(obj)
2014-11-21 17:18:59 +00:00
@register.filter
def isactive(obj):
return getattr(obj, 'is_active', True)