From cbf274cc7cd1107c525f1f2e77ad01948d184f54 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Wed, 17 May 2023 17:03:24 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=B7=BB=E5=8A=A0=E4=BF=9D=E5=AD=98num?= =?UTF-8?q?=5Fissue=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/apps/supervision/serializers.py | 14 +++++++++++--- server/apps/supervision/views.py | 19 +++++++++++++++++-- 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/server/apps/supervision/serializers.py b/server/apps/supervision/serializers.py index 78db033..417d041 100644 --- a/server/apps/supervision/serializers.py +++ b/server/apps/supervision/serializers.py @@ -140,13 +140,13 @@ class ValidateMixin: class BaseMeta: fields = '__all__' - read_only_fields = ['create_time', 'update_time', 'create_by', 'update_by', 'is_deleted'] + read_only_fields = ['create_time', 'update_time', 'create_by', 'update_by', 'is_deleted', 'belong_dept'] class PgoalDeptSerializer(ValidateMixin, serializers.ModelSerializer): goal_file_ = FileSimpleSerializer(source='goal_file', 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'] + read_only_fields = BaseMeta.read_only_fields + ['goal_value_a', 'goal_value_c', 'goal_files', 'goal_key', 'goal_file_', 'goal_o_file'] class RcSerializer(ValidateMixin, serializers.ModelSerializer): @@ -176,4 +176,12 @@ class OinspectSerializer(ValidateMixin, serializers.ModelSerializer): class NoRecordSerializer(serializers.Serializer): - key = serializers.ChoiceField(label='字段key', choices=['num_error', 'num_overdue', 'num_complaint', 'num_pt', 'num_risk', 'num_oinspect']) \ No newline at end of file + key = serializers.ChoiceField(label='字段key', choices=['num_error', 'num_overdue', 'num_complaint', 'num_pt', 'num_risk', 'num_oinspect']) + + +class UpdateFieldSerializer(serializers.ModelSerializer): + + class Meta: + model = Task2Do + fields = ['num_issue', 'num_expect'] + extra_kwargs = {'num_issue': {'required': True}, 'num_expect': {'required': True}} \ No newline at end of file diff --git a/server/apps/supervision/views.py b/server/apps/supervision/views.py index 2bd25c0..80f350b 100644 --- a/server/apps/supervision/views.py +++ b/server/apps/supervision/views.py @@ -475,7 +475,7 @@ class Task2ViewSet(CreateUpdateCustomMixin, ModelViewSet): if task2.type == Task2.TASK2_F: count_all = 5 for i in vdata['ids']: - Task2Do.objects.get_or_create(task2=task2, belong_dept=i, defaults={'task2': task2, 'belong_dept': i, 'count_all': count_all}) + Task2Do.objects.get_or_create(task2=task2, belong_dept=i, defaults={'task2': task2, 'belong_dept': i, 'count_all': count_all, 'create_by': self.request.user}) return Response() @@ -484,7 +484,7 @@ class Task2DoViewSet(ListModelMixin, GenericViewSet): queryset = Task2Do.objects.select_related('belong_dept', 'task2').all() serializer_class = Task2DoSerializer ordering = ['belong_dept__sort'] - + filterset_fields = ['task2', 'belong_dept'] cfields = ['num_issue', 'num_expect', 'num_error', 'num_overdue', 'num_complaint', 'num_pt', 'num_risk', 'num_oinspect'] @classmethod @@ -498,6 +498,20 @@ class Task2DoViewSet(ListModelMixin, GenericViewSet): instance.count_up = count_up instance.save() + @action(methods=['put'], detail=False, perms_map = {'post':'task2do'}, serializer_class=UpdateFieldSerializer) + def save_num(self, request, *args, **kwargs): + """保存数值 + + 保存数值 + """ + obj = self.get_object() + obj.num_issue = request.data.get('num_issue', 0) + obj.num_expect = request.data.get('num_expect', 0) + obj.update_by = request.user + obj.save() + self.countup_task2do(obj) + return Response() + @action(methods=['put'], detail=True, perms_map = {'post':'task2do'}, serializer_class=NoRecordSerializer) def no_record(self, request, *args, **kwargs): """没有记录 @@ -532,6 +546,7 @@ class Domixin: perms_map = {'get': '*', 'put': 'task2do', 'post': 'task2do', 'delete': 'task2do'} ordering = ['create_time'] ordering_fields = ['create_time', 'belong_dept__sort'] + filterset_fields = ['task2do', 'task2do__task2', 'task2do__belong_dept'] def countnum_task2do_field(self, task2do): for k, v in self.count_dict: