""" non-interactive pages """ from django.db.models import Max from django.template.response import TemplateResponse from django.views import View from bookwyrm import forms, models from .feed import Feed # pylint: disable= no-self-use class About(View): """ create invites """ def get(self, request): """ more information about the instance """ return TemplateResponse(request, "discover/about.html") class Home(View): """ discover page or home feed depending on auth """ def get(self, request): """ this is the same as the feed on the home tab """ if request.user.is_authenticated: feed_view = Feed.as_view() return feed_view(request, "home") discover_view = Discover.as_view() return discover_view(request) class Discover(View): """ preview of recently reviewed books """ def get(self, request): """ tiled book activity page """ books = ( models.Edition.objects.filter( review__published_date__isnull=False, review__deleted=False, review__user__local=True, review__privacy__in=["public", "unlisted"], ) .exclude(cover__exact="") .annotate(Max("review__published_date")) .order_by("-review__published_date__max")[:6] ) data = { "register_form": forms.RegisterForm(), "books": list(set(books)), } return TemplateResponse(request, "discover/discover.html", data)