@@ -79,12 +79,13 @@ class SlotKind(models.Model):
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)
@@ -146,15 +147,19 @@ class Slot(models.Model):
(self.end_datetime - self.start_datetime).total_seconds() / 60)
@property
def rooms(self):
return Room.objects.filter(pk__in=self.slotroom_set.values("room"))
def __str__(self):
def save(self, *args, **kwargs):
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
class Meta:
ordering = ["day", "start", "end"]
verbose_name = _("slot")
verbose_name_plural = _("slots")