@@ -146,4 +162,28 @@
{% endif %}
+
{% endblock %}
diff --git a/lmsege/lms/views.py b/lmsege/lms/views.py
index c16f2b6..44c531f 100644
--- a/lmsege/lms/views.py
+++ b/lmsege/lms/views.py
@@ -40,16 +40,23 @@ def dashboard(request):
is_published=True
).distinct().order_by('-created_at')
- # Check which ones the student has submitted
submissions = Submission.objects.filter(student=request.user)
- submitted_assignment_ids = submissions.values_list('assignment_id', flat=True)
+ submissions_dict = {sub.assignment_id: sub for sub in submissions}
+
+ total_count = assignments.count()
+ waiting_solution_count = sum(1 for a in assignments if a.id not in submissions_dict or submissions_dict[a.id].status == 'IN_PROGRESS')
+ pending_count = sum(1 for a in assignments if a.id in submissions_dict and submissions_dict[a.id].status == 'PENDING')
+ graded_count = sum(1 for a in assignments if a.id in submissions_dict and submissions_dict[a.id].status == 'GRADED')
from django.utils import timezone
return render(request, 'lms/dashboard.html', {
'assignments': assignments,
- 'submitted_assignment_ids': submitted_assignment_ids,
- 'submissions': {sub.assignment_id: sub for sub in submissions},
- 'now': timezone.now()
+ 'submissions': submissions_dict,
+ 'now': timezone.now(),
+ 'total_count': total_count,
+ 'waiting_solution_count': waiting_solution_count,
+ 'pending_count': pending_count,
+ 'graded_count': graded_count,
})
@login_required