示例#1
0
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)
示例#2
0
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)
示例#3
0
 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
示例#4
0
 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
示例#5
0
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)
示例#6
0
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)
示例#7
0
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)
示例#8
0
    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
示例#9
0
 def get_context_data(self, **kwargs):
     context = super(LoginView, self).get_context_data(**kwargs)
     number = cart_count(self.request)
     context['number'] = number
     return context
示例#10
0
    def get_context_data(self, **kwargs):
        context = super(AddPaymentBillingView, self).get_context_data(**kwargs)
        number = cart_count(self.request)
        context['number'] = number

        return context
示例#11
0
 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
示例#12
0
 def get_context_data(self, **kwargs):
     context = super(AccountUpdatePasswordView, self).get_context_data(**kwargs)
     number = cart_count(self.request)
     context['number'] = number
     return context