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 c16ead6..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 * @@ -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()