Zwischenstand_Favoriten

This commit is contained in:
ben8
2025-04-10 19:55:11 +02:00
parent b0782868b8
commit 7ce0e6e9dd
9 changed files with 373 additions and 11 deletions

View File

@@ -1,10 +1,11 @@
import uuid
from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import render, redirect, get_object_or_404
from django.contrib.auth.decorators import login_required
from django.contrib.auth.models import User
from django.urls import reverse
from django.contrib import messages
from .models import QivipQuiz, QivipQuestion
from .models import QivipQuiz, QivipQuestion, QivipQuizFavorite
from .forms import QuizForm, QuestionForm
import json
from django.core.paginator import Paginator
@@ -17,6 +18,10 @@ from django.contrib.auth.models import User
def overview_quiz(request):
# Filter
form = QuizFilterForm(request.GET)
favorite_quizzes = QivipQuizFavorite.objects.filter(user=request.user, favorite=True)
favorite_quiz_ids = favorite_quizzes.values_list('quiz', flat=True)
favorite_quizzes = QivipQuiz.objects.filter(id__in=favorite_quiz_ids)
# Initialize querysets
if request.user.is_authenticated:
@@ -82,6 +87,8 @@ def overview_quiz(request):
context = {
'show_search': True,
'favorite_quiz_ids': favorite_quiz_ids,
'favorite_quizzes':favorite_quizzes,
'my_quizzes': my_quizzes,
'other_quizzes': other_quizzes,
'form': form,
@@ -90,7 +97,21 @@ def overview_quiz(request):
return render(request, 'library/overview_quiz.html', context)
# Neues Quiz erstellen
@login_required
def favorite_quiz(request, pk):
quiz= get_object_or_404(QivipQuiz, pk=pk)
favorite = QivipQuizFavorite.objects.filter(user=request.user, quiz=quiz).first()
if favorite:
favorite.favorite=not favorite.favorite
print(favorite.favorite)
favorite.save()
else:
QivipQuizFavorite.objects.create(user=request.user, quiz=quiz, favorite=True)
return redirect('library:overview_quiz')
# Neues Quiz erstellen
@login_required
@@ -102,7 +123,7 @@ 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)
#form.save_m2m() # Speichert die Many-to-Many Beziehungen (Tags)
return redirect('library:detail_quiz', pk=quiz.pk)
else: