38716-vm/core/views.py
Flatlogic Bot 26d1bd517d 2
2026-02-23 14:09:33 +00:00

75 lines
2.4 KiB
Python

from django.shortcuts import render, get_object_or_404, redirect
from django.contrib.auth.decorators import login_required
from django.db.models import Q
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth import login
from .models import Course, Instructor, WishlistItem
def course_list(request):
query = request.GET.get('q', '')
level = request.GET.get('level', '')
courses = Course.objects.all()
if query:
courses = courses.filter(
Q(title__icontains=query) | Q(description__icontains=query)
)
if level:
courses = courses.filter(level=level)
context = {
'courses': courses,
'query': query,
'level': level,
'levels': ['Beginner', 'Intermediate', 'Advanced']
}
return render(request, 'core/index.html', context)
def course_detail(request, slug):
course = get_object_or_404(Course, slug=slug)
is_in_wishlist = False
if request.user.is_authenticated:
is_in_wishlist = WishlistItem.objects.filter(user=request.user, course=course).exists()
context = {
'course': course,
'is_in_wishlist': is_in_wishlist
}
return render(request, 'core/course_detail.html', context)
def instructor_detail(request, pk):
instructor = get_object_or_404(Instructor, pk=pk)
return render(request, 'core/instructor_detail.html', {'instructor': instructor})
@login_required
def wishlist(request):
items = WishlistItem.objects.filter(user=request.user)
return render(request, 'core/wishlist.html', {'items': items})
@login_required
def toggle_wishlist(request, course_id):
course = get_object_or_404(Course, id=course_id)
wishlist_item, created = WishlistItem.objects.get_or_create(user=request.user, course=course)
if not created:
wishlist_item.delete()
return redirect(request.META.get('HTTP_REFERER', 'home'))
def checkout_placeholder(request, course_id):
course = get_object_or_404(Course, id=course_id)
return render(request, 'core/checkout_placeholder.html', {'course': course})
def signup(request):
if request.method == 'POST':
form = UserCreationForm(request.POST)
if form.is_valid():
user = form.save()
login(request, user)
return redirect('home')
else:
form = UserCreationForm()
return render(request, 'registration/signup.html', {'form': form})