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)
|