Uploadfunktion!

This commit is contained in:
ben8
2025-04-22 17:52:34 +02:00
parent 1a4b9e0d6b
commit 50cd95daf1
5 changed files with 46 additions and 4 deletions

View File

@@ -193,10 +193,14 @@ def favorite_quiz(request, pk):
# Neues Quiz erstellen
@login_required
def new_quiz(request):
if request.method == 'POST':
quiz_image = request.FILES.get('quiz_image', None)
form = QuizForm(request.POST, request.FILES)
if form.is_valid():
quiz = form.save(commit=False)
quiz.image = quiz_image
quiz.user_id = request.user
#quiz.creator = request.user
quiz.save()
@@ -214,7 +218,16 @@ def edit_quiz(request, pk):
if request.method == 'POST':
form = QuizForm(request.POST, instance=quiz, files=request.FILES)
if form.is_valid():
try:
quiz_image = request.FILES['quiz_image']
quiz.image=quiz_image
quiz.save()
except Exception:
pass
if 'reset_image' in request.POST:
quiz.image = None
form.save()
return redirect('library:detail_quiz', pk=pk)
#return modified(request, pk)
@@ -228,7 +241,12 @@ 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()
return redirect('library:overview_quiz')
return render(request, 'library/delete_confirmation.html', {'object': quiz})
@@ -254,6 +272,7 @@ def detail_quiz(request, pk):
@login_required
def copy_quiz(request, pk):
original_quiz = get_object_or_404(QivipQuiz, pk=pk)
# Quiz kopieren (ohne ID, damit ein neues Objekt erstellt wird)
@@ -264,11 +283,10 @@ def copy_quiz(request, pk):
new_quiz.pk = None # Setzt die ID auf None, damit Django es als neues Objekt erkennt
new_quiz.uuid = uuid.uuid4() # Neue UUID generieren
new_quiz.user_id = request.user # Neuer Besitzer ist der aktuelle User
new_quiz.name += " - Kopie" # Optional: Name anpassen
new_quiz.name += " - Kopie"
new_quiz.base_quiz_id = pk
new_quiz.rating_count = 0
new_quiz.average_rating = 3.0
#new_quiz.creator = original_quiz.creator or request.user
new_quiz.save() # Speichern als neues Objekt
# Optional: Beschreibung anpassen
# Alle zugehörigen Fragen kopieren
@@ -400,6 +418,8 @@ def new_question(request):
@login_required
def edit_question(request, pk):
question = get_object_or_404(QivipQuestion, pk=pk, quiz_id__user_id=request.user)
if 'reset_ques_image' in request.POST:
question.image = None
if question.quiz_id.user_id != request.user:
return redirect('library:question_list')