from tag_utils import define_parsed_tag from radio.logs.models import Entry from django import template import datetime register = template.Library() def playlist_table(when=None, how_many=5): if when is None: when = datetime.datetime.now() objects = Entry.objects.all().order_by('-submitted')[:int(how_many)] return { 'logs':objects } def grab_latest_logs(context, target, number=None): if number is None: number = 30 now = datetime.datetime.now() logs = Entry.objects.filter(submitted__lte=now).order_by('-submitted')[:number] context.update({ str(target):logs, }) return u'' define_parsed_tag(register, grab_latest_logs, "(get <number:int> )as <target:var>") playlist_table = register.inclusion_tag('logs/includes/playlist.html')(playlist_table)
from tag_utils import define_parsed_tag, define_parsed_block from django import template register = template.Library() def test_parsed(context, arg1, arg2, asvar=None): if asvar is None: asvar = "<None>" return u"%d %s as %s" % (arg1, arg2, asvar) def test_kwargs(context, yarg): return u"%s" % yarg def test_block(context, nodelist, **kwargs): output = ["starting test_block<br />"] context.push() context.update(kwargs) output.append(nodelist.render(context)) context.pop() output.append("exiting test_block") return "\n".join(output) define_parsed_tag(register, test_parsed, r"<arg1:int> <arg2:string>( as <asvar:var>)") define_parsed_tag(register, test_kwargs, r"<kw:kwarg>") define_parsed_block(register, test_block, r"<kw:kwarg>")
from django import template from tag_utils import define_parsed_tag from radio.frontend.models import Ad import datetime import random register = template.Library() def get_random_ad(context, asvar): now = datetime.datetime.now() ads = Ad.objects.filter(start_date__lte=now, end_date__gte=now) num_ads = len(ads) rand_index = int(random.random() * num_ads) if num_ads: context[str(asvar)] = ads[rand_index] return u'' define_parsed_tag(register, get_random_ad, 'as <asvar:var>')