feat: added user order list view

This commit is contained in:
Pablo Moreno
2025-01-14 00:21:49 +01:00
parent 40d872c083
commit 7b546a1d2f
6 changed files with 128 additions and 3 deletions
+20
View File
@@ -19,6 +19,7 @@ from shop.models import (
from shop.redsys import RedsysClient
from shop.utils import create_order_from_cart
from web.forms import CreateOrderForm
from web.mixins import PaginatedQuerysetMixin, FilteredQuerysetMixin
from web.models import WebSettings
from web.settings import ANONYMOUS_CART_ID_COOKIE_NAME
from web.utils import get_or_create_cart
@@ -192,6 +193,24 @@ class WishlistView(TemplateView):
}
class OrdersView(TemplateView, FilteredQuerysetMixin, PaginatedQuerysetMixin):
template_name = "web/orders.html"
def get_queryset(self):
return Order.objects.filter(user=self.request.user).exclude(status=Order.Statuses.STATUS_PENDING)
def get_context_data(self, **kwargs):
settings = WebSettings.load()
qs = self.get_queryset()
page = self.get_paginated_queryset(qs)
return {
"page": page,
"has_next_page": page.has_next(),
"has_previous_page": page.has_previous(),
}
@require_http_methods(
[
"POST",
@@ -311,3 +330,4 @@ product_detail = ProductDetail.as_view()
cart_detail = CartDetail.as_view()
order_detail = OrderDetail.as_view()
wishlist = WishlistView.as_view()
orders = OrdersView.as_view()