Skip to content
Snippets Groups Projects
Commit 91cabf3f authored by Ernesto Rico Schmidt's avatar Ernesto Rico Schmidt
Browse files

fixed time slot generation, tweaked unicode representation of program slots.

parent e1d853c4
No related branches found
No related tags found
No related merge requests found
...@@ -167,8 +167,9 @@ class ProgramSlot(models.Model): ...@@ -167,8 +167,9 @@ class ProgramSlot(models.Model):
tstart = self.tstart.strftime('%H:%M') tstart = self.tstart.strftime('%H:%M')
until = self.until.strftime('%d. %b %Y') until = self.until.strftime('%d. %b %Y')
if self.rrule.freq == 0:
return u'%s - %s, %s - %s' % (tstart, tend, dstart, until)
if self.rrule.freq == 3: if self.rrule.freq == 3:
# don't include weekday if frequency is daily
return u'%s, %s - %s, %s - %s' % (self.rrule, tstart, tend, dstart, until) return u'%s, %s - %s, %s - %s' % (self.rrule, tstart, tend, dstart, until)
else: else:
return u'%s, %s, %s - %s, %s - %s' % (self.rrule, weekday, tstart, tend, dstart, until) return u'%s, %s, %s - %s, %s - %s' % (self.rrule, weekday, tstart, tend, dstart, until)
...@@ -177,36 +178,32 @@ class ProgramSlot(models.Model): ...@@ -177,36 +178,32 @@ class ProgramSlot(models.Model):
if not self.pk: if not self.pk:
super(ProgramSlot, self).save(*args, **kwargs) super(ProgramSlot, self).save(*args, **kwargs)
if self.tend < self.tstart: if self.rrule.freq == 0:
byweekday = self.byweekday + 1 if self.byweekday < 6 else 0 byweekday_start = None
byweekday_end = None
elif self.rrule.freq == 3:
byweekday_start = (0, 1, 2, 3, 4, 5, 6)
byweekday_end = (0, 1, 2, 3, 4, 5, 6)
else: else:
byweekday = self.byweekday byweekday_start = self.byweekday
if self.rrule.freq == 3: if self.tend < self.tstart:
# don't include byweekday in the recurrence rule if the frequency is daily byweekday_end = self.byweekday + 1 if self.byweekday < 6 else 0
starts = list(rrule(freq=self.rrule.freq, else:
dtstart=datetime.combine(self.dstart, self.tstart), byweekday_end = self.byweekday
interval=self.rrule.interval,
until=self.until+relativedelta(days=+1), starts = list(rrule(freq=self.rrule.freq,
bysetpos=self.rrule.bysetpos)) dtstart=datetime.combine(self.dstart, self.tstart),
ends = list(rrule(freq=self.rrule.freq, interval=self.rrule.interval,
dtstart=datetime.combine(self.dstart, self.tend), until=self.until+relativedelta(days=+1),
interval=self.rrule.interval, bysetpos=self.rrule.bysetpos,
until=self.until+relativedelta(days=+1), byweekday=byweekday_start))
bysetpos=self.rrule.bysetpos)) ends = list(rrule(freq=self.rrule.freq,
else: dtstart=datetime.combine(self.dstart, self.tend),
starts = list(rrule(freq=self.rrule.freq, interval=self.rrule.interval,
dtstart=datetime.combine(self.dstart, self.tstart), until=self.until+relativedelta(days=+1),
interval=self.rrule.interval, bysetpos=self.rrule.bysetpos,
until=self.until+relativedelta(days=+1), byweekday=byweekday_end))
bysetpos=self.rrule.bysetpos,
byweekday=self.byweekday))
ends = list(rrule(freq=self.rrule.freq,
dtstart=datetime.combine(self.dstart, self.tend),
interval=self.rrule.interval,
until=self.until+relativedelta(days=+1),
bysetpos=self.rrule.bysetpos,
byweekday=byweekday))
for k in range(len(starts)): for k in range(len(starts)):
timeslot = TimeSlot(programslot=self, start=starts[k], end=ends[k]) timeslot = TimeSlot(programslot=self, start=starts[k], end=ends[k])
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment