diff --git a/config/conf/cors.py b/config/conf/cors.py index c6f7ec2..937e3fc 100644 --- a/config/conf/cors.py +++ b/config/conf/cors.py @@ -1,7 +1,9 @@ CORS_ALLOWED_ORIGINS = [ "http://localhost:5173", + "http://localhost:3000", "http://127.0.0.1:5173", 'https://agro360.vercel.app', + 'https://agro360-admin.vercel.app', ] CSRF_TRUSTED_ORIGINS = [ diff --git a/core/apps/admin_panel/serializers/product.py b/core/apps/admin_panel/serializers/product.py index 3885277..24993fc 100644 --- a/core/apps/admin_panel/serializers/product.py +++ b/core/apps/admin_panel/serializers/product.py @@ -3,16 +3,23 @@ from rest_framework import serializers from core.apps.products.models import Product -# class ProductListSerializer(serializers.ModelSerializer): -# class Meta: -# model = Product -# fields = [ -# 'id', 'name', 'image', 'category', 'price', 'description', 'unity' -# ] +class ProductListSerializer(serializers.ModelSerializer): + class Meta: + model = Product + fields = [ + 'id', 'name', 'image', 'category', 'price', 'description', 'unity' + ] -# def get_category(self, obj): -# return { -# '' -# } + def get_category(self, obj): + return { + 'id': obj.category.id, + 'name': obj.category.name + } - \ No newline at end of file + +class ProductCreateSerializer(serializers.ModelSerializer): + class Meta: + model = Product + fields = [ + 'name', 'image', 'category', 'price', 'description', 'unity' + ] \ No newline at end of file diff --git a/core/apps/admin_panel/views/product.py b/core/apps/admin_panel/views/product.py new file mode 100644 index 0000000..e252564 --- /dev/null +++ b/core/apps/admin_panel/views/product.py @@ -0,0 +1,23 @@ +from rest_framework import generics, views +from rest_framework.permissions import IsAdminUser + +from core.apps.admin_panel.serializers import product as serializers +from core.apps.shared.mixins.response import ResponseMixin +from core.apps.products.models import Product + + +class ProductListApiView(generics.GenericAPIView): + serializer_class = serializers.ProductListSerializer + queryset = Product.objects.select_related('category', 'unity') + permission_classes = [IsAdminUser] + + def get(self, request): + page = self.paginate_queryset(self.queryset) + if page is not None: + serializer = self.serializer_class(page, many=True) + return self.get_paginated_response(serializer.data) + + +# class ProductCreateApiView(generics.GenericAPIView, ResponseMixin): + +