Added ABCD-Question to Quiztivities

This commit is contained in:
Mawoka
2023-06-15 18:42:39 +02:00
parent 3cfd51e1cf
commit 2076e7cffb
10 changed files with 187 additions and 10 deletions
+13 -1
View File
@@ -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
+3
View File
@@ -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