init
This commit is contained in:
93
student/views.py
Normal file
93
student/views.py
Normal file
@ -0,0 +1,93 @@
|
||||
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 Student, StudentProgress
|
||||
from schedule.models import Lesson, LessonEnrollment
|
||||
from .forms import StudentProfileForm
|
||||
|
||||
@login_required
|
||||
def student_dashboard(request):
|
||||
student = get_object_or_404(Student, profile__user=request.user)
|
||||
enrollments = LessonEnrollment.objects.filter(student=student).select_related('lesson')
|
||||
return render(request, 'student/dashboard.html', {
|
||||
'student': student,
|
||||
'enrollments': enrollments
|
||||
})
|
||||
|
||||
@login_required
|
||||
def student_schedule(request):
|
||||
student = get_object_or_404(Student, profile__user=request.user)
|
||||
enrollments = LessonEnrollment.objects.filter(student=student).select_related('lesson')
|
||||
return render(request, 'student/schedule.html', {
|
||||
'student': student,
|
||||
'enrollments': enrollments
|
||||
})
|
||||
|
||||
@login_required
|
||||
def student_progress(request):
|
||||
student = get_object_or_404(Student, profile__user=request.user)
|
||||
progress = StudentProgress.objects.get_or_create(student=student)[0]
|
||||
return render(request, 'student/progress.html', {
|
||||
'student': student,
|
||||
'progress': progress
|
||||
})
|
||||
|
||||
@login_required
|
||||
def student_profile(request):
|
||||
student = get_object_or_404(Student, profile__user=request.user)
|
||||
return render(request, 'student/profile.html', {'student': student})
|
||||
|
||||
@login_required
|
||||
def edit_student_profile(request):
|
||||
student = get_object_or_404(Student, profile__user=request.user)
|
||||
if request.method == 'POST':
|
||||
form = StudentProfileForm(request.POST, request.FILES, instance=student)
|
||||
if form.is_valid():
|
||||
form.save()
|
||||
messages.success(request, 'Профиль успешно обновлен!')
|
||||
return redirect('student_profile')
|
||||
else:
|
||||
form = StudentProfileForm(instance=student)
|
||||
return render(request, 'student/edit_profile.html', {'form': form})
|
||||
|
||||
@login_required
|
||||
def lesson_list(request):
|
||||
student = get_object_or_404(Student, profile__user=request.user)
|
||||
enrollments = LessonEnrollment.objects.filter(student=student).select_related('lesson')
|
||||
return render(request, 'student/lesson_list.html', {
|
||||
'student': student,
|
||||
'enrollments': enrollments
|
||||
})
|
||||
|
||||
@login_required
|
||||
def lesson_detail(request, pk):
|
||||
student = get_object_or_404(Student, profile__user=request.user)
|
||||
lesson = get_object_or_404(Lesson, pk=pk)
|
||||
enrollment = get_object_or_404(LessonEnrollment, student=student, lesson=lesson)
|
||||
return render(request, 'student/lesson_detail.html', {
|
||||
'student': student,
|
||||
'lesson': lesson,
|
||||
'enrollment': enrollment
|
||||
})
|
||||
|
||||
def student_list(request):
|
||||
students = Student.objects.all().order_by('user__last_name', 'user__first_name')
|
||||
return render(request, 'student/student_list.html', {'students': students})
|
||||
|
||||
@login_required
|
||||
def student_detail(request, pk):
|
||||
student = get_object_or_404(Student, pk=pk)
|
||||
enrolled_lessons = Lesson.objects.filter(enrolled_students=student)
|
||||
return render(request, 'student/student_detail.html', {
|
||||
'student': student,
|
||||
'enrolled_lessons': enrolled_lessons
|
||||
})
|
||||
|
||||
@login_required
|
||||
def student_schedule(request, pk):
|
||||
student = get_object_or_404(Student, pk=pk)
|
||||
enrolled_lessons = Lesson.objects.filter(enrolled_students=student).order_by('date', 'start_time')
|
||||
return render(request, 'student/student_schedule.html', {
|
||||
'student': student,
|
||||
'enrolled_lessons': enrolled_lessons
|
||||
})
|
Reference in New Issue
Block a user