Fixes: OrderViewSet fixes

This commit is contained in:
Egor Pavlovich Gorbunov 2025-06-07 19:08:04 +03:00
parent 10323a4435
commit beb1673cbb
3 changed files with 10 additions and 2 deletions

View file

@ -711,6 +711,8 @@ class Order(ExportModelOperationsMixin("order"), NiceModel):
self.save() self.save()
return self return self
case "payment": case "payment":
self.status = "PAYMENT"
self.save()
return Transaction.objects.create( return Transaction.objects.create(
balance=self.user.payments_balance, balance=self.user.payments_balance,
amount=amount, amount=amount,

View file

@ -77,7 +77,7 @@ def process_order_changes(instance, created, **kwargs):
Order.objects.create(user=instance, status="PENDING", human_readable_id=human_readable_id) Order.objects.create(user=instance, status="PENDING", human_readable_id=human_readable_id)
break break
if instance.status == "CREATED": if instance.status in ["CREATED", "PAYMENT"]:
if not instance.is_whole_digital: if not instance.is_whole_digital:
send_order_created_email.delay(instance.uuid) send_order_created_email.delay(instance.uuid)

View file

@ -2,6 +2,7 @@ from uuid import UUID
from django.db.models import Q from django.db.models import Q
from django.http import Http404 from django.http import Http404
from django.shortcuts import get_object_or_404
from django.utils.decorators import method_decorator from django.utils.decorators import method_decorator
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from django_filters.rest_framework import DjangoFilterBackend 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 import status
from rest_framework.decorators import action from rest_framework.decorators import action
from rest_framework.exceptions import PermissionDenied from rest_framework.exceptions import PermissionDenied
from rest_framework.generics import get_object_or_404
from rest_framework.renderers import MultiPartRenderer from rest_framework.renderers import MultiPartRenderer
from rest_framework.response import Response from rest_framework.response import Response
from rest_framework.viewsets import ModelViewSet from rest_framework.viewsets import ModelViewSet
@ -189,6 +189,12 @@ class ProductViewSet(EvibesViewSet):
lookup_field = "lookup" lookup_field = "lookup"
lookup_url_kwarg = "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): def get_object(self):
queryset = self.filter_queryset(self.get_queryset()) queryset = self.filter_queryset(self.get_queryset())
lookup_value = self.kwargs[self.lookup_url_kwarg] lookup_value = self.kwargs[self.lookup_url_kwarg]