diff --git a/gracedb/templatetags/logtags.py b/gracedb/templatetags/logtags.py new file mode 100644 index 0000000000000000000000000000000000000000..c19075255941e756ca736c0ad6b0386a404267ed --- /dev/null +++ b/gracedb/templatetags/logtags.py @@ -0,0 +1,69 @@ + +from django import template +from django.utils.encoding import force_unicode +from django.utils.safestring import mark_safe +from ..models import Tag, EventLog + +register = template.Library() + +@register.filter("getLogsForTag") +def getLogsForTag(event,name=None): + if event is None: + return None + try: + if name: + return event.getLogsForTag(name) + else: + return None + except: + # Either there is no such tag or something went wrong. + # In either case, we want the template to just ignore it. + return None + +@register.filter("tagUnicode") +def tagUnicode(tag): + return unicode(tag); + +@register.filter("logsForTagHaveImage") +def logsForTagAllHaveImages(event,name=None): + if event is None: + return None + try: + if name: + loglist = event.getLogsForTag(name) + # Start by assuming no images + bool_rv = False + for log in loglist: + # If any of the log messages do have an image + # attached, we flip the return value to true. + if log.hasImage(): + bool_rv = True + break + return bool_rv + else: + return None + except: + # Either there is no such tag or something went wrong. + # In either case, we want the template to just ignore it. + return None + +@register.filter("logsForTagHaveText") +def logsForTagHaveText(event,name=None): + if event is None: + return None + try: + if name: + loglist = event.getLogsForTag(name) + bool_rv = False + for log in loglist: + if not log.hasImage(): + bool_rv = True + break + return bool_rv + else: + return None + except: + # Either there is no such tag or something went wrong. + # In either case, we want the template to just ignore it. + return None +