Allow filtering by project
authorRadek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>
Tue, 16 Jul 2013 10:39:03 +0000 (12:39 +0200)
committerRadek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>
Tue, 16 Jul 2013 10:45:00 +0000 (12:45 +0200)
apps/catalogue/templates/catalogue/book_list/book.html
apps/catalogue/templates/catalogue/book_list/book_list.html
apps/catalogue/templatetags/book_list.py

index 658d009..5866e6a 100755 (executable)
@@ -19,6 +19,7 @@
             {% if book.new_publishable %}p{% endif %}
             {% if chunk.changed %}+{% endif %}
         </td>
+        <td>{{ book.project.name }}</td>
     </tr>
     {% endwith %}
 {% else %}
@@ -33,5 +34,6 @@
             {% if book.published %}P{% endif %}
             {% if book.new_publishable %}p{% endif %}
         </td>
+        <td>{{ book.project.name }}</td>
     </tr>
 {% endif %}
index 4023723..3553768 100755 (executable)
@@ -10,6 +10,7 @@
 {% endif %}
 <input type='hidden' name="all" value="{{ request.GET.all }}" />
 <input type='hidden' name="status" value="{{ request.GET.status }}" />
+<input type='hidden' name="project" value="{{ request.GET.project }}" />
 </form>
 
 
             {% endfor %}
         </select></th>
 
+        <th><select name="project" class="filter">
+            <option value=''>- {% trans "project" %} -</option>
+                <option {% if request.GET.project == '-' %}selected="selected"
+                        {% endif %}value="-">- {% trans "none" %} -</option>
+            {% for project in projects %}
+                <option {% if request.GET.project == project.pk|slugify %}selected="selected"
+                        {% endif %}value='{{ project.pk }}'>{{ project.name }}</option>
+            {% endfor %}
+        </select></th>
+
     </tr></thead>
 
     {% with cnt=books|length %}
index 46cf87a..14149e8 100755 (executable)
@@ -5,7 +5,7 @@ from django.db.models import Q, Count
 from django import template
 from django.utils.translation import ugettext_lazy as _
 from django.contrib.auth.models import User
-from catalogue.models import Chunk
+from catalogue.models import Chunk, Project
 
 register = template.Library()
 
@@ -113,6 +113,7 @@ def document_list_filter(request, **kwargs):
     chunks = foreign_filter(chunks, arg_or_GET('user'), 'user', User, 'username')
     chunks = foreign_filter(chunks, arg_or_GET('stage'), 'stage', Chunk.tag_model, 'slug')
     chunks = search_filter(chunks, arg_or_GET('title'), ['book__title', 'title'])
+    chunks = foreign_filter(chunks, arg_or_GET('project'), 'book__project', Project, 'pk')
     return chunks
 
 
@@ -140,6 +141,7 @@ def book_list(context, user=None):
         "books": ChunksList(document_list_filter(request, **filters)),
         "stages": Chunk.tag_model.objects.all(),
         "states": _states_options,
+        "projects": Project.objects.all(),
     })
 
     return new_context