Mercurial > sat_legacy_website
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) |