From a65af4a0fec9f1b32fd8a7e5cf645f932d8772f8 Mon Sep 17 00:00:00 2001
From: Jonathan Weth <git@jonathanweth.de>
Date: Tue, 2 Jan 2024 13:59:07 +0100
Subject: [PATCH] Reformat and fix lint

---
 aleksis/apps/alsijil/data_checks.py           |  4 ++
 aleksis/apps/alsijil/forms.py                 |  4 +-
 aleksis/apps/alsijil/managers.py              |  5 +-
 aleksis/apps/alsijil/models.py                |  2 +-
 .../alsijil/static/css/alsijil/lesson.css     |  6 +-
 aleksis/apps/alsijil/util/predicates.py       | 15 ++---
 aleksis/apps/alsijil/views.py                 | 59 ++++++++-----------
 7 files changed, 46 insertions(+), 49 deletions(-)

diff --git a/aleksis/apps/alsijil/data_checks.py b/aleksis/apps/alsijil/data_checks.py
index cb056e8cb..87e703a0c 100644
--- a/aleksis/apps/alsijil/data_checks.py
+++ b/aleksis/apps/alsijil/data_checks.py
@@ -1,4 +1,5 @@
 import logging
+from typing import TYPE_CHECKING
 
 from django.db.models import F
 from django.db.models.query_utils import Q
@@ -6,6 +7,9 @@ from django.utils.translation import gettext as _
 
 from aleksis.core.data_checks import DataCheck, IgnoreSolveOption, SolveOption
 
+if TYPE_CHECKING:
+    from aleksis.core.models import DataCheckResult
+
 
 class DeleteRelatedObjectSolveOption(SolveOption):
     name = "delete"
diff --git a/aleksis/apps/alsijil/forms.py b/aleksis/apps/alsijil/forms.py
index 4ef9b4e24..35cdf3b70 100644
--- a/aleksis/apps/alsijil/forms.py
+++ b/aleksis/apps/alsijil/forms.py
@@ -56,7 +56,7 @@ class LessonDocumentationForm(forms.ModelForm):
             )
 
     def save(self, **kwargs):
-        lesson_documentation = super(LessonDocumentationForm, self).save(commit=True)
+        lesson_documentation = super().save(commit=True)
         if (
             get_site_preferences()["alsijil__allow_carry_over_same_week"]
             and self.cleaned_data["carry_over_week"]
@@ -396,7 +396,7 @@ class FilterRegisterObjectForm(forms.Form):
         for_person: bool = True,
         default_documentation: Optional[bool] = None,
         groups: Optional[Sequence[Group]] = None,
-        **kwargs
+        **kwargs,
     ):
         self.request = request
         person = self.request.user.person
diff --git a/aleksis/apps/alsijil/managers.py b/aleksis/apps/alsijil/managers.py
index c9e26fa77..76240edd6 100644
--- a/aleksis/apps/alsijil/managers.py
+++ b/aleksis/apps/alsijil/managers.py
@@ -1,5 +1,5 @@
 from datetime import date, datetime
-from typing import Optional, Sequence, Union
+from typing import TYPE_CHECKING, Optional, Sequence, Union
 
 from django.db.models import Case, ExpressionWrapper, F, Func, QuerySet, Value, When
 from django.db.models.fields import DateField
@@ -13,6 +13,9 @@ from calendarweek import CalendarWeek
 from aleksis.apps.chronos.managers import DateRangeQuerySetMixin
 from aleksis.core.managers import CurrentSiteManagerWithoutMigrations
 
+if TYPE_CHECKING:
+    from aleksis.core.models import Group
+
 
 class RegisterObjectRelatedQuerySet(QuerySet):
     """Common queryset for personal notes and lesson documentations with shared API."""
diff --git a/aleksis/apps/alsijil/models.py b/aleksis/apps/alsijil/models.py
index c9a964714..9ffe57c86 100644
--- a/aleksis/apps/alsijil/models.py
+++ b/aleksis/apps/alsijil/models.py
@@ -110,7 +110,7 @@ class RegisterObjectRelatedMixin(WeekRelatedMixin):
 
     @property
     def register_object(
-        self: Union["LessonDocumentation", "PersonalNote"]
+        self: Union["LessonDocumentation", "PersonalNote"],
     ) -> Union[LessonPeriod, Event, ExtraLesson]:
         """Get the object related to this lesson documentation or personal note."""
         if self.lesson_period:
diff --git a/aleksis/apps/alsijil/static/css/alsijil/lesson.css b/aleksis/apps/alsijil/static/css/alsijil/lesson.css
index 48937d33d..3ca0427a8 100644
--- a/aleksis/apps/alsijil/static/css/alsijil/lesson.css
+++ b/aleksis/apps/alsijil/static/css/alsijil/lesson.css
@@ -52,8 +52,10 @@
     transition: all 0.5s;
     margin: 0.5rem 0 1rem 0;
     background-color: #fff !important;
-    box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14),
-      0 3px 1px -2px rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2);
+    box-shadow:
+      0 2px 2px 0 rgba(0, 0, 0, 0.14),
+      0 3px 1px -2px rgba(0, 0, 0, 0.12),
+      0 1px 5px 0 rgba(0, 0, 0, 0.2);
     padding: 24px;
   }
   table.alsijil-table.horizontal-on-small tr:first-of-type {
diff --git a/aleksis/apps/alsijil/util/predicates.py b/aleksis/apps/alsijil/util/predicates.py
index d66ebb41d..c3a450ec9 100644
--- a/aleksis/apps/alsijil/util/predicates.py
+++ b/aleksis/apps/alsijil/util/predicates.py
@@ -82,9 +82,8 @@ def is_group_owner(user: User, obj: Union[Group, Person]) -> bool:
     Checks whether the person linked to the user is the owner of the given group.
     If there isn't provided a group, it will return `False`.
     """
-    if isinstance(obj, Group):
-        if user.person in obj.owners.all():
-            return True
+    if isinstance(obj, Group) and user.person in obj.owners.all():
+        return True
 
     return False
 
@@ -135,10 +134,7 @@ def has_person_group_object_perm(perm: str):
     @predicate(name)
     def fn(user: User, obj: Person) -> bool:
         groups = use_prefetched(obj, "member_of")
-        for group in groups:
-            if check_object_permission(user, perm, group, checker_obj=obj):
-                return True
-        return False
+        return any(check_object_permission(user, perm, group, checker_obj=obj) for group in groups)
 
     return fn
 
@@ -150,9 +146,8 @@ def is_group_member(user: User, obj: Union[Group, Person]) -> bool:
     Checks whether the person linked to the user is a member of the given group.
     If there isn't provided a group, it will return `False`.
     """
-    if isinstance(obj, Group):
-        if user.person in obj.members.all():
-            return True
+    if isinstance(obj, Group) and user.person in obj.members.all():
+        return True
 
     return False
 
diff --git a/aleksis/apps/alsijil/views.py b/aleksis/apps/alsijil/views.py
index 3a343c899..dd010383b 100644
--- a/aleksis/apps/alsijil/views.py
+++ b/aleksis/apps/alsijil/views.py
@@ -339,10 +339,7 @@ def week_view(
 ) -> HttpResponse:
     context = {}
 
-    if year and week:
-        wanted_week = CalendarWeek(year=year, week=week)
-    else:
-        wanted_week = CalendarWeek()
+    wanted_week = CalendarWeek(year=year, week=week) if year and week else CalendarWeek()
 
     instance = get_timetable_instance_by_pk(request, year, week, type_, id_)
 
@@ -416,23 +413,19 @@ def week_view(
     context["back_url"] = back_url
     select_form = SelectForm(request, request.POST or None, initial=initial)
 
-    if request.method == "POST":
-        if select_form.is_valid():
-            if "type_" not in select_form.cleaned_data:
-                return redirect("week_view_by_week", wanted_week.year, wanted_week.week)
-            else:
-                return redirect(
-                    "week_view_by_week",
-                    wanted_week.year,
-                    wanted_week.week,
-                    select_form.cleaned_data["type_"].value,
-                    select_form.cleaned_data["instance"].pk,
-                )
+    if request.method == "POST" and select_form.is_valid():
+        if "type_" not in select_form.cleaned_data:
+            return redirect("week_view_by_week", wanted_week.year, wanted_week.week)
+        else:
+            return redirect(
+                "week_view_by_week",
+                wanted_week.year,
+                wanted_week.week,
+                select_form.cleaned_data["type_"].value,
+                select_form.cleaned_data["instance"].pk,
+            )
 
-    if type_ == TimetableType.GROUP:
-        group = instance
-    else:
-        group = None
+    group = instance if type_ == TimetableType.GROUP else None
 
     # Group roles
     show_group_roles = (
@@ -608,7 +601,7 @@ def week_view(
             regrouped_objects[weekday].append(event_copy)
 
     # Sort register objects
-    for weekday in regrouped_objects.keys():
+    for weekday in regrouped_objects:
         to_sort = regrouped_objects[weekday]
         regrouped_objects[weekday] = sorted(to_sort, key=register_objects_sorter)
     context["regrouped_objects"] = regrouped_objects
@@ -865,14 +858,15 @@ def overview_person(request: HttpRequest, id_: Optional[int] = None) -> HttpResp
     context["excuse_types_not_absent"] = ExcuseType.objects.filter(count_as_absent=False)
 
     form = PersonOverviewForm(request, request.POST or None, queryset=allowed_personal_notes)
-    if request.method == "POST" and request.user.has_perm(
-        "alsijil.edit_person_overview_personalnote_rule", person
+    if (
+        request.method == "POST"
+        and request.user.has_perm("alsijil.edit_person_overview_personalnote_rule", person)
+        and form.is_valid()
     ):
-        if form.is_valid():
-            with reversion.create_revision():
-                reversion.set_user(request.user)
-                form.execute()
-            person.refresh_from_db()
+        with reversion.create_revision():
+            reversion.set_user(request.user)
+            form.execute()
+        person.refresh_from_db()
     context["action_form"] = form
 
     table = PersonalNoteTable(filtered_personal_notes)
@@ -886,7 +880,9 @@ def overview_person(request: HttpRequest, id_: Optional[int] = None) -> HttpResp
         stats = []
         for school_term in school_terms:
             stat = {}
-            personal_notes = PersonalNote.objects.filter(person=person,).filter(
+            personal_notes = PersonalNote.objects.filter(
+                person=person,
+            ).filter(
                 Q(lesson_period__lesson__validity__school_term=school_term)
                 | Q(extra_lesson__school_term=school_term)
                 | Q(event__school_term=school_term)
@@ -972,10 +968,7 @@ def overview_person(request: HttpRequest, id_: Optional[int] = None) -> HttpResp
 def register_absence(request: HttpRequest, id_: int = None) -> HttpResponse:
     context = {}
 
-    if id_:
-        person = get_object_or_404(Person, pk=id_)
-    else:
-        person = None
+    person = get_object_or_404(Person, pk=id_) if id_ else None
 
     register_absence_form = RegisterAbsenceForm(
         request, request.POST or None, initial={"person": person}
-- 
GitLab