Skip to content
Snippets Groups Projects
models.py 36.4 KiB
Newer Older
            # If no student or teacher
            return None


Tom Teichler's avatar
Tom Teichler committed
class Event(ExtensibleModel):
    label_ = "event"

    objects = models.Manager.from_queryset(EventQuerySet)()

    title = models.CharField(verbose_name=_("Title"), max_length=255, blank=True, null=True)

Tom Teichler's avatar
Tom Teichler committed
    date_start = models.DateField(verbose_name=_("Effective start date of event"), null=True)
    date_end = models.DateField(verbose_name=_("Effective end date of event"), null=True)
    period_from = models.ForeignKey("TimePeriod", on_delete=models.CASCADE, verbose_name=_("Effective start period of event"), related_name="+")
    period_to = models.ForeignKey("TimePeriod", on_delete=models.CASCADE, verbose_name=_("Effective end period of event"), related_name="+")

Tom Teichler's avatar
Tom Teichler committed
    groups = models.ManyToManyField("core.Group", related_name="events", verbose_name=_("Groups"))
    rooms = models.ManyToManyField("Room", related_name="events", verbose_name=_("Rooms"))
    teachers = models.ManyToManyField("core.Person", related_name="events", verbose_name=_("Teachers"))
    def __str__(self):
        if self.title:
            return self.title
        else:
            return _("Event {}".format(self.pk))

Tom Teichler's avatar
Tom Teichler committed
    class Meta:
Tom Teichler's avatar
Tom Teichler committed
        ordering = ["date_start"]
        indexes = [models.Index(fields=["period_from", "period_to", "date_start", "date_end"])]
Tom Teichler's avatar
Tom Teichler committed
        verbose_name = _("Event")
Jonathan Weth's avatar
Jonathan Weth committed
        verbose_name_plural = _("Events")