Example #1
0
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)
Example #2
0
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
Example #3
0
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