X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/ffc2e047ca6712af8da3e13891b7ea16f184264a..8132fc186eb0c5fd02c86828c3a4735754296d02:/apps/catalogue/templatetags/book_list.py diff --git a/apps/catalogue/templatetags/book_list.py b/apps/catalogue/templatetags/book_list.py index 9344053b..9ac996b8 100755 --- a/apps/catalogue/templatetags/book_list.py +++ b/apps/catalogue/templatetags/book_list.py @@ -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, Image +from catalogue.models import Chunk, Image, 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 @@ -125,9 +126,14 @@ def book_list(context, user=None): new_context = {"viewed_user": user} else: filters = {} - new_context = {"users": User.objects.annotate( + new_context = { + "users": User.objects.annotate( count=Count('chunk')).filter(count__gt=0).order_by( - '-count', 'last_name', 'first_name')} + '-count', 'last_name', 'first_name'), + "other_users": User.objects.annotate( + count=Count('chunk')).filter(count=0).order_by( + 'last_name', 'first_name'), + } new_context.update({ "filters": True, @@ -135,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 @@ -168,6 +175,7 @@ def image_list_filter(request, **kwargs): images = foreign_filter(images, arg_or_GET('user'), 'user', User, 'username') images = foreign_filter(images, arg_or_GET('stage'), 'stage', Image.tag_model, 'slug') images = search_filter(images, arg_or_GET('title'), ['title', 'title']) + images = foreign_filter(images, arg_or_GET('project'), 'project', Project, 'pk') return images @@ -180,9 +188,14 @@ def image_list(context, user=None): new_context = {"viewed_user": user} else: filters = {} - new_context = {"users": User.objects.annotate( + new_context = { + "users": User.objects.annotate( count=Count('image')).filter(count__gt=0).order_by( - '-count', 'last_name', 'first_name')} + '-count', 'last_name', 'first_name'), + "other_users": User.objects.annotate( + count=Count('image')).filter(count=0).order_by( + 'last_name', 'first_name'), + } new_context.update({ "filters": True, @@ -190,6 +203,7 @@ def image_list(context, user=None): "objects": image_list_filter(request, **filters), "stages": Image.tag_model.objects.all(), "states": _image_states_options, + "projects": Project.objects.all(), }) return new_context