Commit 6579364f by Han Su Kim

Merge pull request #3593 from edx/han/cert-report

Certificate report improvements
parents 5cef9f7a 8bcb70b8
...@@ -58,19 +58,29 @@ class Command(BaseCommand): ...@@ -58,19 +58,29 @@ class Command(BaseCommand):
for course_id in ended_courses: for course_id in ended_courses:
# find students who are enrolled # find students who are active
# enrolled students are always downloable + notpassing
print "Looking up certificate states for {0}".format(course_id) print "Looking up certificate states for {0}".format(course_id)
enrolled_students = User.objects.filter( active_students = User.objects.filter(
courseenrollment__course_id=course_id, courseenrollment__course_id=course_id,
courseenrollment__is_active=True) courseenrollment__is_active=True)
cert_data[course_id] = {'enrolled': enrolled_students.count()}
tallies = GeneratedCertificate.objects.filter( cert_data[course_id] = {'active': active_students.count()}
status_tally = GeneratedCertificate.objects.filter(
course_id__exact=course_id).values('status').annotate( course_id__exact=course_id).values('status').annotate(
dcount=Count('status')) dcount=Count('status'))
cert_data[course_id].update( cert_data[course_id].update(
{status['status']: status['dcount'] {status['status']: status['dcount']
for status in tallies}) for status in status_tally})
mode_tally = GeneratedCertificate.objects.filter(
course_id__exact=course_id,
status__exact='downloadable').values('mode').annotate(
dcount=Count('mode'))
cert_data[course_id].update(
{mode['mode']: mode['dcount']
for mode in mode_tally})
# all states we have seen far all courses # all states we have seen far all courses
status_headings = set( status_headings = set(
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment