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('%s' % (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('%s' % (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