from django.contrib.contenttypes.models import ContentType from overviewer.utilities.template import Library from overviewer.comments.models import EditableComment register = Library() @register.setter def get_comments_for(object): return EditableComment.objects.for_model(object) @register.filter def comment_depth_exceeded(depth): return depth <= 0 def comment_count(object): comments = EditableComment.objects.for_model(object) return reduce(lambda c, o: c + comment_count(o), comments, comments.count()) register.filter(comment_count)
def same_day(d1, d2): from datetime import datetime if isinstance(d1, datetime): d1 = d1.date() if isinstance(d2, datetime): d2 = d2.date() return d1 == d2 # Basic utilities def qualify(list, name): return '&'.join('%s=%s' % (name, e) for e in list) register.filter(qualify) @register.filter def xqualify(list, name): q = qualify(list, name) return (q + '&') if list else q @register.filter def rqualify(list, name): q = qualify(list, name) return ('?' + q) if list else q @register.filter
from overviewer.utilities.template import Library from django.core.urlresolvers import reverse, NoReverseMatch register = Library() def edit_url(model): label, name = model._meta.app_label, model.__class__.__name__.lower() try: return reverse('admin_%s_%s_change' % (label, name), args=(model.id,)) except NoReverseMatch: return edit_url(model.parent) register.filter(edit_url) @register.filter def add_url(model): label, name = model._meta.app_label, model._meta.object_name.lower() return reverse('admin_%s_%s_add' % (label, name)) @register.filter def depth(object): return len(object.parents()) @register.filter def should_open_in(object, current): if object == current: return True