作者 wanweibin

update

... ... @@ -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)
... ...