store submission data in in EXamUserStatus
This commit is contained in:
+26
-3
@@ -81,11 +81,34 @@ def user_exams(request):
|
||||
|
||||
|
||||
@router.get('/exam/{exam_id}/user_status', response=List[ExamUserStatusSchema])
|
||||
def get_exam_user_status(request, exam_id: int, latest:bool=True):
|
||||
def get_exam_user_status_all(request, exam_id: int, latest:bool=True):
|
||||
exam = get_object_or_404(Exam, id=exam_id)
|
||||
if not exam.check_user_can_edit(request.user):
|
||||
raise HttpError(HTTPStatus.UNAUTHORIZED,"Exam author required")
|
||||
|
||||
return exam.exam_user_status.all()
|
||||
results = exam.exam_user_status.all()
|
||||
if latest:
|
||||
cid_users = exam.exam_user_status.filter(cid_user__isnull=False).order_by("cid_user", "-datetime").distinct("cid_user")
|
||||
user_users = exam.exam_user_status.filter(user_user__isnull=False).order_by("user_user", "-datetime").distinct("user_user")
|
||||
|
||||
|
||||
results = list(cid_users)
|
||||
results.extend(list(user_users))
|
||||
|
||||
return results
|
||||
|
||||
|
||||
@router.get('/exam/{exam_id}/user_status/{cid}/cid', response=List[ExamUserStatusSchema])
|
||||
def get_exam_user_status_cid_user(request, exam_id: int, cid: int):
|
||||
exam = get_object_or_404(Exam, id=exam_id)
|
||||
if not exam.check_user_can_edit(request.user):
|
||||
raise HttpError(HTTPStatus.UNAUTHORIZED,"Exam author required")
|
||||
|
||||
return exam.exam_user_status.filter(cid_user=cid)
|
||||
|
||||
@router.get('/exam/{exam_id}/user_status/{user_id}/user', response=List[ExamUserStatusSchema])
|
||||
def get_exam_user_status_user_user(request, exam_id: int, user_id: int):
|
||||
exam = get_object_or_404(Exam, id=exam_id)
|
||||
if not exam.check_user_can_edit(request.user):
|
||||
raise HttpError(HTTPStatus.UNAUTHORIZED,"Exam author required")
|
||||
|
||||
return exam.exam_user_status.filter(user_user=user_id)
|
||||
Reference in New Issue
Block a user