]> git.parisson.com Git - telemeta.git/commitdiff
better filter items in collection player
authorGuillaume Pellerin <yomguy@parisson.com>
Thu, 23 May 2013 08:11:04 +0000 (10:11 +0200)
committerGuillaume Pellerin <yomguy@parisson.com>
Thu, 23 May 2013 08:11:04 +0000 (10:11 +0200)
telemeta/templates/telemeta/collection_detail.html
telemeta/templates/telemeta/collection_xspf.xml
telemeta/templatetags/telemeta_utils.py

index d84e5f37fd8b6a1d1a6fb92ba2dfac5eb0bd1429..bdba2f190b18f86530ecc7985abf8f1e8a8cc2ba 100644 (file)
@@ -54,7 +54,6 @@
 {% block content %}
     <div class="{% if collection.has_mediafile %}{% if public_access == 'full' or perms.telemeta.can_play_all_items %}with-rightcol{% endif %}{% endif %}">
         {% if collection.has_mediafile %}
-        {% if public_access == 'full' or perms.telemeta.can_play_all_items %}
         <div id="rightcol">
             <div id="collection_player">
              <div class="title">
@@ -78,7 +77,6 @@
             </div>
         </div>
         {% endif %}
-        {% endif %}
       {% block infos %}
         <div class="intro">
             <span><img src="{{ STATIC_URL }}telemeta/images/item_title.png" style="vertical-align:middle" /> {% if collection.items.count %}{{ collection.items.count }} {% ifequal collection.items.count 1 %}item{% else %}items{% endifequal %}{% else %}No item{% endif %}</span>
index 317284b72b7cf3e1a791e290920dab5f7ca310dd..3d1aca51380a5e64ff5e5aeae7e811036597ddb8 100644 (file)
@@ -1,7 +1,7 @@
 {% extends "telemeta/base_xspf.xml" %}
 {% load telemeta_utils %}
 
-{% block listinfo %} 
+{% block listinfo %}
 {% with collection.to_dublincore.flatten as dc %}
   <creator>{{ dc.creator }}</creator>
   <title>{{ dc.title }}</title>
@@ -11,6 +11,8 @@
 
 {% block tracklist %}
 {% for item in collection.items.all %}
+ {% if item.file %}
+ {% if user|has_access:item == 'full' or perms.telemeta.can_play_all_items %}
     <track>
       <title>{{ item }}</title>
       <meta rel="type">mp3</meta>
@@ -18,6 +20,8 @@
       <duration>{{ item.computed_duration.as_seconds|mul:1000 }}</duration>
       <info>http://{{ host }}{% url telemeta-item-detail item.public_id %}</info>
     </track>
+ {% endif %}
+ {% endif %}
 {% endfor %}
 {% endblock %}
 
index cbf2ec548f09f307e52d0195d58e705570a20a1c..6cca0eccfa13aefca20b1ebf3e518745b60c35f1 100644 (file)
@@ -17,6 +17,7 @@ import datetime
 from django.conf import settings
 from django.template.defaultfilters import stringfilter
 from django.template import NodeList
+from telemeta.views.core import get_item_access
 
 register = template.Library()
 
@@ -446,3 +447,9 @@ class IfLoadedNode(template.Node):
             if str(app) == str(self.var):
                 return self.nodelist_true.render(context)
         return self.nodelist_false.render(context)
+
+
+@register.filter
+def has_access(user, item):
+    return get_item_access(item, user)
+