@@ -73,24 +73,25 @@ class SlotKind(models.Model):
def __str__(self):
return self.label
class Meta:
verbose_name = _("Slot kind")
verbose_name_plural = _("Slot kinds")
@python_2_unicode_compatible
class Slot(models.Model):
name = models.CharField(max_length=100, editable=False)
day = models.ForeignKey(Day, verbose_name=_("Day"))
kind = models.ForeignKey(SlotKind, verbose_name=_("Kind"))
start = models.TimeField(verbose_name=_("Start"))
end = models.TimeField(verbose_name=_("End"))
content_override = models.TextField(blank=True, verbose_name=_("Content override"))
content_override_html = models.TextField(blank=True)
def save(self, *args, **kwargs):
self.content_override_html = parse(self.content_override)
return super(Slot, self).save(*args, **kwargs)
def assign(self, content):
@@ -140,27 +141,31 @@ class Slot(models.Model):
self.end.hour,
self.end.minute)
@property
def length_in_minutes(self):
return int(
(self.end_datetime - self.start_datetime).total_seconds() / 60)
def rooms(self):
return Room.objects.filter(pk__in=self.slotroom_set.values("room"))
roomlist = ' '.join(map(lambda r: r.__unicode__(), self.rooms))
return "%s %s (%s - %s) %s" % (self.day, self.kind, self.start, self.end, roomlist)
self.name = "%s %s (%s - %s) %s" % (self.day, self.kind, self.start, self.end, roomlist)
super(Slot, self).save(*args, **kwargs)
return self.name
ordering = ["day", "start", "end"]
verbose_name = _("slot")
verbose_name_plural = _("slots")
class SlotRoom(models.Model):
"""
Links a slot with a room.