def detail(request, id): book = get_object_or_404(Book, id=id) comments = Comment.objects.filter(book__title=book.title) number_comments = request.POST.get('drop') page_req_var = "comment" # -- This part deals with how many items on a page based on the dropdown if number_comments: paginator = Paginator(comments, int(number_comments)) else: paginator = Paginator(comments, 2) # ---------------------------------------------------------------------- page = request.GET.get(page_req_var) try: queryset = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. queryset = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. queryset = paginator.page(paginator.num_pages) number = cart_count(request) context = { "page_req_var": page_req_var, "pages": queryset, "comments": comments, "result": book, "number": number, } return render(request, "book_detail.html", context)
def author_books(request, id): author = get_object_or_404(Author, id=id) books = Book.objects.all().filter(authors__full_name__icontains=author) number = cart_count(request) context = {"author": author, "books": books, "number": number} return render(request, "book_author.html", context)
def get_context_data(self, **kwargs): context = super(ManagePaymentView, self).get_context_data(**kwargs) number = cart_count(self.request) context['number'] = number context['default'] = self.default_list context['cards'] = self.payment_list context['user_payments'] = models.UserPayments.objects.filter(user=self.request.user).all() return context
def get_context_data(self, **kwargs): context = super(BookDetailView, self).get_context_data(**kwargs) number = cart_count(self.request) context['number'] = number author = Author.objects.filter(book=self.kwargs.get("pk")).distinct() context['author_books'] = Book.objects.filter( authors__book__authors__in=author).distinct().exclude( pk=self.kwargs.get("pk")) return context
def home_view(request): books = Book.objects.all().order_by("title") number = cart_count(request) context = { "books": books, "number": number, } return render(request, "home.html", context)
def list_books(request): queryset_list = Book.objects.all().order_by("title") query = request.GET.get( "q") # this gets the contents from the search bar 'q' if query: queryset_list = queryset_list.filter(title__icontains=query).distinct() | \ queryset_list.filter(authors__full_name__icontains=query).distinct() | \ queryset_list.filter(genre__icontains=query).distinct() # creates a Paginator object from the query results and shows x amount of items per page paginator = Paginator(queryset_list, 3) # Show 3 books per page page_req_var = "page" page = request.GET.get(page_req_var) try: queryset = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. queryset = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. queryset = paginator.page(paginator.num_pages) if query: query = query else: query = "Books" number = cart_count(request) context = { "search": query, "results": queryset, "title": "Displaying all Results for: ", "page_req_var": page_req_var, "number": number, } return render(request, "book_list.html", context)
def write_review(request, id): number = cart_count(request) book = get_object_or_404(Book, id=id) if request.method == "POST": form = CommentForm(request.POST) if form.is_valid(): comment = form.save(commit=False) comment.book = book comment.author = request.user comment.date = timezone.now() comment.save() return redirect('/book/' + id + '/') else: form = CommentForm() context = {"number": number, "book": book, "form": form} return render(request, "book_review.html", context)
def get_context_data(self, **kwargs): context = super(BookListView, self).get_context_data(**kwargs) queryset_list = self.get_queryset() display_sort = self.request.GET.get("display") order = self.request.GET.get("sort") order2 = self.request.GET.get("order") number = cart_count(self.request) context['number'] = number context['total'] = self.get_queryset().count() query = self.request.GET.get("q") if query: context['q'] = query if order: context['sort'] = order if order == 'title': context['sorting'] = "Title - A to Z" elif order == '-title': context['sorting'] = "Title - Z to A" elif order == '-avg_rating': context['sorting'] = "Top Rated" elif order == 'publication_date': context['sorting'] = "Oldest" elif order == '-publication_date': context['sorting'] = "Newest" elif order == 'authors': context['sorting'] = "Author(s) A - Z" elif order == '-authors': context['sorting'] = "Author(s) Z - A" elif order == 'price': context['sorting'] = "Price - Low to High" elif order == '-price': context['sorting'] = "Price - High to Low" elif order == 'sales_rank': context['sorting'] = "Top Sellers" elif order == '-tech_valley_best': context['sorting'] = "Tech Valley Best Sellers" else: if query and Book.objects.filter(genre__icontains=query): context['sort'] = "-tech_valley_best" context['order'] = "-rating" context['sorting'] = "Tech Valley Best Sellers" else: context['sort'] = "title" context['sorting'] = "Title - A to Z" if display_sort: if queryset_list.count() > int(display_sort): context['display_sort_num'] = display_sort else: context['display_sort_num'] = display_sort else: if queryset_list.count() > 10: context['display_sort_num'] = 10 else: context['display_sort_num'] = 10 if order2: context['order'] = order2 return context
def get_context_data(self, **kwargs): context = super(LoginView, self).get_context_data(**kwargs) number = cart_count(self.request) context['number'] = number return context
def get_context_data(self, **kwargs): context = super(AddPaymentBillingView, self).get_context_data(**kwargs) number = cart_count(self.request) context['number'] = number return context
def get_context_data(self, **kwargs): context = super(ManageAddressView, self).get_context_data(**kwargs) number = cart_count(self.request) context['number'] = number context['default'] = self.default_list return context
def get_context_data(self, **kwargs): context = super(AccountUpdatePasswordView, self).get_context_data(**kwargs) number = cart_count(self.request) context['number'] = number return context