diff --git a/server/apps/supervision/views.py b/server/apps/supervision/views.py index a339d45..767fd12 100644 --- a/server/apps/supervision/views.py +++ b/server/apps/supervision/views.py @@ -442,23 +442,23 @@ class Task2ViewSet(CreateUpdateCustomMixin, ModelViewSet): 开始执行 """ obj = self.get_object() + tds = Task2Do.objects.filter(task2=obj) + if not tds.exists(): + raise ParseError('未添加执行公司') + if obj.type == Task2.TASK2_F: + try: + pg = Pgoal.objects.get(year=obj.year) + except: + raise ParseError('未配置年度基础目标') + for i in tds: + for key in Pgoal.basedict: + pds = PgoalDept.objects.filter(task2do=i, goal_key=key) + if pds.exists(): + pds.update(**{'goal_name': Pgoal.basedict[key], 'goal_value_a': getattr(pg, key)}) + else: + PgoalDept.objects.create(**{'year': i.task2.year, 'task2do': i, 'belong_dept': i.belong_dept, + 'goal_name': Pgoal.basedict[key], 'goal_key': key, 'goal_value_a': getattr(pg, key)}) if obj.state == Task2.TASK2_CREATE: - tds = Task2Do.objects.filter(task2=obj) - if not tds.exists(): - raise ParseError('未添加执行公司') - if obj.type == Task2.TASK2_F: - try: - pg = Pgoal.objects.get(year=obj.year) - except: - raise ParseError('未配置年度基础目标') - for i in tds: - for key in Pgoal.basedict: - pds = PgoalDept.objects.filter(task2do=i, goal_key=key) - if pds.exists(): - pds.update(**{'goal_name': Pgoal.basedict[key], 'goal_value_a': getattr(pg, key)}) - else: - PgoalDept.objects.create(**{'year': i.task2.year, 'task2do': i, 'belong_dept': i.belong_dept, - 'goal_name': Pgoal.basedict[key], 'goal_key': key, 'goal_value_a': getattr(pg, key)}) obj.state = Task2.TASK2_DOING obj.save() return Response() @@ -481,8 +481,8 @@ class Task2ViewSet(CreateUpdateCustomMixin, ModelViewSet): return Response() -class Task2DoViewSet(ListModelMixin, GenericViewSet): - perms_map = {'get': '*'} +class Task2DoViewSet(ListModelMixin, DestroyModelMixin, GenericViewSet): + perms_map = {'get': '*', 'delete': 'task2'} queryset = Task2Do.objects.select_related('belong_dept', 'task2').all() serializer_class = Task2DoSerializer ordering = ['belong_dept__sort']