CR response

This commit is contained in:
Julia Hansbrough
2014-01-06 13:27:59 +00:00
parent 95affba643
commit f2b0394211
9 changed files with 159 additions and 99 deletions

View File

@@ -95,6 +95,14 @@ class CourseMode(models.Model):
else:
return None
@classmethod
def min_course_price_for_verified_for_currency(cls, course_id, currency):
modes = cls.modes_for_course(course_id)
for mode in modes:
if (mode.currency == currency) and (mode.slug == 'verified'):
return mode.min_price
return 0
@classmethod
def min_course_price_for_currency(cls, course_id, currency):
"""

View File

@@ -17,11 +17,13 @@ import json
import logging
from pytz import UTC
import uuid
from collections import defaultdict
from django.conf import settings
from django.contrib.auth.models import User
from django.contrib.auth.signals import user_logged_in, user_logged_out
from django.db import models, IntegrityError
from django.db.models import Sum, Count
from django.db.models.signals import post_save
from django.dispatch import receiver, Signal
import django.dispatch
@@ -585,11 +587,14 @@ class CourseEnrollment(models.Model):
Returns a dictionary that stores the total enrollment count for a course, as well as the
enrollment count for each individual mode.
"""
d = {}
d['total'] = cls.objects.filter(course_id=course_id, is_active=True).count()
d['honor'] = cls.objects.filter(course_id=course_id, is_active=True, mode='honor').count()
d['audit'] = cls.objects.filter(course_id=course_id, is_active=True, mode='audit').count()
d['verified'] = cls.objects.filter(course_id=course_id, is_active=True, mode='verified').count()
# Unfortunately, Django's "group by"-style queries look super-awkward
query = cls.objects.filter(course_id=course_id, is_active=True).values('mode').order_by().annotate(Count('mode'))
total = 0
d = defaultdict(int)
for item in query:
d[item['mode']] = item['mode__count']
total += item['mode__count']
d['total'] = total
return d
def activate(self):