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