summaryrefslogtreecommitdiff
path: root/program/models.py
diff options
context:
space:
mode:
authorErnesto Rico-Schmidt <e.rico.schmidt@gmail.com>2011-04-25 13:01:00 (GMT)
committerErnesto Rico-Schmidt <e.rico.schmidt@gmail.com>2011-04-25 13:01:00 (GMT)
commitc9bbb322f456c3f12ef896384139839d3019bd82 (patch)
treea43664d6e28a87e518ae68a77f57c3f1a77cd093 /program/models.py
parentf073b806422ca292f8798cf29b3adfc73766d52b (diff)
simplified day and week views, use Program slot manager now, get_or_create_current is more robust now.
Diffstat (limited to 'program/models.py')
-rw-r--r--program/models.py18
1 files changed, 14 insertions, 4 deletions
diff --git a/program/models.py b/program/models.py
index 5f0f835..08ca76b 100644
--- a/program/models.py
+++ b/program/models.py
@@ -1,9 +1,9 @@
from django.contrib.auth.models import User
-from django.core.exceptions import ObjectDoesNotExist
+from django.core.exceptions import ObjectDoesNotExist, ValidationError
from django.db import models
from django.utils.translation import ugettext_lazy as _
-from datetime import date, datetime
+from datetime import date, datetime, time, timedelta
from dateutil.relativedelta import relativedelta
from dateutil.rrule import rrule
@@ -234,10 +234,20 @@ class TimeSlotManager(models.Manager):
until, tend = next.start.date(), next.start.time()
new_programslot = ProgramSlot(rrule=once, byweekday=today, show=default, dstart=dstart, tstart=tstart, tend=tend, until=until)
- new_programslot.save()
+ try:
+ new_programslot.validate_unique()
+ new_programslot.save()
+ except ValidationError:
+ pass
return new_programslot.timeslots.all()[0]
+ def get_day_timeslots(self, day):
+ today = datetime.combine(day, time(6,0))
+ tomorrow = today + timedelta(days=1)
+
+ return TimeSlot.objects.filter(start__range=(today, tomorrow))
+
class TimeSlot(models.Model):
programslot = models.ForeignKey(ProgramSlot, related_name='timeslots', verbose_name=_("Program slot"))
start = models.DateTimeField(_("Start time"), unique=True)
@@ -245,7 +255,7 @@ class TimeSlot(models.Model):
show = models.ForeignKey(Show, editable=False)
objects = TimeSlotManager()
-
+
class Meta:
ordering = ('start', 'end')
verbose_name = _("Time slot")