From: Radek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl> 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?hp=22ef9c792241080690626d5316c942cd87b76157 keep descendants on shelves --- 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 @@ <h1>{% title_from_tags tags %}</h1> {% breadcrumbs tags %} - {% if shelf_is_set and not object_list %} + {% if only_shelf and not object_list %} <div id="books-list"> <h2>{% trans "Your shelf is empty" %}</h2> <p>{% trans "You can put a book on a shelf by entering page of the reading and clicking 'Put on the shelf'." %}</p> @@ -27,7 +27,7 @@ <div class="clearboth"></div> <div id="toggle-description"><p></p></div> {% endif %} - {% if shelf_is_set %} + {% if only_shelf %} <a id="download-shelf" href="{% url download_shelf last_tag.slug %}"> {% trans "Download all books from this shelf" %} </a> @@ -44,7 +44,7 @@ <div class="clearboth"></div> </form> </div> - {% if user_is_owner %} + {% if only_my_shelf %} <div id="toggle-share-shelf"><p>{% trans "Share this shelf" %}</p></div> <div id="share-shelf"> <p>{% trans "Copy this link and share it with other people to let them see your shelf." %}