From 003f17ef23f5ed9fb87ef3ad14aaeeaa9173a703 Mon Sep 17 00:00:00 2001
From: Jonathan Weth <git@jonathanweth.de>
Date: Wed, 5 Aug 2020 12:26:02 +0200
Subject: [PATCH] Move append_if_all to util and add typing/docstring

---
 aleksis/apps/alsijil/util.py  | 9 +++++++++
 aleksis/apps/alsijil/views.py | 6 +-----
 2 files changed, 10 insertions(+), 5 deletions(-)
 create mode 100644 aleksis/apps/alsijil/util.py

diff --git a/aleksis/apps/alsijil/util.py b/aleksis/apps/alsijil/util.py
new file mode 100644
index 000000000..da3580592
--- /dev/null
+++ b/aleksis/apps/alsijil/util.py
@@ -0,0 +1,9 @@
+from typing import List
+
+
+def append_if_all(iterable: List, *args) -> List:
+    """Append args to a list if all args are true-like."""
+    if all(args):
+        for a in args:
+            iterable.append(a)
+    return iterable
diff --git a/aleksis/apps/alsijil/views.py b/aleksis/apps/alsijil/views.py
index b3fdbd7eb..f97509307 100644
--- a/aleksis/apps/alsijil/views.py
+++ b/aleksis/apps/alsijil/views.py
@@ -13,6 +13,7 @@ from django_tables2 import SingleTableView
 from reversion.views import RevisionMixin
 from rules.contrib.views import PermissionRequiredMixin
 
+from aleksis.apps.alsijil.util import append_if_all
 from aleksis.apps.chronos.managers import TimetableType
 from aleksis.apps.chronos.models import LessonPeriod
 from aleksis.apps.chronos.util.chronos_helpers import get_el_by_pk
@@ -294,11 +295,6 @@ def week_view(
         lesson_periods, key=lambda x: (x.period.weekday, x.period.period)
     )
 
-    def append_if_all(iterable, *args):
-        if all(args):
-            for a in args:
-                iterable.append(a)
-
     context["extra_marks"] = ExtraMark.objects.all()
     context["week"] = wanted_week
     context["weeks"] = get_weeks_for_year(year=wanted_week.year)
-- 
GitLab