Files
Flagman/course/views.py
Dmitriy 60b4e0e839 init
2025-06-23 01:24:34 +03:00

65 lines
2.4 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from django.shortcuts import render, redirect, get_object_or_404
from django.contrib.auth.decorators import login_required
from django.contrib import messages
from .models import Course
from .forms import CourseForm
def course_list(request):
courses = Course.objects.all().order_by('title')
return render(request, 'course/course_list.html', {'courses': courses})
@login_required
def course_detail(request, pk):
course = get_object_or_404(Course, pk=pk)
return render(request, 'course/course_detail.html', {'course': course})
@login_required
def create_course(request):
if not hasattr(request.user, 'instructor'):
messages.error(request, 'У вас нет прав для создания курсов.')
return redirect('course:list')
if request.method == 'POST':
form = CourseForm(request.POST)
if form.is_valid():
course = form.save()
messages.success(request, 'Курс успешно создан.')
return redirect('course:list')
else:
form = CourseForm()
return render(request, 'course/course_form.html', {'form': form, 'action': 'create'})
@login_required
def update_course(request, pk):
course = get_object_or_404(Course, pk=pk)
if not hasattr(request.user, 'instructor'):
messages.error(request, 'У вас нет прав для редактирования курсов.')
return redirect('course:list')
if request.method == 'POST':
form = CourseForm(request.POST, instance=course)
if form.is_valid():
form.save()
messages.success(request, 'Курс успешно обновлен.')
return redirect('course:list')
else:
form = CourseForm(instance=course)
return render(request, 'course/course_form.html', {'form': form, 'action': 'update'})
@login_required
def delete_course(request, pk):
course = get_object_or_404(Course, pk=pk)
if not hasattr(request.user, 'instructor'):
messages.error(request, 'У вас нет прав для удаления курсов.')
return redirect('course:list')
if request.method == 'POST':
course.delete()
messages.success(request, 'Курс успешно удален.')
return redirect('course:list')
return render(request, 'course/course_confirm_delete.html', {'course': course})