diff --git a/server/apps/supervision/filters.py b/server/apps/supervision/filters.py index fa5cc31..cbaa808 100644 --- a/server/apps/supervision/filters.py +++ b/server/apps/supervision/filters.py @@ -1,5 +1,5 @@ from django_filters import rest_framework as filters -from .models import Record +from .models import Record, PgoalDept class RecordFilter(filters.FilterSet): @@ -13,3 +13,14 @@ class RecordFilter(filters.FilterSet): class Meta: model = Record fields = ['up_date','content__name','belong_dept','state','is_self','task', 'content', 'content__candoself'] + +class PgoalDeptFilter(filters.FilterSet): + ['goal_key', 'belong_dept', 'year', 'task2do'] + class Meta: + model = PgoalDept + fields = { + 'goal_key': ['exact', 'in'], + 'belong_dept': ['exact', 'in'], + 'year': ['exact', 'in'], + 'task2do': ['exact', 'in'], + } \ No newline at end of file diff --git a/server/apps/supervision/serializers.py b/server/apps/supervision/serializers.py index 87f3319..a96cb31 100644 --- a/server/apps/supervision/serializers.py +++ b/server/apps/supervision/serializers.py @@ -146,6 +146,7 @@ class BaseMeta: class PgoalDeptSerializer(serializers.ModelSerializer): goal_file_ = FileSimpleSerializer(source='goal_file', read_only=True) goal_files_ = FileSimpleSerializer(source='goal_files', many=True, read_only=True) + belong_dept_name = serializers.CharField(source='belong_dept.name', read_only=True) class Meta(BaseMeta): model = PgoalDept read_only_fields = BaseMeta.read_only_fields + ['goal_value_a', 'goal_value_c', 'goal_files', 'goal_key', 'goal_file_', 'goal_files_'] diff --git a/server/apps/supervision/views.py b/server/apps/supervision/views.py index 9846795..a339d45 100644 --- a/server/apps/supervision/views.py +++ b/server/apps/supervision/views.py @@ -19,7 +19,7 @@ from apps.system.permission import get_permission_list, has_permission from apps.system.permission_data import RbacFilterSet from django.db import transaction -from .filters import RecordFilter +from .filters import RecordFilter, PgoalDeptFilter from .models import * from .serializers import * @@ -487,7 +487,7 @@ class Task2DoViewSet(ListModelMixin, GenericViewSet): serializer_class = Task2DoSerializer ordering = ['belong_dept__sort'] filterset_fields = ['task2', 'belong_dept', 'task2__year', 'task2__cycle'] - cfields = ['num_issue', 'num_expect', 'num_error', 'num_overdue', 'num_complaint', 'num_pt', 'num_risk', 'num_oinspect'] + cfields = ['num_issue', 'num_expect', 'num_error', 'num_overdue', 'num_complaint', 'num_pt', 'num_risk', 'num_oinspect', 'num_acc'] @classmethod def countup_task2do(cls, instance): @@ -591,7 +591,7 @@ class Domixin: class PgoalDeptViewSet(Domixin, CreateUpdateCustomMixin, ModelViewSet): queryset = PgoalDept.objects.all() serializer_class = PgoalDeptSerializer - filterset_fields = ['goal_key', 'belong_dept', 'year', 'task2do'] + filterset_class = PgoalDeptFilter def perform_update(self, serializer): instance = serializer.save() @@ -640,6 +640,7 @@ class ImpMixin: raise ParseError(err_msg) else: sr.save(create_by=request.user) + self.countup_task2do(task2do) # 统计执行情况 return Response() class RcViewSet(ImpMixin, Domixin, CreateUpdateCustomMixin, ModelViewSet):