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()
try:
existing_record = StudentProgress.objects.get(user=user, course_id=course.id) if num_completions:
if existing_record.completions != completions:
existing_record.completions = completions start_date = CourseModuleCompletion.objects.filter(course_id=course.id, user_id=user.id)\
existing_record.save() .exclude(cat_list).aggregate(Min('created'))['created__min']
status = 'updated'
except StudentProgress.DoesNotExist: try:
new_record = StudentProgress.objects.create( existing_record = StudentProgress.objects.get(user=user, course_id=course.id)
user=user,
course_id=course.id, if existing_record.completions != num_completions:
completions=completions existing_record.completions = num_completions
) status = 'updated'
status = 'created'
log_msg = 'Progress entry {} -- Course: {}, User: {} (completions: {})'.format(status, course.id, user.id if existing_record.created != start_date:
, completions) existing_record.created = start_date
status = 'updated'
if status == 'updated':
existing_record.save()
except StudentProgress.DoesNotExist:
StudentProgress.objects.create(
user=user,
course_id=course.id,
completions=num_completions,
created=start_date
)
status = 'created'
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