...
|
...
|
@@ -38,6 +38,11 @@ class CreateProject(CreateAPIView): |
|
|
serializer.save(creator=request.user, auditor=Auditor.objects.order_by('-order').all())
|
|
|
# 企业微信推送
|
|
|
obj_dict = serializer.data
|
|
|
for i in AUDITORS:
|
|
|
Result.objects.create(
|
|
|
auditor_id=i[0],
|
|
|
project_id=obj_dict['id']
|
|
|
)
|
|
|
url = re.sub("PK", str(obj_dict['id']), FRONT_URL['flow_detail'])
|
|
|
url = re.sub("REDIRECT_URL", parse.quote(url, safe=''), FRONT_URL['wx_authorize'])
|
|
|
first_auditor = Auditor.objects.filter(pk=AUDITORS[0][0]).first()
|
...
|
...
|
@@ -77,7 +82,7 @@ class AuditProject(UpdateAPIView): |
|
|
def _check_audit(project_obj):
|
|
|
# 查看是否已经全部审核完毕 进行更新project表
|
|
|
# 所有的审核人员, 是否有result记录
|
|
|
aud_result_len = Result.objects.filter(project=project_obj).count()
|
|
|
aud_result_len = Result.objects.filter(project=project_obj, is_accept__isnull=False).count()
|
|
|
auditor_len = Project.objects.filter(pk=project_obj.id).values('auditor__user_id').count()
|
|
|
return aud_result_len == auditor_len
|
|
|
|
...
|
...
|
@@ -95,16 +100,9 @@ class AuditProject(UpdateAPIView): |
|
|
else:
|
|
|
auditor = Auditor.objects.get(user=request.user)
|
|
|
result = Result.objects.filter(auditor=auditor, project=obj).first()
|
|
|
if not result:
|
|
|
Result.objects.create(
|
|
|
auditor=auditor,
|
|
|
project=obj,
|
|
|
is_accept=accept_param,
|
|
|
memo=request.data.get('memo', '')
|
|
|
)
|
|
|
else:
|
|
|
result.is_accept = accept_param
|
|
|
result.save()
|
|
|
result.is_accept = accept_param
|
|
|
result.memo = request.data.get('memo', '')
|
|
|
result.save()
|
|
|
|
|
|
wx_client = WxPushHelper()
|
|
|
full_audit_done = self._check_audit(obj)
|
...
|
...
|
@@ -134,7 +132,7 @@ class AuditProjectsList(ListAPIView): |
|
|
permission_classes = (IsAuthenticated, IsAdminUser)
|
|
|
|
|
|
def get_queryset(self):
|
|
|
data = Project.objects.filter(auditor__user_id=self.request.user.id).order_by('-is_done')
|
|
|
data = Project.objects.filter(auditor__user_id=self.request.user.id).order_by('is_done')
|
|
|
for item in data:
|
|
|
result = item.result_project.filter(auditor__user_id=self.request.user.id).values('is_accept').first()
|
|
|
item.creator_name = item.creator.username
|
...
|
...
|
@@ -152,8 +150,10 @@ class CheckAuth(APIView): |
|
|
project_auditor = Project.objects.filter(
|
|
|
pk=kwargs['pk'],
|
|
|
auditor__user_id=request.user.id)
|
|
|
auditor_res = Result.objects.filter(auditor__user_id=request.user.id, project_id__exact=kwargs['pk'])
|
|
|
if not project_auditor:
|
|
|
return response(False)
|
|
|
else:
|
|
|
auditor_res = Result.objects.filter(
|
|
|
auditor__user_id=request.user.id,
|
|
|
project__id=kwargs['pk']).values_list('is_accept', flat=True).first()
|
|
|
return response(False) if auditor_res else response(True) |
...
|
...
|
|