🐛 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 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
|
||||
from classquiz.auth import get_current_user
|
||||
import os
|
||||
@@ -123,7 +123,16 @@ async def finish_edit(edit_id: str, quiz_input: QuizInput):
|
||||
session_data = EditSessionData.parse_raw(session_data)
|
||||
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.background_color = html.unescape(bleach.clean(quiz_input.background_color, 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))
|
||||
|
||||
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}$"
|
||||
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}}$"
|
||||
@@ -135,6 +144,7 @@ async def finish_edit(edit_id: str, quiz_input: QuizInput):
|
||||
if old_quiz is None:
|
||||
return
|
||||
try:
|
||||
# Why does this work or not throw an error (TODO)
|
||||
if new == old_quiz.questions[index]["image"]:
|
||||
return
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user