From 07b1e0fdf662539fb52001d8a74f196a8fa9bcff Mon Sep 17 00:00:00 2001 From: Tom Teichler <tom.teichler@teckids.org> Date: Sat, 7 Mar 2020 14:50:56 +0100 Subject: [PATCH] Add models fo AbsenceReason, Absence, Exam and Holidays. Advances #58 --- aleksis/apps/chronos/models.py | 49 ++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/aleksis/apps/chronos/models.py b/aleksis/apps/chronos/models.py index 5a6eb38f..99ba380c 100644 --- a/aleksis/apps/chronos/models.py +++ b/aleksis/apps/chronos/models.py @@ -581,3 +581,52 @@ class TimetableWidget(DashboardWidget): class Meta: proxy = True verbose_name = _("Timetable widget") + + +class AbsenceReason(ExtensibleModel): + title = models.CharField(verbose_name=_("Title")) + description = models.TextField(verbose_name=_("Description")) + + class Meta: + verbose_name = _("Absence reason") + +class Absence(ExtensibleModel): + fk_reason = models.ForeignKey("AbsenceReason", on_delete=models.CASCADE, related_name="reason") + fk_person = models.ManyToManyField("core.Person", related_name="fk_person") + + datefrom = models.DateField(verbose_name=_("Effective start date of absence"), null=True) + dateto = models.DateField(verbose_name=_("Effective end date of absence"), null=True) + periodfrom = models.IntegerField(verbose_name=_("Effective start period of absence"), null=True) + periodto = models.IntegerField(verbose_name=_("Effective end period of absence"), null=True) + comment = models.TextField(verbose_name=_("Comment")) + + class Meta: + ordering = ["datefrom"] + indexes = [models.Index(fields=["datefrom", "dateto"])] + verbose_name = _("Absence") + + +class Exam(ExtensibleModel): + fk_lesson = models.ForeignKey("Lesson", on_delete=models.CASCADE, related_name="lesson") + + date = models.DateField(verbose_name=_("Date of exam"), null=True) + periodfrom = models.IntegerField(verbose_name=_("Effective start period of exam"), null=True) + periodto = models.IntegerField(verbose_name=_("Effective end period of exam"), null=True) + title = models.CharField(verbose_name=_("Title")) + comment = models.TextField(verbose_name=_("Comment")) + + class Meta: + ordering = ["date"] + indexes = [models.Index(fields=["periodfrom", "periodto"])] + verbose_name = _("Exam") + + +class Holiday(ExtensibleModel): + datefrom = models.DateField(verbose_name=_("Effective start date of holidays"), null=True) + dateto = models.DateField(verbose_name=_("Effective end date of holidays"), null=True) + comments = models.TextField(verbose_name=_("Comments")) + + class Meta: + ordering = ["datefrom"] + indexes = [models.Index(fields=["datefrom", "dateto"])] + verbose_name = _("Holiday") -- GitLab