From edfd5296f3831e96b3cd403b60bf115e12078906 Mon Sep 17 00:00:00 2001
From: Jonathan Weth <git@jonathanweth.de>
Date: Thu, 19 Mar 2020 11:40:54 +0100
Subject: [PATCH] Move extensions for announcement model to model_extensions.py

---
 aleksis/apps/chronos/model_extensions.py | 13 ++++++++++++-
 aleksis/apps/chronos/models.py           | 11 +----------
 2 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/aleksis/apps/chronos/model_extensions.py b/aleksis/apps/chronos/model_extensions.py
index 67260090..31bdbab5 100644
--- a/aleksis/apps/chronos/model_extensions.py
+++ b/aleksis/apps/chronos/model_extensions.py
@@ -1,6 +1,9 @@
 from typing import Optional, Union
 
-from aleksis.core.models import Person, Group
+from django.utils.translation import gettext_lazy as _
+from jsonstore import BooleanField
+
+from aleksis.core.models import Person, Group, Announcement
 
 from .models import Lesson, LessonPeriod
 
@@ -81,3 +84,11 @@ def lesson_periods_as_teacher(self):
     """
 
     return LessonPeriod.objects.filter(lesson__teachers=self)
+
+
+def for_timetables(cls):
+    return cls.objects.filter(show_in_timetables=True)
+
+
+Announcement.class_method(for_timetables)
+Announcement.field(show_in_timetables=BooleanField(verbose_name=_("Show announcement in timetable views?")))
diff --git a/aleksis/apps/chronos/models.py b/aleksis/apps/chronos/models.py
index 0d47ee1e..55c5f7c4 100644
--- a/aleksis/apps/chronos/models.py
+++ b/aleksis/apps/chronos/models.py
@@ -19,10 +19,9 @@ from django.utils.translation import ugettext_lazy as _
 
 from calendarweek.django import CalendarWeek, i18n_day_names_lazy, i18n_day_abbrs_lazy
 from django_global_request.middleware import get_request
-from jsonstore import BooleanField
 
 from aleksis.core.mixins import ExtensibleModel
-from aleksis.core.models import Group, Person, DashboardWidget, Announcement
+from aleksis.core.models import Group, Person, DashboardWidget
 
 from aleksis.apps.chronos.util.date import week_weekday_from_date
 from aleksis.core.util.core_helpers import has_person
@@ -553,14 +552,6 @@ class LessonPeriod(ExtensibleModel):
         indexes = [models.Index(fields=["lesson", "period"])]
 
 
-def for_timetables(cls):
-    return cls.objects.filter(show_in_timetables=True)
-
-
-Announcement.class_method(for_timetables)
-Announcement.field(show_in_timetables=BooleanField(verbose_name=_("Show announcement in timetable views?")))
-
-
 class TimetableWidget(DashboardWidget):
     template = "chronos/widget.html"
 
-- 
GitLab