diff --git a/backend/home/admin.py b/backend/home/admin.py index 818b2cd..e64e483 100644 --- a/backend/home/admin.py +++ b/backend/home/admin.py @@ -10,6 +10,9 @@ from unfold.decorators import action, display from django.utils.html import format_html from unfold.decorators import display from utils.admin import ModelAdmin +from unfold.contrib.filters.admin import ChoicesDropdownFilter + + @admin.register(ShowCaseSlider) class ShowCaseSliderAdmin(ModelAdmin, ImportExportModelAdmin): import_form_class = ImportForm @@ -28,16 +31,23 @@ class ShowCaseSliderAdmin(ModelAdmin, ImportExportModelAdmin): @admin.register(LearnVideoModel) class LearnVideoAdmin(UnfoldModelAdmin): list_display = ['title', 'section', 'display_viewd'] - search_fields = ['title', 'section'] + search_fields = ['title', 'section', 'content_type__app_label'] + # autocomplete_fields = ['section'] compressed_fields = False - list_filter = ['section'] + list_filter = ['viewd', 'section'] warn_unsaved_form = True + list_filter_submit = True change_form_template = 'video_change_form_after.html' formfield_overrides = { ArrayField: { "widget": ArrayWidget, } } + def has_delete_permission(self, request, obj=None): + return request.user.video_uploader + + def has_add_permission(self, request, obj=None): + return request.user.video_uploader @display(description='دیده شده') diff --git a/backend/order/views.py b/backend/order/views.py index d29ced5..924f1a3 100644 --- a/backend/order/views.py +++ b/backend/order/views.py @@ -29,22 +29,23 @@ class CartItemViews(APIView): serializer_class = OrderItemSerailzier def post(self, request, pk): product_variant = get_object_or_404(ProductVariant, pk=pk) + response = 'محصول با موفقیت به سبد خرید اضافه شد' + quantity = request.data.get('quantity', 1) + if product_variant.in_stock < quantity: + quantity = product_variant.in_stock + response = 'تعداد درخواستی بیشتر از موجودی محصول میباشد' - cart_order, created = OrderModel.objects.get_or_create( - user=request.user, - status='CART' - ) - order_item, created = OrderItemModel.objects.get_or_create( - order=cart_order, - product=product_variant, - defaults={'quantity': request.data.get('quantity', 1)} - ) + cart_order, created = OrderModel.objects.get_or_create(user=request.user, status='CART') + order_item, created = OrderItemModel.objects.get_or_create(order=cart_order, product=product_variant, defaults={'quantity': quantity}) - if not created: - order_item.quantity = request.data.get('quantity', 1) + if not created and order_item.quantity: + order_item.quantity = quantity order_item.save() - - return Response({'detail': f'تعداد ایتم {product_variant.product.name} به {request.data.get('quantity', 1)} تغییر کرد'}, status=status.HTTP_202_ACCEPTED) + if not order_item.quantity: + order_item.delete() + return Response({'detail': response, 'count': quantity}, status=status.HTTP_202_ACCEPTED) + + def delete(self, request, pk): product_variant = get_object_or_404(ProductVariant, pk=pk)