You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

53 lines
1.2 KiB

7 years ago
from django import template
from django.utils.safestring import mark_safe
from whoisdb.helpers import getWhoisObjectFields, findHandleFromStr
from whoisdb.validators import HandleValidator
7 years ago
register = template.Library()
@register.filter
def linkObject(value):
return mark_safe('<a href="%s">%s</a>' % (value.get_absolute_url(), str(value)))
7 years ago
@register.filter
def tryLinkHandle(handle):
try:
if not handle:
raise ValueError()
HandleValidator()(str(handle))
obj = findHandleFromStr(handle)
if obj:
return linkObject(obj)
except:
pass
return handle
7 years ago
@register.filter
def linkObjects(value):
links = []
for obj in value:
if hasattr(obj, "get_absolute_url"):
links.append('<a href="%s">%s</a>' % (obj.get_absolute_url(), str(obj)))
else:
links.append(str(obj))
7 years ago
return mark_safe(", ".join(links))
7 years ago
@register.filter
def getFields(value, user):
owner = value.canEdit(user)
7 years ago
return getWhoisObjectFields(value, owner)
7 years ago
@register.filter
def userCanEdit(value, user):
if hasattr(value, "canEdit"):
return value.canEdit(user)
return False