migarate exam_user_status
This commit is contained in:
+15
-7
@@ -3,7 +3,7 @@ from typing import List
|
||||
from django.shortcuts import get_object_or_404
|
||||
from ninja import ModelSchema, Router
|
||||
|
||||
from generic.models import CidUser, ExamUserStatus
|
||||
from generic.models import CidUser, CidUserExam, ExamUserStatus
|
||||
from .models import AnatomyQuestion as Question, Exam
|
||||
|
||||
from django.core.exceptions import PermissionDenied
|
||||
@@ -29,6 +29,13 @@ class UserUserSchema(ModelSchema):
|
||||
model = get_user_model()
|
||||
model_fields = ["id", "email"]
|
||||
|
||||
class CidUserExamSchema(ModelSchema):
|
||||
cid_user : CidUserSchema | None
|
||||
user_user : UserUserSchema | None
|
||||
class Config:
|
||||
model = CidUserExam
|
||||
model_fields = ["id"]
|
||||
|
||||
class ExamStatusSchema(ModelSchema):
|
||||
class Config:
|
||||
model = ExamUserStatus
|
||||
@@ -36,8 +43,9 @@ class ExamStatusSchema(ModelSchema):
|
||||
|
||||
class ExamUserStatusSchema(ModelSchema):
|
||||
|
||||
cid_user : CidUserSchema | None
|
||||
user_user : UserUserSchema | None
|
||||
#cid_user : CidUserSchema | None
|
||||
#user_user : UserUserSchema | None
|
||||
cid_user_exam : CidUserExamSchema | None
|
||||
class Config:
|
||||
model = ExamUserStatus
|
||||
model_fields = ["id", "datetime", "status", "extra"]
|
||||
@@ -90,8 +98,8 @@ def get_exam_user_status_all(request, exam_id: int, latest:bool=True):
|
||||
|
||||
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")
|
||||
cid_users = exam.exam_user_status.filter(cid_user_exam__cid_user__isnull=False).order_by("cid_user_exam", "-datetime")#.distinct("cid_user")
|
||||
user_users = exam.exam_user_status.filter(cid_user_exam__user_user__isnull=False).order_by("cid_user_exam", "-datetime")#.distinct("user_user")
|
||||
|
||||
results = list(cid_users)
|
||||
results.extend(list(user_users))
|
||||
@@ -107,7 +115,7 @@ def get_exam_user_status_cid_user(request, exam_id: int, cid: int):
|
||||
|
||||
print(exam_id, cid)
|
||||
|
||||
return exam.exam_user_status.filter(cid_user__cid=cid)
|
||||
return exam.exam_user_status.filter(cid_user_exam__cid_user__cid=cid)
|
||||
|
||||
@router.get('/exam/{exam_id}/user_status/{user_id}/user', response=List[ExamStatusSchema])
|
||||
def get_exam_user_status_user_user(request, exam_id: int, user_id: int):
|
||||
@@ -115,4 +123,4 @@ def get_exam_user_status_user_user(request, exam_id: int, user_id: int):
|
||||
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)
|
||||
return exam.exam_user_status.filter(cid_user_exam__user_user=user_id)
|
||||
Reference in New Issue
Block a user