From d8be8665eb440433150ed183b8572432e7bcf35a Mon Sep 17 00:00:00 2001 From: caoqianming Date: Fri, 20 Oct 2023 14:51:31 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=8F=90=E4=BA=A4=E4=BB=BB=E5=8A=A1subm?= =?UTF-8?q?it=5Frelated=5Fsame=5Fday?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/pm/views.py | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/apps/pm/views.py b/apps/pm/views.py index 56afac67..b2318780 100644 --- a/apps/pm/views.py +++ b/apps/pm/views.py @@ -2,6 +2,7 @@ from django.db import transaction from rest_framework.decorators import action from rest_framework.exceptions import ParseError from rest_framework.response import Response +from rest_framework.serializers import Serializer from apps.utils.serializers import PkSerializer from apps.utils.viewsets import CustomModelViewSet @@ -110,15 +111,30 @@ class MtaskViewSet(CustomModelViewSet): raise ParseError('该任务非创建中不可删除') return super().perform_destroy(instance) - @action(methods=['post'], detail=False, perms_map={'post': 'mtask.submit'}, serializer_class=PkSerializer) + @action(methods=['post'], detail=True, perms_map={'post': 'mtask.submit'}, serializer_class=PkSerializer) @transaction.atomic def submit(self, request): - """提交任务 + """提交任务(根据任务ID) 提交任务后不可更新日志 """ ids = request.data.get('ids', []) mtasks = Mtask.objects.filter( - id__in=ids, state=Mtask.MTASK_ASSGINED).exclude(parent=None) + id__in=ids, state=Mtask.MTASK_ASSGINED) PmService.mtasks_submit(mtasks) return Response() + + @action(methods=['post'], detail=True, perms_map={'post': 'mtask.submit'}, serializer_class=Serializer) + @transaction.atomic + def submit_related_same_day(self, request): + """提交同一天该部门下的所有兄弟小任务 + + 提交同一天的该部门下的所有兄弟小任务 + """ + mtask = self.get_object() + utask = mtask.utask + if utask: + mtasks = Mtask.objects.filter(utask=utask, belong_dept=mtask.belong_dept, + start_date=mtask.start_date, end_date=mtask.end_date, state=Mtask.MTASK_ASSGINED) + PmService.mtasks_submit(mtasks) + return Response()