From 14be20067e1dc52cfd9f49ff3420f74923d9823c Mon Sep 17 00:00:00 2001 From: Hangzhi Yu <hangzhi@protonmail.com> Date: Sun, 22 Dec 2024 01:42:45 +0100 Subject: [PATCH] Use enum for lesson event alarm status choices --- aleksis/apps/chronos/models.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/aleksis/apps/chronos/models.py b/aleksis/apps/chronos/models.py index bff8a05e..95589c4f 100644 --- a/aleksis/apps/chronos/models.py +++ b/aleksis/apps/chronos/models.py @@ -509,10 +509,13 @@ def create_alarm_on_teachers_m2m_changed( class LessonEventAlarm(CalendarAlarm): """Alarm model for lesson events.""" - STATUS_CHOICES = {"c": _("Created"), "e": _("Edited"), "d": _("Deleted")} + class StatusChoices(models.TextChoices): + CREATED = "C", _("Created") + EDITED = "E", _("Edited") + DELETED = "D", _("Deleted") status = models.CharField( - verbose_name=_("Status"), max_length=1, choices=STATUS_CHOICES, default="c" + verbose_name=_("Status"), max_length=1, choices=StatusChoices, default=StatusChoices.CREATED ) def value_description(self, request: HttpRequest | None = None) -> str: @@ -542,14 +545,14 @@ class LessonEventAlarm(CalendarAlarm): { "event": self.event, "event_title": LessonEvent.value_title(self.event, request), - "status": self.STATUS_CHOICES[self.status].lower(), + "status": StatusChoices(self.status).label.lower(), }, ) def value_notification_description(self, request: HttpRequest | None = None) -> str: return render_to_string( "chronos/lesson_event_notification_description.txt", - {"event": self.event, "status": self.STATUS_CHOICES[self.status].lower()}, + {"event": self.event, "status": StatusChoices(self.status).label.lower()}, ) def value_notification_icon(self, request: HttpRequest | None = None) -> str: -- GitLab