Commit ec586bce by Clinton Blackburn Committed by Gabe Mulley

Remove check for course existence

This check is actually fairly expensive from a performance perspective.

Change-Id: I5eb1ba7ccf76adb83a83d9e3f6d4fdc078aa7cc7
parent e0fe7588
......@@ -144,19 +144,17 @@ class CourseViewTestCaseMixin(DemoCourseMixin):
raise NotImplementedError
def assertIntervalFilteringWorks(self, expected_response, start_date, end_date):
# If start date is after date of existing data, no data should be returned
# If start date is after date of existing data, return a 404
date = (start_date + datetime.timedelta(days=30)).strftime(settings.DATE_FORMAT)
response = self.authenticated_get(
'%scourses/%s%s?start_date=%s' % (self.api_root_path, self.course_id, self.path, date))
self.assertEquals(response.status_code, 200)
self.assertListEqual([], response.data)
self.assertEquals(response.status_code, 404)
# If end date is before date of existing data, no data should be returned
# If end date is before date of existing data, return a 404
date = (start_date - datetime.timedelta(days=30)).strftime(settings.DATE_FORMAT)
response = self.authenticated_get(
'%scourses/%s%s?end_date=%s' % (self.api_root_path, self.course_id, self.path, date))
self.assertEquals(response.status_code, 200)
self.assertListEqual([], response.data)
self.assertEquals(response.status_code, 404)
# If data falls in date range, data should be returned
start_date = start_date.strftime(settings.DATE_FORMAT)
......
......@@ -19,6 +19,7 @@ class BaseCourseView(generics.ListAPIView):
end_date = None
course_id = None
slug = None
allow_empty = False
def get(self, request, *args, **kwargs):
self.course_id = self.kwargs.get('course_id')
......@@ -39,17 +40,10 @@ class BaseCourseView(generics.ListAPIView):
return super(BaseCourseView, self).get(request, *args, **kwargs)
def verify_course_exists_or_404(self, course_id):
if self.model.objects.filter(course_id=course_id).exists():
return True
raise Http404
def apply_date_filtering(self, queryset):
raise NotImplementedError
def get_queryset(self):
self.verify_course_exists_or_404(self.course_id)
queryset = self.model.objects.filter(course_id=self.course_id)
queryset = self.apply_date_filtering(queryset)
return queryset
......
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