it/itf/bestpractices/templatetags/guidelines.py
2011-10-11 18:25:21 +05:30

37 lines
1.1 KiB
Python
Executable File

from django import template
from bestpractices.models import BestPractice
import re
register = template.Library()
def link_bps(value):
r = r'BP\:[0-9][0-9]?'
matches = re.findall(r, value)
for match in matches:
id = int(match.replace("BP:", "").strip())
try:
bp = BestPractice.objects.get(pk=id)
title = bp.title
html = "<a class='bpRelated' href='/itf/bestpractices/stories#%d' title='View related Best Practice story'>%s</a>" % (id, title,)
value = value.replace(match, html, 1)
except:
value = value.replace(match, '', 1)
return value
def abs_link_bps(value):
r = r'BP\:[0-9][0-9]?'
matches = re.findall(r, value)
for match in matches:
id = int(match.replace("BP:", "").strip())
try:
bp = BestPractice.objects.get(pk=id)
title = bp.title
html = "<a class='bpRelated' href='%s' title='View related Best Practice story'>%s</a>" % (bp.get_absolute_url(), title,)
value = value.replace(match, html, 1)
except:
value = value.replace(match, '', 1)
return value
register.filter("abs_link_bps", abs_link_bps)
register.filter("link_bps", link_bps)