diff 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
line wrap: on
line diff
--- a/sat_website/templatetags/utils.py	Tue Jun 16 12:35:32 2015 +0200
+++ b/sat_website/templatetags/utils.py	Tue Jun 16 17:23:15 2015 +0200
@@ -1,6 +1,6 @@
 from django import template
 from django.forms import RadioSelect, CheckboxInput
-from django.utils.translation import get_language, ugettext_lazy
+from django.utils.translation import get_language, ugettext_lazy as _
 register = template.Library()
 
 @register.filter
@@ -70,24 +70,34 @@
     return result
 
 @register.filter
-def metadata(data):
-    """Return a string representation of a metadata dict.
+def select_video_path(paths):
+    """Return the video path matching the current language.
 
-    @param data (dict{__proxy__: unicode}): metadata dictionnary
+    @param paths (dict): dict of video paths.
     @return: unicode
     """
-    if not data:
-        return ""
     lang = get_language()
-    sep = ugettext_lazy(': ')
-    items = ["%s%s%s" % (key.translate(lang), sep, value) for key, value in data.iteritems()]
-    return replace_language_tag("(%s)" % ', '.join(items))
+    if lang in paths:
+        return paths[lang]
+    return paths.values()[0]
 
 @register.filter
-def replace_language_tag(text):
-    """Replace {{LANGUAGE_CODE}} by the current language code.
+def metadata(entry):
+    """Return a string representation of the video metadata.
 
-    @param text (unicode): text to process
+    @param entry (VideoDesc): video entry
     @return: unicode
     """
-    return text.replace("{{LANGUAGE_CODE}}", get_language())
+    sep = _(': ')
+    lang = get_language()
+
+    def get_item(key, value):
+        return "%s%s%s" % (key, sep, value)
+    items = [get_item(key.translate(lang), value) for key, value in entry.data.iteritems()]
+    try:
+        lang_key = _(u"language").translate(lang)
+        lang_value = lang if lang in entry.paths else entry.paths.keys()[0]
+        items.append(get_item(lang_key, lang_value))
+    except AttributeError:
+        pass
+    return "(%s)" % ', '.join(items)