Editor and backend!

This commit is contained in:
Mawoka
2022-12-21 22:03:37 +01:00
parent 07f242e6cd
commit 0af5aeef95
13 changed files with 331 additions and 219 deletions
+21 -1
View File
@@ -112,23 +112,43 @@ class QuizQuestionType(str, Enum):
ABCD = "ABCD"
RANGE = "RANGE"
VOTING = "VOTING"
SLIDE = "SLIDE"
class SlideElementTypes(str, Enum):
TEXT = "TEXT"
HEADLINE = "HEADLINE"
IMAGE = "IMAGE"
class SlideElement(BaseModel):
type: SlideElementTypes
x: float
y: float
height: float
width: float
data: str
id: int
class QuizQuestion(BaseModel):
question: str
time: str # in Secs
type: None | QuizQuestionType = QuizQuestionType.ABCD
answers: list[ABCDQuizAnswer] | RangeQuizAnswer | list[VotingQuizAnswer]
answers: list[ABCDQuizAnswer] | RangeQuizAnswer | list[VotingQuizAnswer] | list[SlideElement]
image: str | None = None
@validator("answers")
def answers_not_none_if_abcd_type(cls, v, values):
print(values)
if values["type"] == QuizQuestionType.ABCD and type(v[0]) != ABCDQuizAnswer:
raise ValueError("Answers can't be none if type is ABCD")
if values["type"] == QuizQuestionType.RANGE and type(v) != RangeQuizAnswer:
raise ValueError("Answer must be from type RangeQuizAnswer if type is RANGE")
if values["type"] == QuizQuestionType.VOTING and type(v[0]) != VotingQuizAnswer:
raise ValueError("Answer must be from type VotingQuizAnswer if type is VOTING")
if values["type"] == QuizQuestionType.SLIDE and type(v[0]) != SlideElement:
raise ValueError("Answer must be from type SlideElement if type is SLIDE")
return v