diff --git a/hb_server/apps/inm/views.py b/hb_server/apps/inm/views.py index 4c3b8c4..e8e8754 100644 --- a/hb_server/apps/inm/views.py +++ b/hb_server/apps/inm/views.py @@ -1,5 +1,6 @@ from django.shortcuts import render -from rest_framework.viewsets import ModelViewSet +from rest_framework.mixins import ListModelMixin +from rest_framework.viewsets import GenericViewSet, ModelViewSet from apps.inm.models import WareHouse,Inventory from apps.inm.serializers import WareHouseSerializer, WareHouseCreateUpdateSerializer,InventorySerializer,InventoryCreateUpdateSerializer @@ -23,7 +24,8 @@ class WarehouseViewSet(CreateUpdateModelAMixin, ModelViewSet): if self.action in ['create', 'update']: return WareHouseCreateUpdateSerializer return WareHouseSerializer -class InventoryViewSet(CreateUpdateModelAMixin, ModelViewSet): + +class InventoryViewSet(ListModelMixin, GenericViewSet): """ 物料基本信息-增删改查 """ @@ -33,8 +35,3 @@ class InventoryViewSet(CreateUpdateModelAMixin, ModelViewSet): filterset_fields = [] ordering_fields = ['create_time'] ordering = ['-create_time'] - - def get_serializer_class(self): - if self.action in ['create', 'update']: - return InventoryCreateUpdateSerializer - return InventorySerializer diff --git a/hb_server/apps/wf/serializers.py b/hb_server/apps/wf/serializers.py index 5199aad..84c7862 100644 --- a/hb_server/apps/wf/serializers.py +++ b/hb_server/apps/wf/serializers.py @@ -77,7 +77,7 @@ class TicketListSerializer(serializers.ModelSerializer): class Meta: model = Ticket - fields = ['id', 'title', 'sn', 'workflow', 'workflow_', 'state', 'state_', 'act_state'] + fields = ['id', 'title', 'sn', 'workflow', 'workflow_', 'state', 'state_', 'act_state', 'distribute_type'] @staticmethod def setup_eager_loading(queryset): diff --git a/hb_server/apps/wf/views.py b/hb_server/apps/wf/views.py index 0eec47a..efe8077 100644 --- a/hb_server/apps/wf/views.py +++ b/hb_server/apps/wf/views.py @@ -107,6 +107,20 @@ class TicketViewSet(OptimizationMixin, CreateUpdateCustomMixin, CreateModelMixin return TicketDetailSerializer return super().get_serializer_class() + def list(self, request, *args, **kwargs): + category = request.query_params.get('category', None) + if category and category in ['all', 'owner', 'duty', 'worked', 'relation']: + user = request.user + if category == 'owner': + self.queryset = Ticket.objects.filter(create_by=user) + elif category == 'duty': + self.queryset = Ticket.objects.filter(participant__contains=user.id).exclude(act_state__in=[Ticket.TICKET_ACT_STATE_FINISH, Ticket.TICKET_ACT_STATE_CLOSED]) + + else: + raise APIException('查询分类错误') + return super().list(request, *args, **kwargs) + + def create(self, request, *args, **kwargs): """ 新建工单