sinnvolleres_speichern

This commit is contained in:
ben8
2025-04-23 16:11:08 +02:00
parent a021e7561a
commit 0c8a8d3062
6 changed files with 147 additions and 43 deletions

View File

@@ -197,20 +197,18 @@ def new_quiz(request):
if request.method == 'POST':
form = QuizForm(request.POST, request.FILES)
try:
uploaded_file = request.FILES["quiz_image"]
quiz_img = QuizImage.objects.create(image=uploaded_file)
except Exception:
pass
if form.is_valid():
quiz = form.save(commit=False)
try:
quiz.image = quiz_img
except Exception:
quiz_image=request.FILES['quiz_image']
imagequiz=QuizImage.objects.create(image=quiz_image)
quiz.image=imagequiz
except:
pass
quiz.user_id = request.user
#quiz.creator = request.user
@@ -229,19 +227,27 @@ def edit_quiz(request, pk):
if request.method == 'POST':
form = QuizForm(request.POST, instance=quiz, files=request.FILES)
if form.is_valid():
try:
uploaded_file = request.FILES["quiz_image"]
quiz_img = QuizImage.objects.create(image=uploaded_file)
quiz.image = quiz_img
quiz.save()
except Exception:
pass
if 'reset_image' in request.POST:
quiz.image = None
try:
quiz_image=request.FILES['quiz_image']
imagequiz=QuizImage.objects.create(image=quiz_image)
quiz.image=imagequiz
except:
pass
form.save()
for img in QuizImage.objects.all():
try:
img.delete()
except:
pass
return redirect('library:detail_quiz', pk=pk)
#return modified(request, pk)
@@ -254,11 +260,19 @@ def edit_quiz(request, pk):
def delete_quiz(request, pk):
quiz = get_object_or_404(QivipQuiz, pk=pk, user_id=request.user)
if request.method == 'POST':
if quiz.image:
quiz.image = None # Entfernt das Bild aus der Datenbank, aber löscht es nicht
quiz.save() # Speichere die Änderungen in der Datenbank
quiz.delete()
for img in QuizImage.objects.all():
try:
img.delete()
img.image.delete(save=False)
except:
pass
for img in QuestionImage.objects.all():
try:
img.delete()
img.image.delete(save=False)
except:
pass
return redirect('library:overview_quiz')
return render(request, 'library/delete_confirmation.html', {'object': quiz})
@@ -309,6 +323,7 @@ def copy_quiz(request, pk):
question.pk = None # Setze pk auf None, damit es als neues Objekt gespeichert wird
question.quiz_id = original_quiz # Verknüpfe mit dem neuen Quiz
question.data = question.data # `data`-Feld wird explizit übernommen # Verknüpfe mit dem neuen Quiz
question.save()
messages.success(request, "Quiz wurde erfolgreich kopiert!")
@@ -349,7 +364,6 @@ def new_question(request):
if request.method == 'POST':
question_text = request.POST.get('question', '')
question_image = request.FILES.get('question_image', None)
# Handle different question types
if question_type == 'true_false':
@@ -389,17 +403,10 @@ def new_question(request):
question = QivipQuestion()
question.data = json.dumps(json_data)
question.quiz_id = quiz
if request.method == 'POST':
try:
question_image = request.FILES['question_image']
except Exception:
pass
try:
if question_image:
question_img = QuestionImage.objects.create(image=question_image) # Erstelle das QuestionImage-Objekt
question.image = question_img # Weise es dem Bildfeld zu
question.save()
question_image=request.FILES['question_image']
imagequestion=QuestionImage.objects.create(image=question_image)
question.image=imagequestion
except:
pass
@@ -500,7 +507,9 @@ def edit_question(request, pk):
if request.method == 'POST':
question_text = request.POST.get('question', '')
try:
question_image = request.FILES['question_image']
question_image=request.FILES['question_image']
imagequestion=QuestionImage.objects.create(image=question_image)
question.image=imagequestion
except Exception:
pass
@@ -545,16 +554,14 @@ def edit_question(request, pk):
question.data = json.dumps(json_data)
question.time_per_question = request.POST.get('time_per_question', '30')
try:
if question_image:
question_img = QuestionImage.objects.create(image=question_image) # Erstelle das QuestionImage-Objekt
question.image = question_img # Weise es dem Bildfeld zu
question.save()
except:
pass
question.save()
for img in QuestionImage.objects.all():
try:
img.delete()
except:
pass
#return modified(request, question.quiz_id.pk)
return redirect('library:detail_quiz', pk=question.quiz_id.pk)
@@ -582,5 +589,10 @@ def delete_question(request, pk):
if request.method == 'POST':
question.delete()
for img in QuestionImage.objects.all():
try:
img.delete()
except:
pass
return redirect('library:detail_quiz', pk=question.quiz_id.pk)
return render(request, 'library/delete_confirmation.html', {'object': question})