api_results.py 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. from django.contrib import auth
  2. from rest_framework.views import APIView
  3. from rest_framework.response import Response
  4. from rest_framework import status
  5. from rest_framework.authtoken.models import Token
  6. from rest_framework.authentication import BasicAuthentication, TokenAuthentication
  7. from .serializers import UserRegisterSerializer
  8. from django.middleware.csrf import get_token
  9. from django.contrib.auth import login
  10. from api.utils import *
  11. from api.models import File, Mission, Plan, Result
  12. import requests
  13. import json, csv
  14. class Results(APIView):
  15. def get(self, request):
  16. user = request.user
  17. try:
  18. missionJson = json.loads(request.GET.get('mission'))
  19. print(missionJson)
  20. mission = Mission.objects.get(id=missionJson['id'])
  21. if not mission in user.own_missions.all():
  22. return failed(message="无该任务访问权限")
  23. except Mission.DoesNotExist:
  24. return failed(message="任务不存在")
  25. resultsData = []
  26. for plan in mission.own_plans.all():
  27. try:
  28. if not plan.parent:
  29. # 根节点不是实际的plan,没有result
  30. continue
  31. result = plan.own_result
  32. resultsData.append({
  33. 'planId': plan.id,
  34. 'progress': result.progress,
  35. 'resultId': result.id,
  36. })
  37. except Result.DoesNotExist:
  38. resultsData.append({
  39. 'planId': plan.id,
  40. 'progress': 0,
  41. 'resultId': 0,
  42. })
  43. return success(data=resultsData)