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})