]> git.parisson.com Git - telemeta.git/commitdiff
-Ajout de nouveaux filtres sur les resultats
authorafilsaime <shadow_kungfu@hotmail.fr>
Mon, 20 Apr 2015 08:43:46 +0000 (10:43 +0200)
committerafilsaime <shadow_kungfu@hotmail.fr>
Mon, 20 Apr 2015 08:43:46 +0000 (10:43 +0200)
-Implementation du moteur elasticsearch sur Telemeta

12 files changed:
telemeta/models/query.py
telemeta/search_indexes.py
telemeta/static/telemeta/css/telemeta.css
telemeta/templates/search/indexes/telemeta/mediaitem_text.txt
telemeta/templates/search/search.html
telemeta/templates/telemeta/home.html
telemeta/templates/telemeta/search_results.html
telemeta/templatetags/__init__.py
telemeta/templatetags/telemeta_utils.py
telemeta/urls.py
telemeta/views/home.py
telemeta/views/item.py

index d91a21ca5522aabfff26a55ca47280832acca299..07f623383e52a2a3a21fcd8d4b6a7eca7a8c7af4 100644 (file)
@@ -69,6 +69,7 @@ class MediaItemQuerySet(CoreQuerySet):
 
         return self.filter(q)
 
+
     def without_collection(self):
         "Find items which do not belong to any collection"
         return self.extra(
index ff34d4a3a2a1f2e0c8493afd0b608ce49e70f883..f73988bb15063838b72aac55f24e0de61d0cd640 100644 (file)
@@ -4,7 +4,8 @@ from telemeta.models import *
 
 class MediaItemIndex(indexes.SearchIndex, indexes.Indexable):
 
-    text = indexes.CharField(document=True)
+    text = indexes.NgramField(document=True, use_template=True)
+    #rec_date = indexes.DateTimeField(use_template=True, null=True)
 
     def get_model(self):
         return MediaItem
index 7af24b54dd958d86a45fa1ffbd5a650f66957cca..4a46b7fd0d708c05c116f169e70a64273f61fb53 100644 (file)
@@ -1222,6 +1222,22 @@ a.image-link {
     text-decoration: none;
 }
 
+#btn{
+    font-weight: bold;
+    color:#ffffff;
+    background-color:#6a0307;
+    border-color:#6a0307;
+    box-shadow: 5px 5px 5px #888888;
+}
+
+#btn:hover{
+    font-weight: bold;
+    color:#6a0307;
+    background-color:#ffffff;
+    border-color:#6a0307;
+    box-shadow: 5px 5px 5px #888888;
+}
+
 .list_item, .list_item:visited, .list_item:hover{
     display:block;
     color:#6A0307;
index 4665cb5533d0d9e0224f0121325f5df9f2ddc19c..5f044c0a506c6062e745c5ef789a129dcacfa681 100644 (file)
@@ -1,2 +1,6 @@
 {{ object.title }}
+{{ object.recorded_from_date }}
+{{ object.recorded_to_date }}
+{{ object.code }}
+{{ object.location }}
 {{ object.body }}
index 64cbb4768bd080ced53be46abb7aa0b710001104..f3d1cc59e0c60578806879bdbcfdf007f40b59f4 100644 (file)
         </table>
 
         {% if query %}
-            <h3>Results</h3>
-
-            {% for result in page.object_list %}
-                <p>
-                    <a href="{{ result.object.get_absolute_url }}">{{ result.object.title }}</a>
-                </p>
-            {% empty %}
-                <p>No results found.</p>
-            {% endfor %}
+            <h1>{% trans "Results" %}</h1>
+           <div class="fullpage">
+               {% include "search/mediaitem_listhaystack.html" %}
+           </div>
 
             {% if page.has_previous or page.has_next %}
                 <div>
@@ -42,4 +37,4 @@
             {# Show some example queries to run, maybe query syntax, something else? #}
         {% endif %}
     </form>
-{% endblock %}
\ No newline at end of file
+{% endblock %}
index 0bd400852a3d10570cba5c20ff4a29be165d8ec8..2ccc13d620de9f978f20afb8a47b52a9842cc0da 100644 (file)
@@ -57,7 +57,8 @@
 
 <div class="home-description">
 <img class="align-left" src="{{ STATIC_URL }}telemeta/images/vox.png" alt="vox" style="vertical-align:middle;" />
-{{ page_content|render_flatpage }}
+<button type="button" id="btn" class="btn btn-default" onclick="location.href='{%url "telemeta-fullaccess-items"%}'"> <span class="glyphicon glyphicon-play" aria-hidden="true"></span> Accéder aux items en libre acces</a>
+{#{{ page_content|render_flatpage }}#}
 </div>
 
 {% if sound_pub_items %}
 <h1><img src="{{ STATIC_URL }}telemeta/images/playlist_title.png" alt="playlists" style="vertical-align:middle" />
     {% trans "Musical selection" %}</h1>
 </div>
-{% for item in sound_pub_items %}
+{% for item in sound_pub_items %}
 <div style="float: left; margin: 3px; width: 48%" align="center"><a href="{% url "telemeta-item-detail" item.public_id %}">{{ item }}</a>{% if item.alt_title %} ({{ item.alt_title }}){% endif %}<br /><span style="font-size: 80%">{{ item.location.fullnames|to_string }}</span><br />
 <iframe width='376' height='220' frameborder='0' scrolling='no' marginheight='0' marginwidth='0' src='/archives/items/{{ item.public_id }}/player/362x130/'></iframe></div>
-{% endfor %}
+{% endfor %}
 </div>
 {% endif %}
 
index 7289824a241b6777507b3ef5e4ce3c4d98f72fd9..68e1c43384ca08f51d485131ac3db0d7b9a6f469 100644 (file)
     <ul class="dropdown-menu" role="menu">
       <li><a href="{% url "telemeta-search-type" "items" %}?{{criteria|with_no_sound|build_query_string}}" class="">{% trans "All" %}</a></li>
       <li><a href="{% url "telemeta-search-type" "items" %}?{{criteria|with_sound|build_query_string}}">{% trans "Sounds" %}</a></li>
+      <li><a href="{% url "telemeta-search-published" "items" %}?{{criteria|with_no_sound|build_query_string}}">{% trans "Published" %}</a></li>
+      <li><a href="{% url "telemeta-search-unpublished" "items" %}?{{criteria|with_no_sound|build_query_string}}">{% trans "Unpublished" %}</a></li>
+      <li><a href="{% url "telemeta-search-full" "items" %}?{{criteria|with_no_sound|build_query_string}}">{% trans "Full" %}</a></li>
+      <li><a href="{% url "telemeta-search-none" "items" %}?{{criteria|with_no_sound|build_query_string}}">{% trans "None" %}</a></li>
     </ul>
     {% endifequal %}
     {% ifequal type 'collections' %}
     <ul class="dropdown-menu" role="menu">
       <li><a href="{% url "telemeta-search-type" "collections" %}?{{criteria|with_no_sound|build_query_string}}" class="">{% trans "All" %}</a></li>
       <li><a href="{% url "telemeta-search-type" "collections" %}?{{criteria|with_sound|build_query_string}}">{% trans "Sounds" %}</a></li>
+      <li><a href="{% url "telemeta-search-published" "collections" %}?{{criteria|with_no_sound|build_query_string}}">{% trans "Published" %}</a></li>
+      <li><a href="{% url "telemeta-search-unpublished" "collections" %}?{{criteria|with_no_sound|build_query_string}}">{% trans "Unpublished" %}</a></li>
+      <li><a href="{% url "telemeta-search-full" "collections" %}?{{criteria|with_no_sound|build_query_string}}">{% trans "Full" %}</a></li>
+      <li><a href="{% url "telemeta-search-none" "collections" %}?{{criteria|with_no_sound|build_query_string}}">{% trans "None" %}</a></li>
     </ul>
     {% endifequal %}
   </div>
 {% endif %}
 
 {% ifequal type 'items' %}
-<p><b>Items ({{items_num}}) | <a href="{% url "telemeta-search-type" "collections" %}?{{criteria|build_query_string}}">Collections ({{collections_num}})</a> | <a href="{% url "telemeta-search-type" "corpus" %}?{{criteria|build_query_string}}">Corpus ({{corpus_num}})</a> | <a href="{% url "telemeta-search-type" "fonds" %}?{{criteria|build_query_string}}">Fonds ({{fonds_num}})</a></b></p>
-  {% with object_list as items %}
-   <div class="fullpage">
-      {% include "telemeta/inc/mediaitem_list.html" %}
-   </div>
-  {% endwith %}
+    {% ifequal result_filter "published"%}
+        <p><b>Items ({{items_num}}) | <a href="{% url "telemeta-search-published" "collections" %}?{{criteria|build_query_string}}">Collections ({{collections_num}})</a> | <a href="{% url "telemeta-search-published" "corpus" %}?{{criteria|build_query_string}}">Corpus ({{corpus_num}})</a> | <a href="{% url "telemeta-search-published" "fonds" %}?{{criteria|build_query_string}}">Fonds ({{fonds_num}})</a></b></p>
+          {% with object_list as items %}
+           <div class="fullpage">
+              {% include "telemeta/inc/mediaitem_list.html" %}
+           </div>
+          {% endwith %}
+    {% else%}
+        {% ifequal result_filter "unpublished"%}
+            <p><b>Items ({{items_num}}) | <a href="{% url "telemeta-search-unpublished" "collections" %}?{{criteria|build_query_string}}">Collections ({{collections_num}})</a> | <a href="{% url "telemeta-search-unpublished" "corpus" %}?{{criteria|build_query_string}}">Corpus ({{corpus_num}})</a> | <a href="{% url "telemeta-search-unpublished" "fonds" %}?{{criteria|build_query_string}}">Fonds ({{fonds_num}})</a></b></p>
+              {% with object_list as items %}
+               <div class="fullpage">
+                  {% include "telemeta/inc/mediaitem_list.html" %}
+               </div>
+              {% endwith %}
+        {% else%}
+            {% ifequal result_filter "full"%}
+                <p><b>Items ({{items_num}}) | <a href="{% url "telemeta-search-full" "collections" %}?{{criteria|build_query_string}}">Collections ({{collections_num}})</a> | <a href="{% url "telemeta-search-full" "corpus" %}?{{criteria|build_query_string}}">Corpus ({{corpus_num}})</a> | <a href="{% url "telemeta-search-full" "fonds" %}?{{criteria|build_query_string}}">Fonds ({{fonds_num}})</a></b></p>
+                  {% with object_list as items %}
+                   <div class="fullpage">
+                      {% include "telemeta/inc/mediaitem_list.html" %}
+                   </div>
+                  {% endwith %}
+            {% else%}
+                {% ifequal result_filter "none"%}
+                    <p><b>Items ({{items_num}}) | <a href="{% url "telemeta-search-none" "collections" %}?{{criteria|build_query_string}}">Collections ({{collections_num}})</a> | <a href="{% url "telemeta-search-none" "corpus" %}?{{criteria|build_query_string}}">Corpus ({{corpus_num}})</a> | <a href="{% url "telemeta-search-none" "fonds" %}?{{criteria|build_query_string}}">Fonds ({{fonds_num}})</a></b></p>
+                      {% with object_list as items %}
+                       <div class="fullpage">
+                          {% include "telemeta/inc/mediaitem_list.html" %}
+                       </div>
+                      {% endwith %}
+                {% else%}
+                    <p><b>Items ({{items_num}}) | <a href="{% url "telemeta-search-type" "collections" %}?{{criteria|build_query_string}}">Collections ({{collections_num}})</a> | <a href="{% url "telemeta-search-type" "corpus" %}?{{criteria|build_query_string}}">Corpus ({{corpus_num}})</a> | <a href="{% url "telemeta-search-type" "fonds" %}?{{criteria|build_query_string}}">Fonds ({{fonds_num}})</a></b></p>
+                      {% with object_list as items %}
+                       <div class="fullpage">
+                          {% include "telemeta/inc/mediaitem_list.html" %}
+                       </div>
+                      {% endwith %}
+                {%endifequal%}
+            {%endifequal%}
+        {%endifequal%}
+    {% endifequal %}
 {% endifequal %}
 
 {% ifequal type 'collections' %}
-<p><b><a href="{% url "telemeta-search-type" "items" %}?{{criteria|build_query_string}}">Items ({{items_num}})</a> | Collections ({{collections_num}}) | <a href="{% url "telemeta-search-type" "corpus" %}?{{criteria|build_query_string}}">Corpus ({{corpus_num}})</a> | <a href="{% url "telemeta-search-type" "fonds" %}?{{criteria|build_query_string}}">Fonds ({{fonds_num}})</a>
-  </b></p>
-  {% with object_list as collections %}
-   <div class="fullpage">
-      {% include "telemeta/inc/collection_list.html" %}
-   </div>
-  {% endwith %}
+    {% ifequal result_filter "published"%}
+        <p><b><a href="{% url "telemeta-search-published" "items" %}?{{criteria|build_query_string}}">Items ({{items_num}})</a> | Collections ({{collections_num}}) | <a href="{% url "telemeta-search-published" "corpus" %}?{{criteria|build_query_string}}">Corpus ({{corpus_num}})</a> | <a href="{% url "telemeta-search-published" "fonds" %}?{{criteria|build_query_string}}">Fonds ({{fonds_num}})</a>
+          </b></p>
+          {% with object_list as collections %}
+           <div class="fullpage">
+              {% include "telemeta/inc/collection_list.html" %}
+           </div>
+          {% endwith %}
+    {% else %}
+        {%ifequal result_filter "unpublished"%}
+            <p><b><a href="{% url "telemeta-search-unpublished" "items" %}?{{criteria|build_query_string}}">Items ({{items_num}})</a> | Collections ({{collections_num}}) | <a href="{% url "telemeta-search-unpublished" "corpus" %}?{{criteria|build_query_string}}">Corpus ({{corpus_num}})</a> | <a href="{% url "telemeta-search-unpublished" "fonds" %}?{{criteria|build_query_string}}">Fonds ({{fonds_num}})</a>
+              </b></p>
+              {% with object_list as collections %}
+               <div class="fullpage">
+                  {% include "telemeta/inc/collection_list.html" %}
+               </div>
+               {% endwith %}
+        {%else%}
+            {%ifequal result_filter "full"%}
+                <p><b><a href="{% url "telemeta-search-full" "items" %}?{{criteria|build_query_string}}">Items ({{items_num}})</a> | Collections ({{collections_num}}) | <a href="{% url "telemeta-search-full" "corpus" %}?{{criteria|build_query_string}}">Corpus ({{corpus_num}})</a> | <a href="{% url "telemeta-search-full" "fonds" %}?{{criteria|build_query_string}}">Fonds ({{fonds_num}})</a>
+                  </b></p>
+                  {% with object_list as collections %}
+                   <div class="fullpage">
+                      {% include "telemeta/inc/collection_list.html" %}
+                   </div>
+                  {% endwith %}
+            {%else%}
+                {%ifequal result_filter "none"%}
+                    <p><b><a href="{% url "telemeta-search-none" "items" %}?{{criteria|build_query_string}}">Items ({{items_num}})</a> | Collections ({{collections_num}}) | <a href="{% url "telemeta-search-none" "corpus" %}?{{criteria|build_query_string}}">Corpus ({{corpus_num}})</a> | <a href="{% url "telemeta-search-none" "fonds" %}?{{criteria|build_query_string}}">Fonds ({{fonds_num}})</a>
+                      </b></p>
+                      {% with object_list as collections %}
+                       <div class="fullpage">
+                          {% include "telemeta/inc/collection_list.html" %}
+                       </div>
+                      {% endwith %}
+                {%else%}
+                    <p><b><a href="{% url "telemeta-search-type" "items" %}?{{criteria|build_query_string}}">Items ({{items_num}})</a> | Collections ({{collections_num}}) | <a href="{% url "telemeta-search-type" "corpus" %}?{{criteria|build_query_string}}">Corpus ({{corpus_num}})</a> | <a href="{% url "telemeta-search-type" "fonds" %}?{{criteria|build_query_string}}">Fonds ({{fonds_num}})</a>
+                      </b></p>
+                      {% with object_list as collections %}
+                       <div class="fullpage">
+                          {% include "telemeta/inc/collection_list.html" %}
+                       </div>
+                      {% endwith %}
+                {%endifequal%}
+            {%endifequal%}
+        {%endifequal%}
+    {%endifequal%}
 {% endifequal %}
 
 {% if type == 'corpus' %}
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..40a96afc6ff09d58a702b76e3f7dd412fe975e26 100644 (file)
@@ -0,0 +1 @@
+# -*- coding: utf-8 -*-
index 7cf3488f40edfdbec46634d7946f18d2f89c5ebd..b872ddc68da9193cf2ec32579db8c85b0a853190 100644 (file)
@@ -112,6 +112,7 @@ def with_sound(vars):
             _vars['sound'] = True
     return _vars
 
+
 @register.filter
 def code_or_id(resource):
     if resource.code:
index 6a1a25ea23deb5c19f3674e705cd7263e8eaf0b1..d9da953237271292535650f30939bf91b424f494 100644 (file)
@@ -36,7 +36,7 @@
 
 from django.conf.urls import patterns, url, include
 from django.conf import settings
-from django.views.generic.base import RedirectView
+from django.views.generic.base import RedirectView, TemplateView
 from django.views.generic.list import ListView
 from telemeta.models import MediaItem, MediaCollection, MediaItemMarker, MediaCorpus, MediaFonds
 from telemeta.views import *
@@ -67,9 +67,10 @@ export_extensions = "|".join(item_view.list_export_extensions())
 
 urlpatterns = patterns('',
     url(r'^$', home_view.home, name="telemeta-home"),
-
+    url(r'^test', TemplateView.as_view(template_name = "telemeta/hello_world.html")),
     # items
     url(r'^archives/items/$', ItemListView.as_view(), name="telemeta-items"),
+    url(r'^archives/full_access_items/$', ItemListViewFullAccess.as_view(), name="telemeta-fullaccess-items"),
     url(r'^archives/items_sound/$', ItemSoundListView.as_view(), name="telemeta-items-sound"),
     url(r'^archives/items_unpublished/$', ItemUnpublishedListView.as_view(), name="telemeta-items-unpublished"),
     url(r'^archives/items_published/$', ItemPublishedListView.as_view(), name="telemeta-items-published"),
@@ -139,10 +140,14 @@ urlpatterns = patterns('',
     # search
     # url(r'^archives/$', home_view.search, name="telemeta-archives"),
     url(r'^search/$', SearchView.as_view(), name="telemeta-search"),
+    url(r'^search_published/(?P<type>[A-Za-z0-9._-]+)/$', SearchViewPublished.as_view(), name="telemeta-search-published"),
+    url(r'^search_unpublished/(?P<type>[A-Za-z0-9._-]+)/$', SearchViewUnpublished.as_view(), name="telemeta-search-unpublished"),
+    url(r'^search_full/(?P<type>[A-Za-z0-9._-]+)/$', SearchViewFullAccess.as_view(), name="telemeta-search-full"),
+    url(r'^search_none/(?P<type>[A-Za-z0-9._-]+)/$', SearchViewRestrictedAccess.as_view(), name="telemeta-search-none"),
     url(r'^search/(?P<type>[A-Za-z0-9._-]+)/$', SearchView.as_view(), name="telemeta-search-type"),
     url(r'^search_criteria/$', home_view.edit_search, name="telemeta-search-criteria"),
     url(r'^complete_location/$', home_view.complete_location, name="telemeta-complete-location"),
-    url(r'^haystack/', include('haystack.urls')),
+    url(r'^haystack/', include('telemeta.haystack_urls')),
 
     # administration
     url(r'^admin/$', admin_view.admin_index, name="telemeta-admin"),
index 48d33b06813335d2a2313eba4c70871330d11991..7574307caca66dec0a7994c8ef5f83f63f782f2e 100644 (file)
@@ -278,7 +278,6 @@ class HomeView(object):
         users = User.objects.all().order_by('last_name')
         return render(request, 'telemeta/users.html', {'users': users})
 
-
 class SearchView(ListView):
     """Perform a search through resources"""
 
@@ -417,3 +416,115 @@ class SearchView(ListView):
         context['type'] = self.type
         context['count'] = self.object_list.count()
         return context
+
+
+
+class SearchViewPublished(SearchView):
+    """Perform a search through published resources"""
+
+    template_name='telemeta/search_results.html'
+    paginate_by = 20
+
+    def get_queryset(self):
+        self.type = None
+        if 'type' in self.kwargs:
+            self.type = self.kwargs['type']
+        if(self.type=='items'):
+            return SearchView.get_queryset(self).filter(collection__code__contains="_E_")
+        else:
+            return SearchView.get_queryset(self).filter(code__contains="_E_")
+
+    def get_context_data(self, *args, **kwargs):
+        context = super(SearchView, self).get_context_data(*args, **kwargs)
+        context['criteria'] = self.criteria
+        context['collections_num'] =  self.collections.filter(code__contains="_E_").count()
+        context['items_num'] = self.items.filter(collection__code__contains="_E_").count()
+        context['corpus_num']  = self.corpus.filter(code__contains="_E_").count()
+        context['fonds_num'] = self.fonds.filter(code__contains="_E_").count()
+        context['type'] = self.type
+        context['count'] = self.object_list.count()
+        context['result_filter'] = "published"
+        return context
+
+class SearchViewUnpublished(SearchView):
+    """Perform a search through published resources"""
+
+    template_name='telemeta/search_results.html'
+    paginate_by = 20
+
+    def get_queryset(self):
+        self.type = None
+        if 'type' in self.kwargs:
+            self.type = self.kwargs['type']
+        if(self.type=='items'):
+            return SearchView.get_queryset(self).filter(collection__code__contains="_I_")
+        else:
+            return SearchView.get_queryset(self).filter(code__contains="_I_")
+
+    def get_context_data(self, *args, **kwargs):
+        context = super(SearchView, self).get_context_data(*args, **kwargs)
+        context['criteria'] = self.criteria
+        context['collections_num'] =  self.collections.filter(code__contains="_I_").count()
+        context['items_num'] = self.items.filter(collection__code__contains="_I_").count()
+        context['corpus_num']  = self.corpus.filter(code__contains="_I_").count()
+        context['fonds_num'] = self.fonds.filter(code__contains="_I_").count()
+        context['type'] = self.type
+        context['count'] = self.object_list.count()
+        context['result_filter'] = "unpublished"
+        return context
+
+class SearchViewFullAccess(SearchView):
+    """Perform a search through published resources"""
+
+    template_name='telemeta/search_results.html'
+    paginate_by = 20
+
+    def get_queryset(self):
+        self.type = None
+        if 'type' in self.kwargs:
+            self.type = self.kwargs['type']
+        if(self.type=='items'):
+            search = SearchView.get_queryset(self).filter(Q(collection__public_access="full")|Q(public_access="full")).exclude(collection__public_access="none")
+            return search;
+        else :
+            return SearchView.get_queryset(self).filter(public_access="full")
+
+    def get_context_data(self, *args, **kwargs):
+        context = super(SearchView, self).get_context_data(*args, **kwargs)
+        context['criteria'] = self.criteria
+        context['collections_num'] =  self.collections.filter(public_access="full").count()
+        context['items_num'] = self.items.filter(Q(collection__public_access="full")|Q(public_access="full")).exclude(collection__public_access="none").count()
+        context['corpus_num']  = self.corpus.filter(public_access="full").count()
+        context['fonds_num'] = self.fonds.filter(public_access="full").count()
+        context['type'] = self.type
+        context['count'] = self.object_list.count()
+        context['result_filter'] = "full"
+        return context
+
+class SearchViewRestrictedAccess(SearchView):
+    """Perform a search through published resources"""
+
+    template_name='telemeta/search_results.html'
+    paginate_by = 20
+
+    def get_queryset(self):
+        self.type = None
+        if 'type' in self.kwargs:
+            self.type = self.kwargs['type']
+        if(self.type=='items'):
+            search = SearchView.get_queryset(self).filter(Q(collection__public_access="none")|Q(public_access="none")).exclude(collection__public_access="full")
+            return search;
+        else :
+            return SearchView.get_queryset(self).filter(public_access="none")
+
+    def get_context_data(self, *args, **kwargs):
+        context = super(SearchView, self).get_context_data(*args, **kwargs)
+        context['criteria'] = self.criteria
+        context['collections_num'] =  self.collections.filter(public_access="none").count()
+        context['items_num'] = self.items.filter(Q(collection__public_access="none")|Q(public_access="none")).exclude(collection__public_access="full").count()
+        context['corpus_num']  = self.corpus.filter(public_access="none").count()
+        context['fonds_num'] = self.fonds.filter(public_access="none").count()
+        context['type'] = self.type
+        context['count'] = self.object_list.count()
+        context['result_filter'] = "none"
+        return context
\ No newline at end of file
index bc3c9cc1836cb2f176a51bcb9936adcf2511bfdc..97fef0d752fa3afc9a42e0c322807fd9d70aaf68 100644 (file)
@@ -370,6 +370,18 @@ class ItemListView(ListView):
         context['count'] = self.object_list.count()
         return context
 
+class ItemListViewFullAccess(ListView):
+
+    model = MediaItem
+    template_name = "telemeta/mediaitem_list.html"
+    paginate_by = 20
+    queryset = MediaItem.objects.enriched().filter(Q(collection__public_access="full")|Q(public_access="full")).exclude(collection__public_access="none").order_by('code', 'old_code')
+
+    def get_context_data(self, **kwargs):
+        context = super(ItemListViewFullAccess, self).get_context_data(**kwargs)
+        context['count'] = self.object_list.count()
+        return context
+
 
 class ItemUnpublishedListView(ItemListView):