From: Radek Czajka Date: Fri, 18 Jun 2010 12:29:00 +0000 (+0200) Subject: keep descendants on shelves X-Git-Url: https://git.mdrn.pl/wolnelektury.git/commitdiff_plain/4e290186955957b103282f78036b344e7e38d279?ds=inline;hp=-c keep descendants on shelves --- 4e290186955957b103282f78036b344e7e38d279 diff --git a/apps/catalogue/views.py b/apps/catalogue/views.py index 47abe637d..102b38ee5 100644 --- a/apps/catalogue/views.py +++ b/apps/catalogue/views.py @@ -105,8 +105,9 @@ def tagged_object_list(request, tags=''): raise Http404 theme_is_set = [tag for tag in tags if tag.category == 'theme'] - shelf_is_set = len(tags) == 1 and tags[0].category == 'set' - my_shelf_is_set = shelf_is_set and request.user.is_authenticated() and request.user == tags[0].user + shelf_is_set = [tag for tag in tags if tag.category == 'set'] + only_shelf = shelf_is_set and len(tags) == 1 + only_my_shelf = only_shelf and request.user.is_authenticated() and request.user == tags[0].user objects = only_author = pd_counter = None categories = {} @@ -136,11 +137,12 @@ def tagged_object_list(request, tags=''): else: # get relevant books and their tags objects = models.Book.tagged.with_all(tags).order_by() - l_tags = [book.book_tag() for book in objects] - # eliminate descendants - descendants_keys = [book.pk for book in models.Book.tagged.with_any(l_tags)] - if descendants_keys: - objects = objects.exclude(pk__in=descendants_keys) + if not shelf_is_set: + # eliminate descendants + l_tags = [book.book_tag() for book in objects] + descendants_keys = [book.pk for book in models.Book.tagged.with_any(l_tags)] + if descendants_keys: + objects = objects.exclude(pk__in=descendants_keys) # get related tags from `tag_counter` and `theme_counter` related_counts = {} @@ -169,10 +171,10 @@ def tagged_object_list(request, tags=''): template_name='catalogue/tagged_object_list.html', extra_context={ 'categories': categories, - 'shelf_is_set': shelf_is_set, + 'only_shelf': only_shelf, 'only_author': only_author, 'pd_counter': pd_counter, - 'user_is_owner': my_shelf_is_set, + 'only_my_shelf': only_my_shelf, 'formats_form': forms.DownloadFormatsForm(), 'tags': tags, diff --git a/wolnelektury/templates/catalogue/tagged_object_list.html b/wolnelektury/templates/catalogue/tagged_object_list.html index 952ba2b0a..b24929cd9 100644 --- a/wolnelektury/templates/catalogue/tagged_object_list.html +++ b/wolnelektury/templates/catalogue/tagged_object_list.html @@ -10,7 +10,7 @@

{% title_from_tags tags %}

{% breadcrumbs tags %} - {% if shelf_is_set and not object_list %} + {% if only_shelf and not object_list %}

{% trans "Your shelf is empty" %}

{% trans "You can put a book on a shelf by entering page of the reading and clicking 'Put on the shelf'." %}

@@ -27,7 +27,7 @@

{% endif %} - {% if shelf_is_set %} + {% if only_shelf %} {% trans "Download all books from this shelf" %} @@ -44,7 +44,7 @@
- {% if user_is_owner %} + {% if only_my_shelf %}

{% trans "Share this shelf" %}

{% trans "Copy this link and share it with other people to let them see your shelf." %}