Commit fab6e489 by Zia Fazal Committed by Jonathan Piacenti

fixed mysql date time error

added if check for mysql
parent 00802f7f
...@@ -315,6 +315,7 @@ class OrganizationsApiTests(ModuleStoreTestCase): ...@@ -315,6 +315,7 @@ class OrganizationsApiTests(ModuleStoreTestCase):
user_id = response.data['id'] user_id = response.data['id']
user = User.objects.get(pk=user_id) user = User.objects.get(pk=user_id)
users.append(user_id) users.append(user_id)
CourseEnrollmentFactory.create(user=user, course_id=self.course.id)
if i < 2: if i < 2:
StudentGradebook.objects.create(user=user, course_id=self.course.id, grade=0.75, proforma_grade=0.85) StudentGradebook.objects.create(user=user, course_id=self.course.id, grade=0.75, proforma_grade=0.85)
elif i < 4: elif i < 4:
...@@ -361,17 +362,23 @@ class OrganizationsApiTests(ModuleStoreTestCase): ...@@ -361,17 +362,23 @@ class OrganizationsApiTests(ModuleStoreTestCase):
course2 = CourseFactory.create(display_name="COURSE2", org="CRS2", run="RUN2") course2 = CourseFactory.create(display_name="COURSE2", org="CRS2", run="RUN2")
course3 = CourseFactory.create(display_name="COURSE3", org="CRS3", run="RUN3") course3 = CourseFactory.create(display_name="COURSE3", org="CRS3", run="RUN3")
if i < 3: if i < 3:
CourseEnrollmentFactory.create(user=user, course_id=course1.id)
StudentGradebook.objects.create(user=user, grade=0.75, proforma_grade=0.85, course_id=course1.id) StudentGradebook.objects.create(user=user, grade=0.75, proforma_grade=0.85, course_id=course1.id)
elif i < 5: elif i < 5:
CourseEnrollmentFactory.create(user=user, course_id=course2.id)
StudentGradebook.objects.create(user=user, grade=0.82, proforma_grade=0.82, course_id=course2.id) StudentGradebook.objects.create(user=user, grade=0.82, proforma_grade=0.82, course_id=course2.id)
elif i < 7: elif i < 7:
CourseEnrollmentFactory.create(user=user, course_id=course3.id)
StudentGradebook.objects.create(user=user, grade=0.72, proforma_grade=0.78, course_id=course3.id) StudentGradebook.objects.create(user=user, grade=0.72, proforma_grade=0.78, course_id=course3.id)
elif i < 9: elif i < 9:
CourseEnrollmentFactory.create(user=user, course_id=course1.id)
StudentGradebook.objects.create(user=user, grade=0.94, proforma_grade=0.67, course_id=course1.id) StudentGradebook.objects.create(user=user, grade=0.94, proforma_grade=0.67, course_id=course1.id)
elif i < 11: elif i < 11:
CourseEnrollmentFactory.create(user=user, course_id=course2.id)
StudentGradebook.objects.create(user=user, grade=0.90, proforma_grade=0.91, course_id=course2.id) StudentGradebook.objects.create(user=user, grade=0.90, proforma_grade=0.91, course_id=course2.id)
else: else:
# Not started student - should be considered incomplete # Not started student - should be considered incomplete
CourseEnrollmentFactory.create(user=user, course_id=course2.id)
StudentGradebook.objects.create(user=user, grade=0.00, proforma_grade=0.00, course_id=course2.id) StudentGradebook.objects.create(user=user, grade=0.00, proforma_grade=0.00, course_id=course2.id)
data = { data = {
......
...@@ -102,6 +102,13 @@ def strip_time(dt): ...@@ -102,6 +102,13 @@ def strip_time(dt):
return datetime.datetime(dt.year, dt.month, dt.day, tzinfo=tzinfo) return datetime.datetime(dt.year, dt.month, dt.day, tzinfo=tzinfo)
def to_mysql_datetime(dt):
"""
convert python datetime to mysql compatible datetime
"""
return datetime.datetime.strftime(dt, '%Y-%m-%d %H:%M:%S')
def parse_datetime(date_val, defaultdt=None): def parse_datetime(date_val, defaultdt=None):
""" """
Parses datetime value from string Parses datetime value from string
...@@ -169,7 +176,9 @@ def get_time_series_data(queryset, start, end, interval='days', date_field='crea ...@@ -169,7 +176,9 @@ def get_time_series_data(queryset, start, end, interval='days', date_field='crea
} }
} }
interval_sql = sql[engine][interval] interval_sql = sql[engine][interval]
where_clause = '{} BETWEEN "{}" AND "{}"'.format(date_field, start, end) where_clause = '{} BETWEEN "{}" AND "{}"'.format(date_field,
to_mysql_datetime(start) if engine == 'mysql' else start,
to_mysql_datetime(end) if engine == 'mysql' else end)
aggregate_data = queryset.extra(select={'d': interval_sql}, where=[where_clause]).order_by().values('d').\ aggregate_data = queryset.extra(select={'d': interval_sql}, where=[where_clause]).order_by().values('d').\
annotate(agg=aggregate) annotate(agg=aggregate)
......
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