kpsul/kfet/templatetags/kfet_tags.py

54 lines
1.2 KiB
Python
Raw Normal View History

2016-09-01 00:45:44 +02:00
# -*- coding: utf-8 -*-
import re
2016-08-02 10:40:46 +02:00
from django import template
from django.utils.html import escape
from django.utils.safestring import mark_safe
from ..utils import to_ukf
2016-08-02 10:40:46 +02:00
register = template.Library()
register.filter('ukf', to_ukf)
2017-01-19 04:42:00 +01:00
@register.filter()
2016-08-02 10:40:46 +02:00
def highlight_text(text, q):
q2 = "|".join(re.escape(word) for word in q.split())
2016-08-02 10:40:46 +02:00
pattern = re.compile(r"(?P<filter>%s)" % q2, re.IGNORECASE)
regex = r"<span class='highlight_autocomplete'>\g<filter></span>"
return mark_safe(re.sub(pattern, regex, escape(text)))
2016-08-02 10:40:46 +02:00
@register.filter(is_safe=True)
def highlight_user(user, q):
if user.first_name and user.last_name:
text = "%s %s (%s)" % (user.first_name, user.last_name, user.username)
else:
text = user.username
2017-01-19 04:42:00 +01:00
return highlight_text(text, q)
2016-08-02 10:40:46 +02:00
@register.filter(is_safe=True)
def highlight_clipper(clipper, q):
if clipper.fullname:
text = "%s (%s)" % (clipper.fullname, clipper.clipper)
2016-08-02 10:40:46 +02:00
else:
text = clipper.clipper
2017-01-19 04:42:00 +01:00
return highlight_text(text, q)
2016-08-02 10:40:46 +02:00
@register.filter()
def widget_type(field):
return field.field.widget.__class__.__name__
@register.filter()
def slice(l, start, end=None):
if end is None:
end = start
start = 0
return l[start:end]