def test_start_time(self): # Setting any of the start times and saving changes the `start_time` field tz = timezone(settings.TIME_ZONE) d1 = tz.localize(datetime.datetime(2014, 1, 1, 13, 2, 0)) e = ElectionFactory(polling_start_time=d1) e = Election.objects.get(pk=e.pk) # The earliest time will be the work_start_time, which is on midnight, # 2 days before work_start = at_midnight(d1 - datetime.timedelta(days=2)) self.assertEqual(work_start, e.work_start_time) self.assertEqual(work_start, e.start_time) d3 = tz.localize(datetime.datetime(2013, 12, 31, 1, 1)) e.polling_start_time = d3 e.save() e = Election.objects.get(pk=e.pk) work_start = at_midnight(d3 - datetime.timedelta(days=2)) self.assertEqual(work_start, e.start_time)
def save(self, *args, **kwargs): """ Set start and end times to the earliest and latest timestamp fields that are set, or None. NOTE: Update this code when we add more time fields """ self.work_start_time = at_midnight(self.polling_start_time - timedelta(hours=48)) self.work_end_time = self.polling_end_time + timedelta(hours=16) self.start_time = min_non_none_datetime(self.work_start_time, self.polling_start_time) self.end_time = max_non_none_datetime(self.work_end_time, self.polling_end_time) super(Election, self).save(*args, **kwargs)
def save(self, *args, **kwargs): """ Set start and end times to the earliest and latest timestamp fields that are set, or None. NOTE: Update this code when we add more time fields """ self.work_start_time = at_midnight(self.polling_start_time - timedelta(hours=48)) self.work_end_time = self.polling_end_time + timedelta(hours=16) self.start_time = min_non_none_datetime( self.work_start_time, self.polling_start_time, ) self.end_time = max_non_none_datetime( self.work_end_time, self.polling_end_time, ) super(Election, self).save(*args, **kwargs)