Skip to content
Snippets Groups Projects
models.py 34.3 KiB
Newer Older
Tom Teichler's avatar
Tom Teichler committed
    week = models.IntegerField(verbose_name=_("Week"), default=CalendarWeek.current_week)
    year = models.IntegerField(verbose_name=_("Year"), default=get_current_year)
Tom Teichler's avatar
Tom Teichler committed
    period = models.ForeignKey(
Tom Teichler's avatar
Tom Teichler committed
        "TimePeriod", models.CASCADE, related_name="extra_lessons", verbose_name=_("Time period"),
Tom Teichler's avatar
Tom Teichler committed
    )
Tom Teichler's avatar
Tom Teichler committed
    subject = models.ForeignKey(
        "Subject",
        on_delete=models.CASCADE,
        related_name="extra_lessons",
        verbose_name=_("Subject"),
    )
    groups = models.ManyToManyField(
        "core.Group", related_name="extra_lessons", verbose_name=_("Groups")
    )
    teachers = models.ManyToManyField(
Tom Teichler's avatar
Tom Teichler committed
        "core.Person", related_name="extra_lessons_as_teacher", verbose_name=_("Teachers"),
Tom Teichler's avatar
Tom Teichler committed
    )
    room = models.ForeignKey(
Tom Teichler's avatar
Tom Teichler committed
        "Room", models.CASCADE, null=True, related_name="extra_lessons", verbose_name=_("Room"),
Tom Teichler's avatar
Tom Teichler committed
    )
Tom Teichler's avatar
Tom Teichler committed
    comment = models.CharField(verbose_name=_("Comment"), blank=True, null=True, max_length=255)

    def __str__(self):
        return f"{self.week}, {self.period}, {self.subject}"
    def get_groups(self) -> models.query.QuerySet:
        return self.groups

    def get_teachers(self) -> models.query.QuerySet:
    class Meta:
        verbose_name = _("Extra lesson")
        verbose_name_plural = _("Extra lessons")
class ChronosGlobalPermissions(ExtensibleModel):
    class Meta:
        managed = False
        permissions = (
            ("view_all_timetables", _("Can view all timetables")),
            ("view_timetable_overview", _("Can view timetable overview")),
            ("view_lessons_day", _("Can view all lessons per day")),
        )