Commit 87c4a49c by Tyler Hallada Committed by Dennis Jen

Default gender counts to 0, removed unused imports, fixed linting errors

parent 3809ba5b
......@@ -47,6 +47,7 @@ class ModelSerializerWithCreatedField(serializers.ModelSerializer):
created = serializers.DateTimeField(format=settings.DATETIME_FORMAT)
# pylint: disable=abstract-method
class ProblemSerializer(serializers.Serializer):
"""
Serializer for problems.
......@@ -59,6 +60,7 @@ class ProblemSerializer(serializers.Serializer):
created = serializers.DateTimeField(format=settings.DATETIME_FORMAT)
# pylint: disable=abstract-method
class ProblemsAndTagsSerializer(serializers.Serializer):
"""
Serializer for problems and tags.
......@@ -231,6 +233,7 @@ class CourseEnrollmentModeDailySerializer(BaseCourseEnrollmentModelSerializer):
fields = ['course_id', 'date', 'count', 'cumulative_count', 'created'] + ENROLLMENT_MODES
# pylint: disable=abstract-method
class CountrySerializer(serializers.Serializer):
"""
Serialize country to an object with fields for the complete country name
......@@ -329,10 +332,12 @@ class VideoTimelineSerializer(ModelSerializerWithCreatedField):
)
# pylint: disable=abstract-method
class LastUpdatedSerializer(serializers.Serializer):
last_updated = serializers.DateTimeField(source='date', format=settings.DATE_FORMAT)
# pylint: disable=abstract-method
class LearnerSerializer(serializers.Serializer):
username = serializers.CharField()
enrollment_mode = serializers.CharField()
......@@ -407,6 +412,7 @@ class EdxPaginationSerializer(pagination.PageNumberPagination):
]))
# pylint: disable=abstract-method
class EngagementDaySerializer(serializers.Serializer):
date = serializers.DateField(format=settings.DATE_FORMAT)
problems_attempted = serializers.SerializerMethodField()
......@@ -427,11 +433,13 @@ class EngagementDaySerializer(serializers.Serializer):
return obj.get('videos_viewed', 0)
# pylint: disable=abstract-method
class DateRangeSerializer(serializers.Serializer):
start = serializers.DateTimeField(source='start_date', format=settings.DATE_FORMAT)
end = serializers.DateTimeField(source='end_date', format=settings.DATE_FORMAT)
# pylint: disable=abstract-method
class EnagementRangeMetricSerializer(serializers.Serializer):
"""
Serializes ModuleEngagementMetricRanges ('bottom', 'average', and 'top') into
......@@ -456,6 +464,7 @@ class EnagementRangeMetricSerializer(serializers.Serializer):
return [metric_range.low_value, metric_range.high_value] if metric_range else None
# pylint: disable=abstract-method
class CourseLearnerMetadataSerializer(serializers.Serializer):
enrollment_modes = serializers.ReadOnlyField(source='es_data.enrollment_modes')
segments = serializers.ReadOnlyField(source='es_data.segments')
......
......@@ -15,7 +15,7 @@ from analytics_data_api.constants import enrollment_modes
from analytics_data_api.utils import dictfetchall
from analytics_data_api.v0 import models, serializers
from utils import raise_404_if_none
from analytics_data_api.v0.views.utils import raise_404_if_none
class BaseCourseView(generics.ListAPIView):
......@@ -242,7 +242,7 @@ class CourseActivityMostRecentWeekView(generics.RetrieveAPIView):
return activity_type
def get_object(self, queryset=None):
def get_object(self):
"""Select the activity report for the given course and activity type."""
warnings.warn('CourseActivityMostRecentWeekView has been deprecated! Use CourseActivityWeeklyView instead.',
......@@ -403,7 +403,11 @@ class CourseEnrollmentByGenderView(BaseCourseEnrollmentView):
item = {
u'course_id': key[0],
u'date': key[1],
u'created': None
u'created': None,
u'male': 0,
u'female': 0,
u'other': 0,
u'unknown': 0
}
for enrollment in group:
......
......@@ -103,7 +103,7 @@ class LearnerView(LastUpdateMixin, CourseViewMixin, generics.RetrieveAPIView):
def get_queryset(self):
return RosterEntry.get_course_user(self.course_id, self.username)
def get_object(self, queryset=None):
def get_object(self):
queryset = self.get_queryset()
if len(queryset) == 1:
return queryset[0]
......@@ -362,7 +362,7 @@ class CourseLearnerMetadata(CourseViewMixin, generics.RetrieveAPIView):
"""
serializer_class = CourseLearnerMetadataSerializer
def get_object(self, queryset=None):
def get_object(self):
# Because we're serializing data from both Elasticsearch and MySQL into
# the same JSON object, we have to pass both sources of data in a dict
# to our custom course metadata serializer.
......
......@@ -22,7 +22,7 @@ from analytics_data_api.v0.serializers import (
)
from analytics_data_api.utils import matching_tuple
from utils import raise_404_if_none
from analytics_data_api.v0.views.utils import raise_404_if_none
class ProblemResponseAnswerDistributionView(generics.ListAPIView):
......
......@@ -12,6 +12,7 @@ def split_query_argument(argument):
else:
return None
def raise_404_if_none(func):
"""
Decorator for raiseing Http404 if function evaulation is falsey (e.g. empty queryset).
......
......@@ -7,7 +7,8 @@ from rest_framework import generics
from analytics_data_api.v0.models import VideoTimeline
from analytics_data_api.v0.serializers import VideoTimelineSerializer
from utils import raise_404_if_none
from analytics_data_api.v0.views.utils import raise_404_if_none
class VideoTimelineView(generics.ListAPIView):
"""
......
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