作者 wanweibin

update

@@ -38,6 +38,11 @@ class CreateProject(CreateAPIView): @@ -38,6 +38,11 @@ class CreateProject(CreateAPIView):
38 serializer.save(creator=request.user, auditor=Auditor.objects.order_by('-order').all()) 38 serializer.save(creator=request.user, auditor=Auditor.objects.order_by('-order').all())
39 # 企业微信推送 39 # 企业微信推送
40 obj_dict = serializer.data 40 obj_dict = serializer.data
  41 + for i in AUDITORS:
  42 + Result.objects.create(
  43 + auditor_id=i[0],
  44 + project_id=obj_dict['id']
  45 + )
41 url = re.sub("PK", str(obj_dict['id']), FRONT_URL['flow_detail']) 46 url = re.sub("PK", str(obj_dict['id']), FRONT_URL['flow_detail'])
42 url = re.sub("REDIRECT_URL", parse.quote(url, safe=''), FRONT_URL['wx_authorize']) 47 url = re.sub("REDIRECT_URL", parse.quote(url, safe=''), FRONT_URL['wx_authorize'])
43 first_auditor = Auditor.objects.filter(pk=AUDITORS[0][0]).first() 48 first_auditor = Auditor.objects.filter(pk=AUDITORS[0][0]).first()
@@ -77,7 +82,7 @@ class AuditProject(UpdateAPIView): @@ -77,7 +82,7 @@ class AuditProject(UpdateAPIView):
77 def _check_audit(project_obj): 82 def _check_audit(project_obj):
78 # 查看是否已经全部审核完毕 进行更新project表 83 # 查看是否已经全部审核完毕 进行更新project表
79 # 所有的审核人员, 是否有result记录 84 # 所有的审核人员, 是否有result记录
80 - aud_result_len = Result.objects.filter(project=project_obj).count() 85 + aud_result_len = Result.objects.filter(project=project_obj, is_accept__isnull=False).count()
81 auditor_len = Project.objects.filter(pk=project_obj.id).values('auditor__user_id').count() 86 auditor_len = Project.objects.filter(pk=project_obj.id).values('auditor__user_id').count()
82 return aud_result_len == auditor_len 87 return aud_result_len == auditor_len
83 88
@@ -95,16 +100,9 @@ class AuditProject(UpdateAPIView): @@ -95,16 +100,9 @@ class AuditProject(UpdateAPIView):
95 else: 100 else:
96 auditor = Auditor.objects.get(user=request.user) 101 auditor = Auditor.objects.get(user=request.user)
97 result = Result.objects.filter(auditor=auditor, project=obj).first() 102 result = Result.objects.filter(auditor=auditor, project=obj).first()
98 - if not result:  
99 - Result.objects.create(  
100 - auditor=auditor,  
101 - project=obj,  
102 - is_accept=accept_param,  
103 - memo=request.data.get('memo', '')  
104 - )  
105 - else:  
106 - result.is_accept = accept_param  
107 - result.save() 103 + result.is_accept = accept_param
  104 + result.memo = request.data.get('memo', '')
  105 + result.save()
108 106
109 wx_client = WxPushHelper() 107 wx_client = WxPushHelper()
110 full_audit_done = self._check_audit(obj) 108 full_audit_done = self._check_audit(obj)
@@ -134,7 +132,7 @@ class AuditProjectsList(ListAPIView): @@ -134,7 +132,7 @@ class AuditProjectsList(ListAPIView):
134 permission_classes = (IsAuthenticated, IsAdminUser) 132 permission_classes = (IsAuthenticated, IsAdminUser)
135 133
136 def get_queryset(self): 134 def get_queryset(self):
137 - data = Project.objects.filter(auditor__user_id=self.request.user.id).order_by('-is_done') 135 + data = Project.objects.filter(auditor__user_id=self.request.user.id).order_by('is_done')
138 for item in data: 136 for item in data:
139 result = item.result_project.filter(auditor__user_id=self.request.user.id).values('is_accept').first() 137 result = item.result_project.filter(auditor__user_id=self.request.user.id).values('is_accept').first()
140 item.creator_name = item.creator.username 138 item.creator_name = item.creator.username
@@ -152,8 +150,10 @@ class CheckAuth(APIView): @@ -152,8 +150,10 @@ class CheckAuth(APIView):
152 project_auditor = Project.objects.filter( 150 project_auditor = Project.objects.filter(
153 pk=kwargs['pk'], 151 pk=kwargs['pk'],
154 auditor__user_id=request.user.id) 152 auditor__user_id=request.user.id)
155 - auditor_res = Result.objects.filter(auditor__user_id=request.user.id, project_id__exact=kwargs['pk'])  
156 if not project_auditor: 153 if not project_auditor:
157 return response(False) 154 return response(False)
158 else: 155 else:
  156 + auditor_res = Result.objects.filter(
  157 + auditor__user_id=request.user.id,
  158 + project__id=kwargs['pk']).values_list('is_accept', flat=True).first()
159 return response(False) if auditor_res else response(True) 159 return response(False) if auditor_res else response(True)