Ejemplo n.º 1
0
    def filter_products(self, request, **kwargs):
        data = self.get_filter_kwargs()
        bg_colors = data.get('bg_color[]', None)
        design_colors = data.get('design_color[]', None)
        designs = data.get('design[]', None)
        f_types = data.get('f_type[]', None)
        branches = data.get('branch[]', None)
        materials = data.get('material[]', None)
        filter_items = {}
        if bg_colors is not None and len(bg_colors):
            filter_items['background_color__pk__in'] = bg_colors
        if design_colors is not None and len(design_colors):
            filter_items['design_color__pk__in'] = design_colors
        if designs is not None and len(designs):
            filter_items['design__pk__in'] = designs
        if f_types is not None and len(f_types):
            filter_items['f_type__pk__in'] = f_types
        if branches is not None and len(branches):
            filter_items['branch__pk__in'] = branches
        if materials is not None and len(materials):
            filter_items['material__pk__in'] = materials

        products = Product.objects.filter(**filter_items)
        page = self.paginate_queryset(products)
        if page is not None:
            serializer = ProductDetailSerializer(page, many=True)
            return self.get_paginated_response(serializer.data)

        serializer = ProductDetailSerializer(products, many=True)
        return Response(serializer.data)
Ejemplo n.º 2
0
 def get_product_using_code(self, request):
     code = self.request.query_params.get('code', None)
     try:
         product = Product.objects.get(code=code)
         return Response(ProductDetailSerializer(product).data)
     except ObjectDoesNotExist:
         return Response({'چنین محصولی یافت نشد.'},
                         status=HTTP_404_NOT_FOUND)
    def test_view_product_detail(self):
        """Test viewing a product detail"""
        product = sample_product(user=self.user)
        product.tags.add(sample_tag(user=self.user))

        url = detail_url(product.id)
        res = self.client.get(url)

        serializer = ProductDetailSerializer(product)
        self.assertEqual(res.data, serializer.data)
Ejemplo n.º 4
0
class SupplierProductsSerializer(serializers.ModelSerializer):
    """Serializer for supplier products objects"""

    product = ProductDetailSerializer(many=False, read_only=True)
    supplier = SupplierSerializer(many=False, read_only=True)

    class Meta:
        model = SupplierProducts
        fields = ('id', 'product', 'supplier', 'price', 'stock')
        read_only_fields = ('id', )
Ejemplo n.º 5
0
    def test_success_view_product_detail_by_non_manager(self):
        """Test viewing a product detail"""

        unit = sample_unit()
        product = sample_product(unit=unit)
        product.categories.add(sample_category())

        url = detail_url(product.id)
        self.client = APIClient()
        self.client.force_authenticate(self.cashier)
        res = self.client.get(url)

        self.assertEqual(res.status_code, status.HTTP_200_OK)

        serializer = ProductDetailSerializer(product)

        self.assertEqual(res.data, serializer.data)
Ejemplo n.º 6
0
 def retrieve(self, request, pk=None):
     product = self.get_object(request, pk)
     if product is not None:
         serialized = ProductDetailSerializer(product)
         return Response(serialized.data, status=status.HTTP_200_OK)
     return Response("Try Again", status=status.HTTP_204_NO_CONTENT)
Ejemplo n.º 7
0
class SupplierProductDetailSerializer(SupplierProductsSerializer):
    """Serializer for supplier product detail"""
    product = ProductDetailSerializer(many=False, read_only=True)
    supplier = SupplierSerializer(many=False, read_only=True)
Ejemplo n.º 8
0
class SupplierBillItemSerializer(serializers.ModelSerializer):
    product = ProductDetailSerializer()

    class Meta:
        model = SupplierBillItem
        fields = ('pk', 'product', 'amount')