65 lines
2.4 KiB
Python
65 lines
2.4 KiB
Python
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}) |