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

from django import template
from django.utils.safestring import mark_safe
from whoisdb.helpers import getWhoisObjectFields, findHandleFromStr
from whoisdb.validators import HandleValidator
register = template.Library()
@register.filter
def linkObject(value):
return mark_safe('<a href="%s">%s</a>' % (value.get_absolute_url(), str(value)))
@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
@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))
return mark_safe(", ".join(links))
@register.filter
def getFields(value, user):
owner = value.canEdit(user)
return getWhoisObjectFields(value, owner)
@register.filter
def userCanEdit(value, user):
if hasattr(value, "canEdit"):
return value.canEdit(user)
return False