diff --git a/program/models.py b/program/models.py index 0efbb9985c8f0595e14c90e48dd4c58970e4cf04..ecf3eb593f497f9bc8a588fef31803aa50688d37 100644 --- a/program/models.py +++ b/program/models.py @@ -415,9 +415,8 @@ class Schedule(models.Model): starts.append(timezone.make_aware(datetime.combine(schedule.dstart, schedule.tstart))) ends.append(timezone.make_aware(datetime.combine(dend, schedule.tend))) else: - starts = list(rrule(freq=schedule.rrule.freq, - dtstart=timezone.make_aware(datetime.combine(schedule.dstart, schedule.tstart)), + dtstart=datetime.combine(schedule.dstart, schedule.tstart), interval=schedule.rrule.interval, until=schedule.until + relativedelta(days=+1), bysetpos=schedule.rrule.bysetpos, @@ -425,7 +424,7 @@ class Schedule(models.Model): byweekno=byweekno)) ends = list(rrule(freq=schedule.rrule.freq, - dtstart=timezone.make_aware(datetime.combine(dend, schedule.tend)), + dtstart=datetime.combine(dend, schedule.tend), interval=schedule.rrule.interval, until=schedule.until + relativedelta(days=+1), bysetpos=schedule.rrule.bysetpos, @@ -439,7 +438,7 @@ class Schedule(models.Model): # produces wrong end dates if the 1st Tuesday is before the 1st Monday # In this case we take the next day instead of rrule's calculated end if starts[k] > ends[k]: - ends[k] = timezone.make_aware(datetime.combine(starts[k] + relativedelta(days=+1), schedule.tend)) + ends[k] = datetime.combine(starts[k] + relativedelta(days=+1), schedule.tend) ''' Add a number of days to the generated dates? @@ -477,8 +476,8 @@ class Schedule(models.Model): if ends[k].date() > schedule.until: schedule.until = ends[k].date() - - timeslots.append(TimeSlot(schedule=schedule, start=starts[k], end=ends[k]).generate()) + timeslots.append( + TimeSlot(schedule=schedule, start=timezone.make_aware(starts[k]), end=timezone.make_aware(ends[k])).generate()) return timeslots