🐛 Fixed critical bug in editor
This commit is contained in:
@@ -14,7 +14,7 @@ from fastapi import APIRouter, File, UploadFile, HTTPException, Depends
|
|||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
|
|
||||||
from classquiz.config import settings, redis, storage, meilisearch
|
from classquiz.config import settings, redis, storage, meilisearch
|
||||||
from classquiz.db.models import Quiz, QuizInput, User
|
from classquiz.db.models import Quiz, QuizInput, User, QuizQuestionType
|
||||||
import puremagic
|
import puremagic
|
||||||
from classquiz.auth import get_current_user
|
from classquiz.auth import get_current_user
|
||||||
import os
|
import os
|
||||||
@@ -123,7 +123,16 @@ async def finish_edit(edit_id: str, quiz_input: QuizInput):
|
|||||||
session_data = EditSessionData.parse_raw(session_data)
|
session_data = EditSessionData.parse_raw(session_data)
|
||||||
quiz_input.title = html.unescape(bleach.clean(quiz_input.title, tags=[], strip=True))
|
quiz_input.title = html.unescape(bleach.clean(quiz_input.title, tags=[], strip=True))
|
||||||
quiz_input.description = html.unescape(bleach.clean(quiz_input.description, tags=[], strip=True))
|
quiz_input.description = html.unescape(bleach.clean(quiz_input.description, tags=[], strip=True))
|
||||||
|
if quiz_input.background_color is not None:
|
||||||
quiz_input.background_color = html.unescape(bleach.clean(quiz_input.background_color, tags=[], strip=True))
|
quiz_input.background_color = html.unescape(bleach.clean(quiz_input.background_color, tags=[], strip=True))
|
||||||
|
|
||||||
|
for i, question in enumerate(quiz_input.questions):
|
||||||
|
if question.type == QuizQuestionType.ABCD:
|
||||||
|
for i2, answer in enumerate(question.answers):
|
||||||
|
if answer.color is not None:
|
||||||
|
quiz_input.questions[i].answers[i2].color = html.unescape(
|
||||||
|
bleach.clean(answer.color, tags=[], strip=True)
|
||||||
|
)
|
||||||
image_id_regex = r"^.{36}--.{36}$"
|
image_id_regex = r"^.{36}--.{36}$"
|
||||||
imgur_regex = r"^https://i\.imgur\.com\/.{7}.(jpg|png|gif)$"
|
imgur_regex = r"^https://i\.imgur\.com\/.{7}.(jpg|png|gif)$"
|
||||||
server_regex = rf"^{re.escape(settings.root_address)}/api/v1/storage/download/.{{36}}--.{{36}}$"
|
server_regex = rf"^{re.escape(settings.root_address)}/api/v1/storage/download/.{{36}}--.{{36}}$"
|
||||||
@@ -135,6 +144,7 @@ async def finish_edit(edit_id: str, quiz_input: QuizInput):
|
|||||||
if old_quiz is None:
|
if old_quiz is None:
|
||||||
return
|
return
|
||||||
try:
|
try:
|
||||||
|
# Why does this work or not throw an error (TODO)
|
||||||
if new == old_quiz.questions[index]["image"]:
|
if new == old_quiz.questions[index]["image"]:
|
||||||
return
|
return
|
||||||
else:
|
else:
|
||||||
|
|||||||
Reference in New Issue
Block a user