File size: 1,068 Bytes
b7f55e1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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 Grade
from .forms import GradeForm
from students.models import Student

@login_required
def grade_list(request):
    grades = Grade.objects.select_related('student', 'subject').order_by('-created_at')[:50]
    return render(request, 'grades/list.html', {'grades': grades})

@login_required
def grade_add(request):
    form = GradeForm(request.POST or None)
    if form.is_valid():
        form.save()
        messages.success(request, 'Grade recorded!')
        return redirect('grade_list')
    return render(request, 'grades/form.html', {'form': form, 'title': 'Add Grade'})

@login_required
def student_grades(request, student_id):
    student = get_object_or_404(Student, pk=student_id)
    grades = Grade.objects.filter(student=student).select_related('subject')
    return render(request, 'grades/student_grades.html', {'student': student, 'grades': grades})