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)
from functools import partial, update_wrapper from django import template from django.template.defaultfilters import stringfilter from django.utils.safestring import mark_safe from overviewer.utilities.functional import curry from overviewer.utilities.template import Library from display import script, style, feeds from memory import do_record, do_recall import os register = Library() # Helpers def safe(fn): fn.is_safe = True return fn def texttag(fn): return safe(register.simple_tag(fn)) # Display utilities texttag(script) texttag(style) texttag(feeds)
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