From 34faf1b1ab92573a6c680369f04a165d6d553e6b Mon Sep 17 00:00:00 2001 From: Mariana Date: Wed, 2 Dec 2015 01:07:35 +0000 Subject: [PATCH] Release/due times no longer round to half hours. Changed 'forceRoundTime' to 'false' in BaseDateEditor Updated bok choy acceptance test 'studio.test_studio_outline.py:EditingSectionsTest.test_can_edit_subsections' to check times aren't rounded to the nearest half hour after saving Also added myself to AUTHORS --- AUTHORS | 1 + .../js/views/modals/course_outline_modals.js | 2 +- .../test/acceptance/pages/studio/overview.py | 49 +++++++++++++++++++ .../tests/studio/test_studio_outline.py | 8 +++ 4 files changed, 59 insertions(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index 732103653f..5e34d439d6 100644 --- a/AUTHORS +++ b/AUTHORS @@ -259,3 +259,4 @@ Afeef Janjua Jacek Bzdak Jillian Vogel Dan Powell +Mariana Araújo diff --git a/cms/static/js/views/modals/course_outline_modals.js b/cms/static/js/views/modals/course_outline_modals.js index fb7dc29604..db3286ec82 100644 --- a/cms/static/js/views/modals/course_outline_modals.js +++ b/cms/static/js/views/modals/course_outline_modals.js @@ -194,7 +194,7 @@ define(['jquery', 'backbone', 'underscore', 'gettext', 'js/views/baseview', this.$('input.date').datepicker({'dateFormat': 'm/d/yy'}); this.$('input.time').timepicker({ 'timeFormat' : 'H:i', - 'forceRoundTime': true + 'forceRoundTime': false }); if (this.model.get(this.fieldName)) { DateUtils.setDate( diff --git a/common/test/acceptance/pages/studio/overview.py b/common/test/acceptance/pages/studio/overview.py index f9aed853fe..675e76e56c 100644 --- a/common/test/acceptance/pages/studio/overview.py +++ b/common/test/acceptance/pages/studio/overview.py @@ -763,9 +763,21 @@ class CourseOutlineModal(object): def has_release_date(self): return self.find_css("#start_date").present + def has_release_time(self): + """ + Check if the input box for the release time exists in the subsection's settings window + """ + return self.find_css("#start_time").present + def has_due_date(self): return self.find_css("#due_date").present + def has_due_time(self): + """ + Check if the input box for the due time exists in the subsection's settings window + """ + return self.find_css("#due_time").present + def has_policy(self): return self.find_css("#grading_type").present @@ -790,6 +802,15 @@ class CourseOutlineModal(object): "{} is updated in modal.".format(property_name) ).fulfill() + def set_time(self, input_selector, time): + """ + Set `time` value to input pointed by `input_selector` + Not using the time picker to make sure it's not being rounded up + """ + + self.page.q(css=input_selector).fill(time) + self.page.q(css=input_selector).results[0].send_keys(Keys.ENTER) + @property def release_date(self): return self.find_css("#start_date").first.attrs('value')[0] @@ -801,6 +822,20 @@ class CourseOutlineModal(object): """ self.set_date('release_date', "#start_date", date) + @property + def release_time(self): + """ + Returns the current value of the release time. Default is u'00:00' + """ + return self.find_css("#start_time").first.attrs('value')[0] + + @release_time.setter + def release_time(self, time): + """ + Time is "HH:MM" string. + """ + self.set_time("#start_time", time) + @property def due_date(self): return self.find_css("#due_date").first.attrs('value')[0] @@ -812,6 +847,20 @@ class CourseOutlineModal(object): """ self.set_date('due_date', "#due_date", date) + @property + def due_time(self): + """ + Returns the current value of the release time. Default is u'' + """ + return self.find_css("#due_time").first.attrs('value')[0] + + @due_time.setter + def due_time(self, time): + """ + Time is "HH:MM" string. + """ + self.set_time("#due_time", time) + @property def policy(self): """ diff --git a/common/test/acceptance/tests/studio/test_studio_outline.py b/common/test/acceptance/tests/studio/test_studio_outline.py index 715bff1653..4d8cbc3288 100644 --- a/common/test/acceptance/tests/studio/test_studio_outline.py +++ b/common/test/acceptance/tests/studio/test_studio_outline.py @@ -372,22 +372,30 @@ class EditingSectionsTest(CourseOutlineTest): # Verify fields self.assertTrue(modal.has_release_date()) + self.assertTrue(modal.has_release_time()) self.assertTrue(modal.has_due_date()) + self.assertTrue(modal.has_due_time()) self.assertTrue(modal.has_policy()) # Verify initial values self.assertEqual(modal.release_date, u'1/1/1970') + self.assertEqual(modal.release_time, u'00:00') self.assertEqual(modal.due_date, u'') + self.assertEqual(modal.due_time, u'') self.assertEqual(modal.policy, u'Not Graded') # Set new values modal.release_date = '3/12/1972' + modal.release_time = '04:01' modal.due_date = '7/21/2014' + modal.due_time = '23:39' modal.policy = 'Lab' modal.save() self.assertIn(u'Released: Mar 12, 1972', subsection.release_date) + self.assertIn(u'04:01', subsection.release_date) self.assertIn(u'Due: Jul 21, 2014', subsection.due_date) + self.assertIn(u'23:39', subsection.due_date) self.assertIn(u'Lab', subsection.policy) def test_can_edit_section(self):