From 566a5254e19b4f92cee60afd7726f687abd57990 Mon Sep 17 00:00:00 2001 From: Jonathan Weth <git@jonathanweth.de> Date: Sun, 15 Nov 2020 11:25:00 +0100 Subject: [PATCH] Solve lint issues and reactivate lint CI job --- .gitlab-ci.yml | 2 ++ aleksis/apps/alsijil/forms.py | 3 ++- aleksis/apps/alsijil/model_extensions.py | 4 ++-- aleksis/apps/alsijil/models.py | 2 -- aleksis/apps/alsijil/preferences.py | 6 ++++-- aleksis/apps/alsijil/rules.py | 1 - aleksis/apps/alsijil/util/predicates.py | 25 ++++-------------------- aleksis/apps/alsijil/views.py | 10 +++++----- 8 files changed, 19 insertions(+), 34 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6a044637f..955750958 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,6 +1,8 @@ include: - project: "AlekSIS/official/AlekSIS" file: /ci/general.yml + - project: "AlekSIS/official/AlekSIS" + file: /ci/test.yml - project: "AlekSIS/official/AlekSIS" file: /ci/build_dist.yml - project: "AlekSIS/official/AlekSIS" diff --git a/aleksis/apps/alsijil/forms.py b/aleksis/apps/alsijil/forms.py index 6024b8581..08638432e 100644 --- a/aleksis/apps/alsijil/forms.py +++ b/aleksis/apps/alsijil/forms.py @@ -106,7 +106,8 @@ class SelectForm(forms.Form): # Filter selectable teachers by permissions if not check_global_permission(self.request.user, "alsijil.view_week"): - # If the user hasn't the global permission, the user is only allowed to see his own person + # If the user hasn't the global permission, + # the user is only allowed to see his own person teacher_qs = teacher_qs.filter(pk=person.pk) self.fields["teacher"].queryset = teacher_qs diff --git a/aleksis/apps/alsijil/model_extensions.py b/aleksis/apps/alsijil/model_extensions.py index 0828272f1..452de0fcb 100644 --- a/aleksis/apps/alsijil/model_extensions.py +++ b/aleksis/apps/alsijil/model_extensions.py @@ -357,7 +357,7 @@ def generate_person_list_with_class_register_statistics( "personal_notes", filter=Q( personal_notes__extra_marks=extra_mark, - personal_notes__lesson_period__lesson__validity__school_term=self.school_term, + personal_notes__lesson_period__lesson__validity__school_term=self.school_term, # noqa ) & ( Q(personal_notes__lesson_period__lesson__groups=self) @@ -377,7 +377,7 @@ def generate_person_list_with_class_register_statistics( filter=Q( personal_notes__absent=True, personal_notes__excuse_type=excuse_type, - personal_notes__lesson_period__lesson__validity__school_term=self.school_term, + personal_notes__lesson_period__lesson__validity__school_term=self.school_term, # noqa ) & ( Q(personal_notes__lesson_period__lesson__groups=self) diff --git a/aleksis/apps/alsijil/models.py b/aleksis/apps/alsijil/models.py index e2f234a59..e64bac1af 100644 --- a/aleksis/apps/alsijil/models.py +++ b/aleksis/apps/alsijil/models.py @@ -1,9 +1,7 @@ from django.db import models from django.utils.formats import date_format -from django.utils.functional import classproperty from django.utils.translation import gettext_lazy as _ -from cache_memoize import cache_memoize from calendarweek import CalendarWeek from aleksis.apps.alsijil.managers import PersonalNoteManager diff --git a/aleksis/apps/alsijil/preferences.py b/aleksis/apps/alsijil/preferences.py index d5552c5e0..be597c9e5 100644 --- a/aleksis/apps/alsijil/preferences.py +++ b/aleksis/apps/alsijil/preferences.py @@ -40,7 +40,8 @@ class CarryOverDataToNextPeriods(BooleanPreference): name = "carry_over" default = True verbose_name = _( - "Carry over data from first lesson period to the following lesson periods in lessons over multiple periods" + "Carry over data from first lesson period to the " + "following lesson periods in lessons over multiple periods" ) help_text = _( "This will carry over data only if the data in the following periods are empty." @@ -53,7 +54,8 @@ class AllowOpenPeriodsOnSameDay(BooleanPreference): name = "open_periods_same_day" default = False verbose_name = _( - "Allow teachers to open lesson periods on the same day and not just at the beginning of the period" + "Allow teachers to open lesson periods on the " + "same day and not just at the beginning of the period" ) help_text = _( "Lessons in the past are not affected by this setting, you can open them whenever you want." diff --git a/aleksis/apps/alsijil/rules.py b/aleksis/apps/alsijil/rules.py index 23c22cbe3..126ceea41 100644 --- a/aleksis/apps/alsijil/rules.py +++ b/aleksis/apps/alsijil/rules.py @@ -9,7 +9,6 @@ from aleksis.core.util.predicates import ( ) from .util.predicates import ( - has_any_object_absence, has_lesson_group_object_perm, has_person_group_object_perm, has_personal_note_group_perm, diff --git a/aleksis/apps/alsijil/util/predicates.py b/aleksis/apps/alsijil/util/predicates.py index 4bdd2a34c..43889191b 100644 --- a/aleksis/apps/alsijil/util/predicates.py +++ b/aleksis/apps/alsijil/util/predicates.py @@ -3,13 +3,11 @@ from typing import Any, Union from django.contrib.auth.models import Permission, User from guardian.models import UserObjectPermission -from guardian.shortcuts import get_objects_for_user from rules import predicate from aleksis.apps.chronos.models import LessonPeriod from aleksis.core.models import Group, Person -from aleksis.core.util.core_helpers import get_content_type_by_perm, get_site_preferences -from aleksis.core.util.predicates import check_object_permission +from aleksis.core.util.core_helpers import get_content_type_by_perm from ..models import PersonalNote @@ -173,7 +171,7 @@ def has_lesson_group_object_perm(perm: str): def has_personal_note_group_perm(perm: str): - """Predicate builder for permissions on personal notes + """Predicate builder for permissions on personal notes. Checks whether a user has a permission on any group of a person of a PersonalNote. """ @@ -200,7 +198,7 @@ def has_personal_note_group_perm(perm: str): @predicate def is_own_personal_note(user: User, obj: PersonalNote) -> bool: - """Predicate for users referred to in a personal note + """Predicate for users referred to in a personal note. Checks whether the user referred to in a PersonalNote is the active user. """ @@ -233,7 +231,7 @@ def is_personal_note_lesson_teacher(user: User, obj: PersonalNote) -> bool: @predicate def is_personal_note_lesson_parent_group_owner(user: User, obj: PersonalNote) -> bool: """ - Predicate for parent group owners of a lesson referred to in the lesson period of a personal note. + Predicate for parent group owners of a lesson referred to in the lesson of a personal note. Checks whether the person linked to the user is the owner of any parent groups of any groups of the given LessonPeriod lesson of the given PersonalNote. @@ -247,21 +245,6 @@ def is_personal_note_lesson_parent_group_owner(user: User, obj: PersonalNote) -> return False -@predicate -def has_any_object_absence(user: User) -> bool: - """ - Predicate which builds a query with all the persons the given users is allowed to register an absence for. - """ - if Person.objects.filter(member_of__owners=user.person).exists(): - return True - if get_objects_for_user(user, "core.register_absence_person", Person).exists(): - return True - if Person.objects.filter( - member_of__in=get_objects_for_user(user, "core.register_absence_group", Group) - ).exists(): - return True - - @predicate def is_teacher(user: User, obj: Person) -> bool: """Predicate which checks if the provided object is a teacher.""" diff --git a/aleksis/apps/alsijil/views.py b/aleksis/apps/alsijil/views.py index a659b2e60..c07c85ed1 100644 --- a/aleksis/apps/alsijil/views.py +++ b/aleksis/apps/alsijil/views.py @@ -16,8 +16,7 @@ from reversion.views import RevisionMixin from rules.contrib.views import PermissionRequiredMixin, permission_required from aleksis.apps.chronos.managers import TimetableType -from aleksis.apps.chronos.models import LessonPeriod, LessonSubstitution, TimePeriod -from aleksis.apps.chronos.util.chronos_helpers import get_el_by_pk +from aleksis.apps.chronos.models import LessonPeriod, TimePeriod from aleksis.apps.chronos.util.date import get_weeks_for_year, week_weekday_to_date from aleksis.core.mixins import AdvancedCreateView, AdvancedDeleteView, AdvancedEditView from aleksis.core.models import Group, Person, SchoolTerm @@ -155,7 +154,8 @@ def lesson( messages.success(request, _("The personal notes have been saved.")) - # Regenerate form here to ensure that programmatically changed data will be shown correctly + # Regenerate form here to ensure that programmatically + # changed data will be shown correctly personal_note_formset = PersonalNoteFormSet( None, queryset=persons_qs, prefix="personal_notes" ) @@ -787,7 +787,7 @@ class ExtraMarkEditView(PermissionRequiredMixin, AdvancedEditView): class ExtraMarkDeleteView(PermissionRequiredMixin, RevisionMixin, AdvancedDeleteView): - """Delete view for extra marks""" + """Delete view for extra marks.""" model = ExtraMark permission_required = "alsijil.delete_extramark" @@ -828,7 +828,7 @@ class ExcuseTypeEditView(PermissionRequiredMixin, AdvancedEditView): class ExcuseTypeDeleteView(PermissionRequiredMixin, RevisionMixin, AdvancedDeleteView): - """Delete view for excuse types""" + """Delete view for excuse types.""" model = ExcuseType permission_required = "alsijil.delete_excusetype" -- GitLab