diff --git a/figures/serializers.py b/figures/serializers.py index 7b94a210..c4f5dded 100644 --- a/figures/serializers.py +++ b/figures/serializers.py @@ -300,6 +300,15 @@ def get_staff(self, obj): return [] def get_metrics(self, obj): + """ + Will return None if there is not a CourseDailyMetrics model + + This will happen for courses that are created after the last daily + pipeline ran + + TODO: Add unit tests for this and decide if we want to continue to + return None or if we return "zero" data + """ qs = CourseDailyMetrics.objects.filter(course_id=str(obj.id)) if qs: return CourseDailyMetricsSerializer(qs.order_by('-date_for')[0]).data diff --git a/frontend/src/views/CoursesList.js b/frontend/src/views/CoursesList.js index 3d404dd6..982a31ce 100644 --- a/frontend/src/views/CoursesList.js +++ b/frontend/src/views/CoursesList.js @@ -113,6 +113,16 @@ class CoursesList extends Component { render() { const listItems = this.state.coursesList.map((course, index) => { + var metrics_enrollment_count = 'N/A'; + var metrics_num_learners_completed = 'N/A'; + if (course.hasOwnProperty('metrics') && course['metrics'] ) { + if (course['metrics'].hasOwnProperty('enrollment_count')) { + metrics_enrollment_count = course['metrics']['enrollment_count']; + } + if (course['metrics'].hasOwnProperty('num_learners_completed')) { + metrics_num_learners_completed = course['metrics']['num_learners_completed']; + } + } return (
  • @@ -166,7 +176,7 @@ class CoursesList extends Component { Enrolments:
    - {course['metrics']['enrollment_count']} + {metrics_enrollment_count}
    @@ -176,7 +186,7 @@ class CoursesList extends Component { Completions:
    - {course['metrics']['num_learners_completed']} + {metrics_num_learners_completed}