enabled per-company products filtering

This commit is contained in:
Sam
2021-02-23 13:40:49 +00:00
parent e945bd72a3
commit 4f39963691
2 changed files with 22 additions and 7 deletions

View File

@@ -15,7 +15,9 @@ from rest_framework import viewsets
from rest_framework.response import Response
from rest_framework.permissions import IsAuthenticatedOrReadOnly, IsAdminUser, IsAuthenticated
from rest_framework.decorators import api_view, permission_classes, action
from rest_framework.filters import OrderingFilter
from django_filters.rest_framework import DjangoFilterBackend
import requests
from products.models import Product
@@ -38,11 +40,21 @@ logging.basicConfig(
class ProductViewSet(viewsets.ModelViewSet):
queryset = Product.objects.all()
# queryset = Product.objects.all()
serializer_class = ProductSerializer
permission_classes = [IsAuthenticatedOrReadOnly, IsCreator]
filter_backends = [DjangoFilterBackend, OrderingFilter]
filterset_class = ProductTagFilter
filterset_fields = ['name', 'tags', 'category', 'attributes', 'company', 'created']
# TODO: figure out why cant use filterset for company filter
def get_queryset(self):
try:
company_id = self.request.GET.get('company')
company_id = int(company_id)
queryset = Product.objects.filter(company__id=company_id)
except:
queryset = Product.objects.all()
return queryset
def perform_create(self, serializer):
serializer.save(creator=self.request.user)