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 = {}
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 = {}
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,
<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>
<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>
<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." %}