✨ Added ABCD-Question to Quiztivities
This commit is contained in:
@@ -23,21 +23,33 @@ class Markdown(BaseModel):
|
||||
markdown: str
|
||||
|
||||
|
||||
class _AbcdAnswer(BaseModel):
|
||||
answer: str
|
||||
correct: bool
|
||||
|
||||
|
||||
class Abcd(BaseModel):
|
||||
question: str
|
||||
answers: list[_AbcdAnswer]
|
||||
|
||||
|
||||
class QuizTivityTypes(str, enum.Enum):
|
||||
SLIDE = "SLIDE"
|
||||
PDF = "PDF"
|
||||
MEMORY = "MEMORY"
|
||||
MARKDOWN = "MARKDOWN"
|
||||
ABCD = "ABCD"
|
||||
|
||||
|
||||
TYPE_CLASS_LIST = {
|
||||
QuizTivityTypes.PDF: type(Pdf),
|
||||
QuizTivityTypes.MEMORY: type(Memory),
|
||||
QuizTivityTypes.MARKDOWN: type(Markdown),
|
||||
QuizTivityTypes.ABCD: type(Abcd),
|
||||
}
|
||||
|
||||
|
||||
class QuizTivityPage(BaseModel):
|
||||
title: str | None
|
||||
type: QuizTivityTypes
|
||||
data: Pdf | Memory | Markdown
|
||||
data: Pdf | Memory | Markdown | Abcd
|
||||
|
||||
@@ -77,6 +77,9 @@ async def get_share(uuid: UUID) -> QuizTivity:
|
||||
share = await QuizTivityShare.objects.select_related("quiztivity").get_or_none(id=uuid)
|
||||
if share is None:
|
||||
raise HTTPException(status_code=404, detail="Share not found")
|
||||
print(share.quiztivity)
|
||||
if share.expire_at is None:
|
||||
return share.quiztivity
|
||||
if share.expire_at < datetime.now():
|
||||
raise HTTPException(status_code=410, detail="Already expired")
|
||||
return share.quiztivity
|
||||
|
||||
Reference in New Issue
Block a user