diff --git a/core/apps/wherehouse/filters/stock_movemend.py b/core/apps/wherehouse/filters/stock_movemend.py new file mode 100644 index 0000000..48a54f0 --- /dev/null +++ b/core/apps/wherehouse/filters/stock_movemend.py @@ -0,0 +1,11 @@ +import django_filters + +from core.apps.wherehouse.models.stock_movemend import StockMovemend + + +class StockMovemendFilter(django_filters.FilterSet): + class Meta: + model = StockMovemend + fields = [ + 'wherehouse_to', 'wherehouse_from', 'project_folder', 'project', 'movemend_type', 'date' + ] \ No newline at end of file diff --git a/core/apps/wherehouse/serializers/stock_movmend.py b/core/apps/wherehouse/serializers/stock_movmend.py index 75d5c23..85d9b89 100644 --- a/core/apps/wherehouse/serializers/stock_movmend.py +++ b/core/apps/wherehouse/serializers/stock_movmend.py @@ -21,7 +21,7 @@ class StockMovmendProductSerializer(serializers.Serializer): class StockMovmendCreateSerializer(serializers.Serializer): products = StockMovmendProductSerializer(many=True) - project_folder_id = serializers.UUIDField() + project_folder_id = serializers.UUIDField(required=False) project_id = serializers.UUIDField(required=False) wherehouse_to_id = serializers.UUIDField() wherehouse_from_id = serializers.UUIDField() @@ -107,7 +107,7 @@ class StockMovemendListSerializer(serializers.ModelSerializer): model = StockMovemend fields = [ 'id', 'number', 'wherehouse_to', 'wherehouse_from', 'recipient', 'project_folder', - 'project', 'movemend_type', 'date', 'comment', 'file', 'movmend_products' + 'project', 'movemend_type', 'date', 'comment', 'movmend_products' ] def get_wherehouse_to(self, obj): diff --git a/core/apps/wherehouse/views/stock_movemend.py b/core/apps/wherehouse/views/stock_movemend.py index fbc42aa..de87098 100644 --- a/core/apps/wherehouse/views/stock_movemend.py +++ b/core/apps/wherehouse/views/stock_movemend.py @@ -1,8 +1,14 @@ -from rest_framework import generics, parsers +from rest_framework import generics, parsers, filters from rest_framework.response import Response +# django-filter +from django_filters.rest_framework.backends import DjangoFilterBackend + +# warehouse from core.apps.wherehouse.serializers import stock_movmend as serializers from core.apps.wherehouse.models import StockMovemend, StockMovmendProduct +from core.apps.wherehouse.filters.stock_movemend import StockMovemendFilter +# accounts from core.apps.accounts.permissions.permissions import HasRolePermission @@ -32,9 +38,15 @@ class StockMovemendListApiView(generics.GenericAPIView): ).prefetch_related('movmend_products') permission_classes = [HasRolePermission] required_permissions = [] + filter_backends = [DjangoFilterBackend, filters.SearchFilter] + filterset_class = StockMovemendFilter + search_fields = [ + 'number', 'wherehouse_to__name', 'wherehouse_from__name', 'project_folder__name', + 'project__name', 'movemend_type', 'date', 'comment' + ] def get(self, request): - queryset = self.queryset + queryset = self.filter_queryset(self.queryset) page = self.paginate_queryset(queryset) if page is not None: serializer = self.serializer_class(page, many=True)