From 15a4db1774daa09af3834b2e5735e098d80ae561 Mon Sep 17 00:00:00 2001 From: Victor Shnayder Date: Wed, 8 Aug 2012 18:20:17 -0400 Subject: [PATCH] Only show enrolled students in course gradebook * also added todo about need for pagination --- lms/djangoapps/courseware/views.py | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/lms/djangoapps/courseware/views.py b/lms/djangoapps/courseware/views.py index 96d6890823..76f17fb53d 100644 --- a/lms/djangoapps/courseware/views.py +++ b/lms/djangoapps/courseware/views.py @@ -27,7 +27,8 @@ from xmodule.course_module import CourseDescriptor from util.cache import cache, cache_if_anonymous from student.models import UserTestGroup, CourseEnrollment from courseware import grades -from courseware.courses import check_course, get_courses_by_university +from courseware.courses import (check_course, get_courses_by_university, + has_staff_access_to_course) log = logging.getLogger("mitx.courseware") @@ -70,18 +71,18 @@ def gradebook(request, course_id): raise Http404 course = check_course(course_id) - student_objects = User.objects.all()[:100] - student_info = [] + enrolled_students = User.objects.filter(courseenrollment__course_id=course_id).order_by('username') - #TODO: Only select students who are in the course - for student in student_objects: - student_info.append({ - 'username': student.username, - 'id': student.id, - 'email': student.email, - 'grade_summary': grades.grade(student, request, course), - 'realname': UserProfile.objects.get(user=student).name - }) + # TODO (vshnayder): implement pagination. + enrolled_students = enrolled_students[:1000] # HACK! + + student_info = [{'username': student.username, + 'id': student.id, + 'email': student.email, + 'grade_summary': grades.grade(student, request, course), + 'realname': UserProfile.objects.get(user=student).name + } + for student in enrolled_students] return render_to_response('gradebook.html', {'students': student_info, 'course': course})