forked from rc/aircox
work on player
This commit is contained in:
@ -1,4 +1,5 @@
|
||||
import random
|
||||
import json
|
||||
|
||||
from django import template
|
||||
|
||||
@ -8,32 +9,6 @@ random.seed()
|
||||
register = template.Library()
|
||||
|
||||
|
||||
@register.filter(name='verbose_name')
|
||||
def do_verbose_name(obj, plural=False):
|
||||
"""
|
||||
Return model's verbose name (singular or plural) or `obj` if it is a
|
||||
string (can act for default values).
|
||||
"""
|
||||
return obj if isinstance(obj, str) else \
|
||||
obj._meta.verbose_name_plural if plural else \
|
||||
obj._meta.verbose_name
|
||||
|
||||
@register.simple_tag(name='update_query')
|
||||
def do_update_query(obj, **kwargs):
|
||||
""" Replace provided querydict's values with **kwargs. """
|
||||
for k, v in kwargs.items():
|
||||
if v is not None:
|
||||
obj[k] = list(v) if hasattr(v, '__iter__') else [v]
|
||||
elif k in obj:
|
||||
obj.pop(k)
|
||||
return obj
|
||||
|
||||
|
||||
@register.filter(name='is_diffusion')
|
||||
def do_is_diffusion(obj):
|
||||
return isinstance(obj, Diffusion)
|
||||
|
||||
|
||||
@register.filter(name='get_tracks')
|
||||
def do_get_tracks(obj):
|
||||
""" Get a list of track for the provided log, diffusion, or episode """
|
||||
@ -44,20 +19,42 @@ def do_get_tracks(obj):
|
||||
obj = obj.episode
|
||||
return obj.track_set.all()
|
||||
|
||||
@register.filter(name='is_diffusion')
|
||||
def do_is_diffusion(obj):
|
||||
""" Return True if object is a Diffusion. """
|
||||
return isinstance(obj, Diffusion)
|
||||
|
||||
@register.filter(name='json')
|
||||
def do_json(obj,fields=""):
|
||||
""" Return object as json """
|
||||
if fields:
|
||||
obj = { k: getattr(obj,k,None) for k in ','.split(fields) }
|
||||
return json.dumps(obj)
|
||||
|
||||
@register.simple_tag(name='nav_items', takes_context=True)
|
||||
def do_nav_items(context, menu, **kwargs):
|
||||
""" Render navigation items for the provided menu name. """
|
||||
station, request = context['station'], context['request']
|
||||
return [(item, item.render(request, **kwargs))
|
||||
for item in station.navitem_set.filter(menu=menu)]
|
||||
|
||||
@register.simple_tag(name='update_query')
|
||||
def do_update_query(obj, **kwargs):
|
||||
""" Replace provided querydict's values with **kwargs. """
|
||||
for k, v in kwargs.items():
|
||||
if v is not None:
|
||||
obj[k] = list(v) if hasattr(v, '__iter__') else [v]
|
||||
elif k in obj:
|
||||
obj.pop(k)
|
||||
return obj
|
||||
|
||||
# FIXME: used?
|
||||
@register.simple_tag(name='unique_id')
|
||||
def do_unique_id(prefix=''):
|
||||
value = str(random.random()).replace('.', '')
|
||||
return prefix + '_' + value if prefix else value
|
||||
|
||||
|
||||
|
||||
@register.filter(name='verbose_name')
|
||||
def do_verbose_name(obj, plural=False):
|
||||
"""
|
||||
Return model's verbose name (singular or plural) or `obj` if it is a
|
||||
string (can act for default values).
|
||||
"""
|
||||
return obj if isinstance(obj, str) else \
|
||||
obj._meta.verbose_name_plural if plural else \
|
||||
obj._meta.verbose_name
|
||||
|
||||
|
Reference in New Issue
Block a user