From beb1673cbbfe526fa794b5637a476c9c53e6f1dc Mon Sep 17 00:00:00 2001 From: Egor fureunoir Gorbunov Date: Sat, 7 Jun 2025 19:08:04 +0300 Subject: [PATCH] Fixes: OrderViewSet fixes --- core/models.py | 2 ++ core/signals.py | 2 +- core/viewsets.py | 8 +++++++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/core/models.py b/core/models.py index 1b8bafce..69bff2c8 100644 --- a/core/models.py +++ b/core/models.py @@ -711,6 +711,8 @@ class Order(ExportModelOperationsMixin("order"), NiceModel): self.save() return self case "payment": + self.status = "PAYMENT" + self.save() return Transaction.objects.create( balance=self.user.payments_balance, amount=amount, diff --git a/core/signals.py b/core/signals.py index 8d095585..83b7940e 100644 --- a/core/signals.py +++ b/core/signals.py @@ -77,7 +77,7 @@ def process_order_changes(instance, created, **kwargs): Order.objects.create(user=instance, status="PENDING", human_readable_id=human_readable_id) break - if instance.status == "CREATED": + if instance.status in ["CREATED", "PAYMENT"]: if not instance.is_whole_digital: send_order_created_email.delay(instance.uuid) diff --git a/core/viewsets.py b/core/viewsets.py index 9d88bfd5..e43cd228 100644 --- a/core/viewsets.py +++ b/core/viewsets.py @@ -2,6 +2,7 @@ from uuid import UUID from django.db.models import Q from django.http import Http404 +from django.shortcuts import get_object_or_404 from django.utils.decorators import method_decorator from django.utils.translation import gettext_lazy as _ from django_filters.rest_framework import DjangoFilterBackend @@ -11,7 +12,6 @@ from drf_spectacular.utils import extend_schema_view from rest_framework import status from rest_framework.decorators import action from rest_framework.exceptions import PermissionDenied -from rest_framework.generics import get_object_or_404 from rest_framework.renderers import MultiPartRenderer from rest_framework.response import Response from rest_framework.viewsets import ModelViewSet @@ -189,6 +189,12 @@ class ProductViewSet(EvibesViewSet): lookup_field = "lookup" lookup_url_kwarg = "lookup" + def get_queryset(self): + qs = super().get_queryset() + if self.request.user.has_perm("core.view_product"): + return qs + return qs.filter(is_active=True) + def get_object(self): queryset = self.filter_queryset(self.get_queryset()) lookup_value = self.kwargs[self.lookup_url_kwarg]