initial API attempt

parent 1dbec29c
...@@ -497,3 +497,14 @@ class ModuleEngagementMetricRanges(models.Model): ...@@ -497,3 +497,14 @@ class ModuleEngagementMetricRanges(models.Model):
class Meta(object): class Meta(object):
db_table = 'module_engagement_metric_ranges' db_table = 'module_engagement_metric_ranges'
class ViewDistribution(models.Model):
course_id = models.CharField(db_index=True, max_length=255)
section = models.CharField(db_index=True, max_length=255)
subsection = models.CharField(db_index=True, max_length=255)
unique_user_views = models.IntegerField()
total_views = models.IntegerField()
class Meta(object):
db_table = 'content_views'
...@@ -478,3 +478,9 @@ class CourseLearnerMetadataSerializer(serializers.Serializer): ...@@ -478,3 +478,9 @@ class CourseLearnerMetadataSerializer(serializers.Serializer):
}) })
return engagement_ranges return engagement_ranges
class ViewDistributionSerializer(ModelSerializerWithCreatedField):
class Meta(object):
model = models.ViewDistribution
...@@ -14,7 +14,8 @@ COURSE_URLS = [ ...@@ -14,7 +14,8 @@ COURSE_URLS = [
('enrollment/location', views.CourseEnrollmentByLocationView, 'enrollment_by_location'), ('enrollment/location', views.CourseEnrollmentByLocationView, 'enrollment_by_location'),
('problems', views.ProblemsListView, 'problems'), ('problems', views.ProblemsListView, 'problems'),
('problems_and_tags', views.ProblemsAndTagsListView, 'problems_and_tags'), ('problems_and_tags', views.ProblemsAndTagsListView, 'problems_and_tags'),
('videos', views.VideosListView, 'videos') ('videos', views.VideosListView, 'videos'),
('views', views.ViewDistributionView, 'views')
] ]
urlpatterns = [] urlpatterns = []
......
...@@ -765,3 +765,12 @@ class VideosListView(BaseCourseView): ...@@ -765,3 +765,12 @@ class VideosListView(BaseCourseView):
def apply_date_filtering(self, queryset): def apply_date_filtering(self, queryset):
# no date filtering for videos -- just return the queryset # no date filtering for videos -- just return the queryset
return queryset return queryset
class ViewDistributionView(BaseCourseView):
slug = 'view-distribution'
serializer_class = serializers.ViewDistributionSerializer
model = models.ViewDistribution
def apply_date_filtering(self, queryset):
return queryset
\ No newline at end of file
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