order update viewset change qilindi
This commit is contained in:
@@ -7,7 +7,7 @@ from rest_framework import serializers
|
||||
|
||||
# orders
|
||||
from core.apps.orders.models import Order, OrderItem
|
||||
from core.apps.orders.serializers.order_item import OrderItemSerializer
|
||||
from core.apps.orders.serializers.order_item import OrderItemSerializer, OrderUpdateItemSerializer
|
||||
# shared
|
||||
from core.apps.shared.models import Factory
|
||||
# accounts
|
||||
@@ -104,7 +104,7 @@ class AdminOrderUpdateSerializer(serializers.Serializer):
|
||||
advance = serializers.FloatField()
|
||||
employee_name = serializers.CharField()
|
||||
user_id = serializers.IntegerField()
|
||||
items = OrderItemSerializer(many=True)
|
||||
items = OrderUpdateItemSerializer(many=True)
|
||||
|
||||
def validate(self, data):
|
||||
user = User.objects.filter(id=data['user_id']).first()
|
||||
|
||||
@@ -22,12 +22,13 @@ class OrderViewSet(viewsets.GenericViewSet, ResponseMixin):
|
||||
queryset = Order.objects.all()
|
||||
|
||||
def get_serializer_class(self):
|
||||
if self.action == "post":
|
||||
return serializers.AdminOrderCreateSerializer
|
||||
elif self.action in ("patch", "put"):
|
||||
return serializers.AdminOrderUpdateSerializer
|
||||
else:
|
||||
return serializers.AdminOrderListSerializer
|
||||
match self.action:
|
||||
case "post":
|
||||
return serializers.AdminOrderCreateSerializer
|
||||
case "update_":
|
||||
return serializers.AdminOrderUpdateSerializer
|
||||
case _:
|
||||
return serializers.AdminOrderListSerializer
|
||||
|
||||
@swagger_auto_schema(
|
||||
tags=['Admin Orders'],
|
||||
@@ -82,7 +83,7 @@ class OrderViewSet(viewsets.GenericViewSet, ResponseMixin):
|
||||
tags=['Admin Orders']
|
||||
)
|
||||
@action(detail=True, methods=['patch'], url_path='update')
|
||||
def update_doctor(self, request, pk=None):
|
||||
def update_(self, request, pk=None):
|
||||
try:
|
||||
order = Order.objects.filter(id=pk).first()
|
||||
if not order:
|
||||
|
||||
@@ -5,8 +5,7 @@ from django.db import transaction
|
||||
from rest_framework import serializers
|
||||
|
||||
# orders
|
||||
from core.apps.orders.models import OrderItem
|
||||
|
||||
from core.apps.orders.models import OrderItem, Product
|
||||
|
||||
|
||||
class OrderItemSerializer(serializers.ModelSerializer):
|
||||
@@ -14,4 +13,19 @@ class OrderItemSerializer(serializers.ModelSerializer):
|
||||
model = OrderItem
|
||||
fields = [
|
||||
'id', 'product', 'quantity', 'total_price'
|
||||
]
|
||||
]
|
||||
|
||||
|
||||
|
||||
class OrderUpdateItemSerializer(serializers.Serializer):
|
||||
product_id = serializers.IntegerField()
|
||||
quantity = serializers.IntegerField()
|
||||
total_price = serializers.DecimalField(max_digits=15, decimal_places=2)
|
||||
|
||||
def validate(self, attrs):
|
||||
product = Product.objects.filter(id=attrs['product_id']).first()
|
||||
if not product:
|
||||
raise serializers.ValidationError({"product": "Product not found"})
|
||||
attrs['product'] = product
|
||||
return attrs
|
||||
|
||||
|
||||
Reference in New Issue
Block a user