X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/2f9c60b76f3ab4e69d794a6bb14388a81ff29eb7..4c48c47d0b84e516114c16ee191359166e93a51c:/apps/catalogue/templatetags/catalogue.py diff --git a/apps/catalogue/templatetags/catalogue.py b/apps/catalogue/templatetags/catalogue.py index cdb19404..850a2e80 100644 --- a/apps/catalogue/templatetags/catalogue.py +++ b/apps/catalogue/templatetags/catalogue.py @@ -1,13 +1,13 @@ from __future__ import absolute_import -from django.db.models import Count +from django.db.models import Count, Q from django.core.urlresolvers import reverse from django.contrib.comments.models import Comment from django.template.defaultfilters import stringfilter from django import template from django.utils.translation import ugettext as _ -from catalogue.models import Book, Chunk +from catalogue.models import Book, Chunk, BookPublishRecord register = template.Library() @@ -32,7 +32,7 @@ def main_tabs(context): if user.is_authenticated(): tabs.append(Tab('my', _('My page'), reverse("catalogue_user"))) - tabs.append(Tab('unassigned', _('Unassigned'), reverse("catalogue_unassigned"))) + tabs.append(Tab('all', _('All'), reverse("catalogue_document_list"))) tabs.append(Tab('users', _('Users'), reverse("catalogue_users"))) tabs.append(Tab('create', _('Add'), reverse("catalogue_create_missing"))) tabs.append(Tab('upload', _('Upload'), reverse("catalogue_upload"))) @@ -61,10 +61,12 @@ class WallItem(object): return self.email -def changes_wall(max_len): +def changes_wall(user, max_len): qs = Chunk.change_model.objects.filter(revision__gt=-1).order_by('-created_at') qs = qs.defer('patch') qs = qs.select_related('author', 'tree', 'tree__book__title') + if user: + qs = qs.filter(Q(author=user) | Q(tree__user=user)) qs = qs[:max_len] for item in qs: tag = 'stage' if item.tags.count() else 'change' @@ -80,21 +82,28 @@ def changes_wall(max_len): yield w -def published_wall(max_len): - qs = Book.objects.exclude(last_published=None).order_by('-last_published') +# TODO: marked for publishing + + +def published_wall(user, max_len): + qs = BookPublishRecord.objects.select_related('book__title') + if user: + # TODO: published my book + qs = qs.filter(Q(user=user)) qs = qs[:max_len] for item in qs: w = WallItem('publish') - w.title = item.title - w.summary = item.title + w.title = item.book.title + #w.summary = w.url = chunk.book.get_absolute_url() - w.timestamp = item.last_published - w.user = item.last_published_by yield w -def comments_wall(max_len): +def comments_wall(user, max_len): qs = Comment.objects.filter(is_public=True).select_related().order_by('-submit_date') + if user: + # TODO: comments concerning my books + qs = qs.filter(Q(user=user)) qs = qs[:max_len] for item in qs: w = WallItem('comment') @@ -130,12 +139,13 @@ def big_wall(max_len, *args): @register.inclusion_tag("catalogue/wall.html", takes_context=True) -def wall(context, max_len=10): +def wall(context, user=None, max_len=10): + print user return { "request": context['request'], "STATIC_URL": context['STATIC_URL'], "wall": big_wall(max_len, - changes_wall(max_len), - published_wall(max_len), - comments_wall(max_len), + changes_wall(user, max_len), + published_wall(user, max_len), + comments_wall(user, max_len), )}