Bewertung_fix und Veröffentlichungszeit

This commit is contained in:
ben8
2025-06-27 15:17:27 +02:00
parent 1014ea37ec
commit 93e166ece0
11 changed files with 195 additions and 50 deletions

View File

@@ -318,10 +318,11 @@ def favorite_quiz(request, pk):
if favorite:
favorite.favorite=not favorite.favorite
if favorite.favorite==True:
favorite.favorite_date = timezone.now()
favorite.favorite_date = timezone.now()
favorite.save()
else:
favorite.favorite_date = None
@@ -347,10 +348,19 @@ def new_quiz(request):
form = QuizForm(request.POST, request.FILES)
if form.is_valid():
quiz = form.save(commit=False)
status = form.cleaned_data.get('status')
if status == 'öffentlich' and not quiz.published_at:
quiz.published_at = timezone.now()
try:
quiz_image=request.FILES['quiz_image']
imagequiz=QuizImage.objects.create(image=quiz_image)
quiz.image=imagequiz
@@ -359,6 +369,8 @@ def new_quiz(request):
quiz.user_id = request.user
#quiz.creator = request.user
quiz.save()
#form.save_m2m() # Speichert die Many-to-Many Beziehungen (Tags)
@@ -373,9 +385,14 @@ def new_quiz(request):
def edit_quiz(request, pk):
quiz = get_object_or_404(QivipQuiz, pk=pk, user_id=request.user)
if request.method == 'POST':
form = QuizForm(request.POST, instance=quiz, files=request.FILES)
form = QuizForm(request.POST, instance=quiz, files=request.FILES)
if form.is_valid():
if 'reset_image' in request.POST:
quiz.image = None
@@ -388,7 +405,12 @@ def edit_quiz(request, pk):
except:
pass
quiz = form.save(commit=False)
# Beispiel: Status aus dem Formular holen
status = form.cleaned_data.get('status')
if status == 'öffentlich' and not quiz.published_at:
quiz.published_at = timezone.now()
form.save()
for img in QuizImage.objects.all():
@@ -466,6 +488,7 @@ def copy_quiz(request, pk):
new_quiz.base_quiz_id = pk
new_quiz.rating_count = 0
new_quiz.average_rating = 3.0
new_quiz.published_at = timezone.now()
new_quiz.save() # Speichern als neues Objekt
# Optional: Beschreibung anpassen
# Alle zugehörigen Fragen kopieren