From 9fe32706accb85643f7391fd8c12145547b9b072 Mon Sep 17 00:00:00 2001 From: Tom Teichler <tom.teichler@teckids.org> Date: Sat, 2 May 2020 19:21:12 +0200 Subject: [PATCH] [Reformat] flake8 compatible --- aleksis/core/__init__.py | 2 -- aleksis/core/apps.py | 6 ++++-- aleksis/core/checks.py | 17 +++++++++++++---- aleksis/core/forms.py | 5 +---- aleksis/core/mixins.py | 2 +- aleksis/core/models.py | 9 ++++++--- aleksis/core/preferences.py | 4 ---- aleksis/core/settings.py | 8 ++++---- aleksis/core/tasks.py | 1 + aleksis/core/urls.py | 1 - aleksis/core/util/apps.py | 6 +++++- aleksis/core/util/core_helpers.py | 3 ++- aleksis/core/util/middlewares.py | 2 -- aleksis/core/util/notifications.py | 3 ++- aleksis/core/util/predicates.py | 8 ++++++-- aleksis/core/views.py | 9 +++------ 16 files changed, 48 insertions(+), 38 deletions(-) diff --git a/aleksis/core/__init__.py b/aleksis/core/__init__.py index 802595844..21a49f078 100644 --- a/aleksis/core/__init__.py +++ b/aleksis/core/__init__.py @@ -1,5 +1,3 @@ -from django.utils.translation import gettext_lazy as _ - import pkg_resources try: diff --git a/aleksis/core/apps.py b/aleksis/core/apps.py index 921d12ff7..93b383001 100644 --- a/aleksis/core/apps.py +++ b/aleksis/core/apps.py @@ -1,9 +1,8 @@ from typing import Any, List, Optional, Tuple import django.apps -from django.contrib.auth.signals import user_logged_in from django.http import HttpRequest -from django.utils.translation import gettext_lazy as _ +from django.shortcuts import get_user_model from dynamic_preferences.registries import preference_models @@ -17,6 +16,9 @@ from .util.core_helpers import has_person from .util.sass_helpers import clean_scss +User = get_user_model() + + class CoreConfig(AppConfig): name = "aleksis.core" verbose_name = "AlekSIS — The Free School Information System" diff --git a/aleksis/core/checks.py b/aleksis/core/checks.py index 19c8b77ba..c1a3dfb24 100644 --- a/aleksis/core/checks.py +++ b/aleksis/core/checks.py @@ -22,8 +22,12 @@ def check_app_configs_base_class( if not isinstance(app_config, AppConfig): results.append( Warning( - f"App config {app_config.name} does not derive from aleksis.core.util.apps.AppConfig.", - hint="Ensure the app uses the correct base class for all registry functionality to work.", + f"App config {app_config.name} does not derive" + "from aleksis.core.util.apps.AppConfig.", + hint=( + "Ensure the app uses the correct base class for all" + "registry functionality to work." + ), obj=app_config, id="aleksis.core.W001", ) @@ -48,8 +52,13 @@ def check_app_models_base_class( if ExtensibleModel not in model.__mro__ and PureDjangoModel not in model.__mro__: results.append( Warning( - f"Model {model._meta.object_name} in app config {app_config.name} does not derive from aleksis.core.mixins.ExtensibleModel.", - hint="Ensure all models in AlekSIS use ExtensibleModel as base. If your deviation is intentional, you can add the PureDjangoModel mixin instead to silence this warning.", + f"Model {model._meta.object_name} in app config {app_config.name} does" + "not derive from aleksis.core.mixins.ExtensibleModel.", + hint=( + "Ensure all models in AlekSIS use ExtensibleModel as base." + "If your deviation is intentional, you can add the PureDjangoModel" + "mixin instead to silence this warning." + ), obj=model, id="aleksis.core.W002", ) diff --git a/aleksis/core/forms.py b/aleksis/core/forms.py index a7989eb48..09f57a249 100644 --- a/aleksis/core/forms.py +++ b/aleksis/core/forms.py @@ -1,11 +1,8 @@ from datetime import datetime, time -from typing import Optional from django import forms from django.contrib.auth import get_user_model -from django.contrib.contenttypes.models import ContentType from django.core.exceptions import ValidationError -from django.utils import timezone from django.utils.translation import gettext_lazy as _ from django_select2.forms import ModelSelect2MultipleWidget, Select2Widget @@ -13,7 +10,7 @@ from dynamic_preferences.forms import PreferenceForm from material import Fieldset, Layout, Row from .mixins import ExtensibleForm -from .models import Announcement, AnnouncementRecipient, Group, Person +from .models import Announcement, Group, Person from .registries import ( group_preferences_registry, person_preferences_registry, diff --git a/aleksis/core/mixins.py b/aleksis/core/mixins.py index 35fb855c6..b7401b613 100644 --- a/aleksis/core/mixins.py +++ b/aleksis/core/mixins.py @@ -17,7 +17,7 @@ from rules.contrib.admin import ObjectPermissionsModelAdmin @reversion.register() -class ExtensibleModel(CRUDMixin): +class ExtensibleModel(): """ Base model for all objects in AlekSIS apps This base model ensures all objects in AlekSIS apps fulfill the diff --git a/aleksis/core/models.py b/aleksis/core/models.py index 542a40255..bf92167d1 100644 --- a/aleksis/core/models.py +++ b/aleksis/core/models.py @@ -474,7 +474,9 @@ class Announcement(ExtensibleModel): return persons def get_recipients_for_model(self, obj: Union[models.Model]) -> Sequence[models.Model]: - """ Get all recipients for this announcement with a special content type (provided through model) """ + """ Get all recipients for this announcement + with a special content type (provided through model) + """ ct = ContentType.objects.get_for_model(obj) return [r.recipient for r in self.recipients.filter(content_type=ct)] @@ -533,8 +535,9 @@ class DashboardWidget(PolymorphicModel, PureDjangoModel): If your widget does not add any database fields, you should mark it as a proxy model. - You can provide a Media meta class with custom JS and CSS files which will be added to html head. - For further information on media definition see https://docs.djangoproject.com/en/3.0/topics/forms/media/ + You can provide a Media meta class with custom JS and CSS files which + will be added to html head. For further information on media definition + see https://docs.djangoproject.com/en/3.0/topics/forms/media/ Example:: diff --git a/aleksis/core/preferences.py b/aleksis/core/preferences.py index c36387582..56e7b48d5 100644 --- a/aleksis/core/preferences.py +++ b/aleksis/core/preferences.py @@ -2,18 +2,14 @@ from django.conf import settings from django.forms import EmailField, ImageField, URLField from django.utils.translation import gettext_lazy as _ -from colorfield.widgets import ColorWidget from dynamic_preferences.preferences import Section -from dynamic_preferences.registries import global_preferences_registry from dynamic_preferences.types import ( - BooleanPreference, ChoicePreference, FilePreference, StringPreference, ) from .registries import ( - group_preferences_registry, person_preferences_registry, site_preferences_registry, ) diff --git a/aleksis/core/settings.py b/aleksis/core/settings.py index 3153f9d8d..b73208afb 100644 --- a/aleksis/core/settings.py +++ b/aleksis/core/settings.py @@ -1,9 +1,6 @@ import os -import sys from glob import glob -from importlib import import_module -from django.apps import apps from django.utils.translation import gettext_lazy as _ from dynaconf import LazySettings @@ -482,7 +479,10 @@ PWA_APP_SPLASH_SCREEN = [ "src": lazy_get_favicon_url( title="pwa_icon", size=192, rel="apple", default=STATIC_URL + "icons/apple_180.png" ), - "media": "(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2)", + "media": ( + "(device-width: 320px) and (device-height: 568px) and" + "(-webkit-device-pixel-ratio: 2)" + ), } ] diff --git a/aleksis/core/tasks.py b/aleksis/core/tasks.py index 9a9f1ea39..48f73ac0a 100644 --- a/aleksis/core/tasks.py +++ b/aleksis/core/tasks.py @@ -1,3 +1,4 @@ +from django.conf import settings from django.core import management from .util.core_helpers import celery_optional diff --git a/aleksis/core/urls.py b/aleksis/core/urls.py index 6f58fc46e..f5b7aa9e9 100644 --- a/aleksis/core/urls.py +++ b/aleksis/core/urls.py @@ -9,7 +9,6 @@ from django.views.i18n import JavaScriptCatalog import calendarweek.django import debug_toolbar from django_js_reverse.views import urls_js -from rules.contrib.views import permission_required from two_factor.urls import urlpatterns as tf_urls from . import views diff --git a/aleksis/core/util/apps.py b/aleksis/core/util/apps.py index c1162d4ea..8d41b2d89 100644 --- a/aleksis/core/util/apps.py +++ b/aleksis/core/util/apps.py @@ -2,17 +2,21 @@ from importlib import import_module from typing import Any, List, Optional, Sequence, Tuple import django.apps +from django.contrib.auth import get_user_model from django.contrib.auth.signals import user_logged_in, user_logged_out from django.db.models.signals import post_migrate, pre_migrate from django.http import HttpRequest from dynamic_preferences.signals import preference_updated -from license_expression import LicenseSymbol, Licensing +from license_expression import Licensing from spdx_license_list import LICENSES from .core_helpers import copyright_years +User = get_user_model() + + class AppConfig(django.apps.AppConfig): """ An extended version of DJango's AppConfig container. """ diff --git a/aleksis/core/util/core_helpers.py b/aleksis/core/util/core_helpers.py index aa4710293..2f44503e7 100644 --- a/aleksis/core/util/core_helpers.py +++ b/aleksis/core/util/core_helpers.py @@ -4,7 +4,7 @@ from datetime import datetime, timedelta from importlib import import_module from itertools import groupby from operator import itemgetter -from typing import Any, Callable, List, Optional, Sequence, Union +from typing import Any, Callable, Optional, Sequence, Union from uuid import uuid4 from django.conf import settings @@ -12,6 +12,7 @@ from django.db.models import Model from django.http import HttpRequest from django.utils import timezone from django.utils.functional import lazy +from django.shortcuts import get_object_or_404 def copyright_years(years: Sequence[int], seperator: str = ", ", joiner: str = "–") -> str: diff --git a/aleksis/core/util/middlewares.py b/aleksis/core/util/middlewares.py index 79f15a139..fc86082ec 100644 --- a/aleksis/core/util/middlewares.py +++ b/aleksis/core/util/middlewares.py @@ -1,8 +1,6 @@ from typing import Callable -from django.core.exceptions import PermissionDenied from django.http import HttpRequest, HttpResponse -from django.utils.translation import gettext_lazy as _ from ..models import DummyPerson from .core_helpers import has_person diff --git a/aleksis/core/util/notifications.py b/aleksis/core/util/notifications.py index 7ab63a64e..fd294e5a1 100644 --- a/aleksis/core/util/notifications.py +++ b/aleksis/core/util/notifications.py @@ -10,7 +10,8 @@ from django.utils.translation import gettext_lazy as _ from templated_email import send_templated_mail -from .core_helpers import celery_optional, lazy_preference +from .models import Notification +from .core_helpers import lazy_preference try: from twilio.rest import Client as TwilioClient diff --git a/aleksis/core/util/predicates.py b/aleksis/core/util/predicates.py index 6c8deb132..d76df8310 100644 --- a/aleksis/core/util/predicates.py +++ b/aleksis/core/util/predicates.py @@ -58,7 +58,9 @@ def has_object_perm(perm: str): def has_any_object(perm: str, klass): - """ Build predicate which checks whether a user has access to objects with the provided permission """ + """ Build predicate which checks whether a user has access + to objects with the provided permission + """ name = f"has_any_object:{perm}" @@ -93,6 +95,8 @@ def is_group_owner(user: User, group: Group) -> bool: @predicate def is_notification_recipient(user: User, obj: Model) -> bool: - """ Predicate which checks whether the recipient of the notification a user wants to mark read is this user """ + """ Predicate which checks whether the recipient of the + notification a user wants to mark read is this user + """ return user == obj.recipient.user diff --git a/aleksis/core/views.py b/aleksis/core/views.py index fab71fd0c..49594d647 100644 --- a/aleksis/core/views.py +++ b/aleksis/core/views.py @@ -1,4 +1,3 @@ -from importlib import import_module from typing import Optional from django.apps import apps @@ -28,7 +27,7 @@ from .forms import ( PersonsAccountsFormSet, SitePreferenceForm, ) -from .models import Activity, Announcement, DashboardWidget, Group, Notification, Person +from .models import Announcement, DashboardWidget, Group, Notification, Person from .registries import ( group_preferences_registry, person_preferences_registry, @@ -317,8 +316,6 @@ def system_status(request: HttpRequest) -> HttpResponse: def notification_mark_read(request: HttpRequest, id_: int) -> HttpResponse: """ Mark a notification read """ - context = {} - notification = objectgetter_optional(Notification, None, False)(request, id_) notification.read = True @@ -431,14 +428,14 @@ def preferences( raise PermissionDenied() elif registry_name == "person": registry = person_preferences_registry - instance = get_person_by_pk(request, pk) + instance = objectgetter_optional(Person, None, False)(request, pk) form_class = PersonPreferenceForm if not request.user.has_perm("core.change_person_preferences", instance): raise PermissionDenied() elif registry_name == "group": registry = group_preferences_registry - instance = get_group_by_pk(request, pk) + instance = objectgetter_optional(Group, None, False)(request, pk) form_class = GroupPreferenceForm if not request.user.has_perm("core.change_group_preferences", instance): -- GitLab