comparison sat_website/templatetags/utils.py @ 90:5de2a3dd4e67

change VideoDesc attribute path to paths, a dict where you can specify a different path for each language
author souliane <souliane@mailoo.org>
date Tue, 16 Jun 2015 17:23:15 +0200
parents 3d04a955bec4
children 9ae3d9c8b28a
comparison
equal deleted inserted replaced
89:4b4a5d7602f8 90:5de2a3dd4e67
1 from django import template 1 from django import template
2 from django.forms import RadioSelect, CheckboxInput 2 from django.forms import RadioSelect, CheckboxInput
3 from django.utils.translation import get_language, ugettext_lazy 3 from django.utils.translation import get_language, ugettext_lazy as _
4 register = template.Library() 4 register = template.Library()
5 5
6 @register.filter 6 @register.filter
7 def is_tuple(value): 7 def is_tuple(value):
8 """Tell if this value is a tuple or not. 8 """Tell if this value is a tuple or not.
68 result.append(value[index:index + n]) 68 result.append(value[index:index + n])
69 index += n 69 index += n
70 return result 70 return result
71 71
72 @register.filter 72 @register.filter
73 def metadata(data): 73 def select_video_path(paths):
74 """Return a string representation of a metadata dict. 74 """Return the video path matching the current language.
75 75
76 @param data (dict{__proxy__: unicode}): metadata dictionnary 76 @param paths (dict): dict of video paths.
77 @return: unicode 77 @return: unicode
78 """ 78 """
79 if not data:
80 return ""
81 lang = get_language() 79 lang = get_language()
82 sep = ugettext_lazy(': ') 80 if lang in paths:
83 items = ["%s%s%s" % (key.translate(lang), sep, value) for key, value in data.iteritems()] 81 return paths[lang]
84 return replace_language_tag("(%s)" % ', '.join(items)) 82 return paths.values()[0]
85 83
86 @register.filter 84 @register.filter
87 def replace_language_tag(text): 85 def metadata(entry):
88 """Replace {{LANGUAGE_CODE}} by the current language code. 86 """Return a string representation of the video metadata.
89 87
90 @param text (unicode): text to process 88 @param entry (VideoDesc): video entry
91 @return: unicode 89 @return: unicode
92 """ 90 """
93 return text.replace("{{LANGUAGE_CODE}}", get_language()) 91 sep = _(': ')
92 lang = get_language()
93
94 def get_item(key, value):
95 return "%s%s%s" % (key, sep, value)
96 items = [get_item(key.translate(lang), value) for key, value in entry.data.iteritems()]
97 try:
98 lang_key = _(u"language").translate(lang)
99 lang_value = lang if lang in entry.paths else entry.paths.keys()[0]
100 items.append(get_item(lang_key, lang_value))
101 except AttributeError:
102 pass
103 return "(%s)" % ', '.join(items)