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()