Commit 2340f6f7 by Matt Drayer

mattdrayer/progress-generator-no-zero-entries: Only generate when completions > 0

parent 92e4b5dc
...@@ -6,7 +6,7 @@ from optparse import make_option ...@@ -6,7 +6,7 @@ from optparse import make_option
from django.core.management.base import BaseCommand from django.core.management.base import BaseCommand
from django.conf import settings from django.conf import settings
from django.db.models import Q from django.db.models import Q, Min
from progress.models import StudentProgress, CourseModuleCompletion from progress.models import StudentProgress, CourseModuleCompletion
from student.models import CourseEnrollment from student.models import CourseEnrollment
...@@ -69,23 +69,45 @@ class Command(BaseCommand): ...@@ -69,23 +69,45 @@ class Command(BaseCommand):
# For each user... # For each user...
for user in users: for user in users:
status = 'skipped' status = 'skipped'
completions = CourseModuleCompletion.objects.filter(course_id=course.id, user_id=user.id)\ num_completions = CourseModuleCompletion.objects.filter(course_id=course.id, user_id=user.id)\
.exclude(cat_list).count() .exclude(cat_list).count()
if num_completions:
start_date = CourseModuleCompletion.objects.filter(course_id=course.id, user_id=user.id)\
.exclude(cat_list).aggregate(Min('created'))['created__min']
try: try:
existing_record = StudentProgress.objects.get(user=user, course_id=course.id) existing_record = StudentProgress.objects.get(user=user, course_id=course.id)
if existing_record.completions != completions:
existing_record.completions = completions if existing_record.completions != num_completions:
existing_record.save() existing_record.completions = num_completions
status = 'updated'
if existing_record.created != start_date:
existing_record.created = start_date
status = 'updated' status = 'updated'
if status == 'updated':
existing_record.save()
except StudentProgress.DoesNotExist: except StudentProgress.DoesNotExist:
new_record = StudentProgress.objects.create( StudentProgress.objects.create(
user=user, user=user,
course_id=course.id, course_id=course.id,
completions=completions completions=num_completions,
created=start_date
) )
status = 'created' status = 'created'
log_msg = 'Progress entry {} -- Course: {}, User: {} (completions: {})'.format(status, course.id, user.id
, completions) log_msg = 'Progress entry {} -- Course: {}, User: {} (completions: {})'.format(
status,
course.id,
user.id,
num_completions
)
print log_msg print log_msg
log.info(log_msg) log.info(log_msg)
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