From 3143d3d91a5bd9a1859e00615aff74130d21beaf Mon Sep 17 00:00:00 2001 From: thomas girod Date: Mon, 24 Jun 2024 13:07:36 +0200 Subject: [PATCH] reorganize imports with ruff --- accounting/admin.py | 1 - accounting/migrations/0001_initial.py | 5 +- .../migrations/0002_auto_20160824_2152.py | 2 +- .../migrations/0003_auto_20160824_2203.py | 2 +- .../migrations/0004_auto_20161005_1505.py | 2 +- accounting/models.py | 18 ++-- accounting/tests.py | 14 +-- accounting/views.py | 58 ++++++------- api/admin.py | 2 - api/models.py | 2 - api/tests.py | 2 - api/urls.py | 4 +- api/views/__init__.py | 14 +-- api/views/api.py | 2 +- api/views/club.py | 10 +-- api/views/counter.py | 5 +- api/views/group.py | 3 +- api/views/launderette.py | 5 +- api/views/sas.py | 3 +- api/views/user.py | 5 +- api/views/uv.py | 13 +-- club/forms.py | 11 +-- club/migrations/0001_initial.py | 2 +- club/migrations/0002_auto_20160824_2152.py | 4 +- club/migrations/0004_auto_20160915_1057.py | 4 +- club/migrations/0005_auto_20161120_1149.py | 2 +- club/migrations/0006_auto_20161229_0040.py | 2 +- club/migrations/0007_auto_20170324_0917.py | 2 +- club/migrations/0009_auto_20170822_2232.py | 5 +- club/migrations/0010_auto_20170912_2028.py | 2 +- club/migrations/0011_auto_20180426_2013.py | 5 +- club/models.py | 16 ++-- club/tests.py | 11 ++- club/views.py | 58 ++++++------- com/migrations/0002_news_newsdate.py | 4 +- com/migrations/0003_auto_20170115_2300.py | 4 +- com/migrations/0004_auto_20171221_1614.py | 4 +- com/models.py | 18 ++-- com/tests.py | 7 +- com/views.py | 45 +++++----- core/admin.py | 4 +- core/apps.py | 2 +- core/converters.py | 3 - core/lookups.py | 11 ++- core/management/commands/check_fs.py | 2 +- core/management/commands/compilemessages.py | 1 + core/management/commands/compilestatic.py | 3 +- core/management/commands/documentation.py | 5 +- core/management/commands/install_xapian.py | 5 +- core/management/commands/markdown.py | 1 + core/management/commands/populate.py | 33 ++++--- core/management/commands/repair_fs.py | 2 +- core/management/commands/setup.py | 3 +- core/markdown.py | 3 +- core/middleware.py | 3 +- core/migrations/0001_initial.py | 8 +- core/migrations/0003_auto_20160902_1914.py | 2 +- core/migrations/0004_user_godfathers.py | 2 +- core/migrations/0005_auto_20161105_1035.py | 4 +- core/migrations/0009_auto_20161120_1155.py | 3 +- core/migrations/0011_auto_20161124_0848.py | 3 +- core/migrations/0012_notification.py | 6 +- core/migrations/0015_sithfile_moderator.py | 4 +- core/migrations/0016_auto_20161212_1922.py | 4 +- core/migrations/0020_auto_20170324_0917.py | 2 +- core/migrations/0023_auto_20170902_1226.py | 4 +- core/migrations/0025_auto_20170919_1521.py | 2 +- core/migrations/0027_gift.py | 6 +- core/migrations/0029_auto_20180426_2013.py | 5 +- core/migrations/0034_operationlog.py | 2 +- core/models.py | 43 +++++----- core/scss/finder.py | 1 + core/scss/processor.py | 8 +- core/search_indexes.py | 1 - core/signals.py | 6 +- core/templatetags/renderer.py | 4 +- core/templatetags/search_helpers.py | 2 +- core/urls.py | 4 +- core/utils.py | 2 +- core/views/__init__.py | 27 +++--- core/views/files.py | 31 ++++--- core/views/forms.py | 39 ++++----- core/views/group.py | 13 ++- core/views/page.py | 10 +-- core/views/site.py | 23 +++-- core/views/user.py | 56 ++++++------ counter/app.py | 2 +- counter/forms.py | 10 +-- counter/migrations/0001_initial.py | 6 +- counter/migrations/0002_auto_20160826_1342.py | 7 +- .../migrations/0003_permanency_activity.py | 3 +- counter/migrations/0005_auto_20160826_2330.py | 2 +- counter/migrations/0009_eticket.py | 2 +- .../0013_customer_recorded_products.py | 6 +- counter/migrations/0015_merge.py | 2 +- counter/migrations/0017_studentcard.py | 2 +- counter/migrations/0019_billinginfo.py | 2 +- counter/migrations/0020_auto_20221215_1709.py | 3 +- counter/models.py | 42 +++++---- counter/signals.py | 4 +- counter/tests.py | 4 +- counter/views.py | 85 +++++++++---------- doc/conf.py | 1 + eboutic/forms.py | 2 +- eboutic/migrations/0001_initial.py | 7 +- eboutic/models.py | 9 +- eboutic/tests.py | 5 +- eboutic/tests/test.py | 1 + eboutic/urls.py | 2 +- eboutic/views.py | 14 +-- election/admin.py | 2 +- election/migrations/0001_initial.py | 4 +- election/models.py | 6 +- election/tests.py | 5 +- election/views.py | 29 +++---- forum/admin.py | 1 - forum/migrations/0001_initial.py | 9 +- forum/migrations/0004_auto_20170531_1949.py | 2 +- .../0005_forumtopic_subscribed_users.py | 2 +- forum/migrations/0006_auto_20180426_2013.py | 1 + forum/models.py | 14 +-- forum/tests.py | 2 - forum/views.py | 31 ++++--- .../commands/generate_galaxy_test_data.py | 11 +-- galaxy/management/commands/rule_galaxy.py | 3 +- galaxy/migrations/0001_initial.py | 2 +- galaxy/migrations/0002_auto_20230412_1130.py | 2 +- galaxy/models.py | 9 +- galaxy/tests.py | 1 - galaxy/views.py | 10 +-- launderette/migrations/0001_initial.py | 2 +- launderette/models.py | 8 +- launderette/tests.py | 2 - launderette/views.py | 27 +++--- matmat/admin.py | 2 - matmat/models.py | 2 - matmat/tests.py | 2 - matmat/views.py | 15 ++-- pedagogy/forms.py | 5 +- pedagogy/migrations/0001_initial.py | 4 +- pedagogy/models.py | 11 ++- pedagogy/search_indexes.py | 1 - pedagogy/tests.py | 5 +- pedagogy/views.py | 29 +++---- pyproject.toml | 3 + rootplace/admin.py | 2 - rootplace/models.py | 2 - rootplace/tests.py | 6 +- rootplace/views.py | 2 +- sas/admin.py | 1 - sas/migrations/0001_initial.py | 2 +- sas/migrations/0002_auto_20161119_1241.py | 4 +- sas/models.py | 14 +-- sas/tests.py | 2 - sas/views.py | 32 ++++--- sith/urls.py | 8 +- stock/admin.py | 2 +- stock/migrations/0001_initial.py | 2 +- stock/models.py | 7 +- stock/tests.py | 2 - stock/views.py | 35 +++----- subscription/migrations/0001_initial.py | 2 +- subscription/models.py | 15 ++-- subscription/tests.py | 9 +- subscription/views.py | 22 +++-- trombi/migrations/0001_initial.py | 5 +- .../migrations/0004_trombiclubmembership.py | 2 +- trombi/models.py | 14 +-- trombi/tests.py | 2 - trombi/views.py | 39 +++++---- 170 files changed, 702 insertions(+), 804 deletions(-) diff --git a/accounting/admin.py b/accounting/admin.py index e485392d..95216e59 100644 --- a/accounting/admin.py +++ b/accounting/admin.py @@ -18,7 +18,6 @@ from django.contrib import admin from accounting.models import * - admin.site.register(BankAccount) admin.site.register(ClubAccount) admin.site.register(GeneralJournal) diff --git a/accounting/migrations/0001_initial.py b/accounting/migrations/0001_initial.py index 51add331..b5112cdd 100644 --- a/accounting/migrations/0001_initial.py +++ b/accounting/migrations/0001_initial.py @@ -1,10 +1,11 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models import django.core.validators -import accounting.models import django.db.models.deletion +from django.db import migrations, models + +import accounting.models class Migration(migrations.Migration): diff --git a/accounting/migrations/0002_auto_20160824_2152.py b/accounting/migrations/0002_auto_20160824_2152.py index b0cc051f..d331dd5c 100644 --- a/accounting/migrations/0002_auto_20160824_2152.py +++ b/accounting/migrations/0002_auto_20160824_2152.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/accounting/migrations/0003_auto_20160824_2203.py b/accounting/migrations/0003_auto_20160824_2203.py index 597f582f..cf53223f 100644 --- a/accounting/migrations/0003_auto_20160824_2203.py +++ b/accounting/migrations/0003_auto_20160824_2203.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models import phonenumber_field.modelfields +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/accounting/migrations/0004_auto_20161005_1505.py b/accounting/migrations/0004_auto_20161005_1505.py index 993754bd..6e122f7d 100644 --- a/accounting/migrations/0004_auto_20161005_1505.py +++ b/accounting/migrations/0004_auto_20161005_1505.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/accounting/models.py b/accounting/models.py index e10a029d..55bdda46 100644 --- a/accounting/models.py +++ b/accounting/models.py @@ -14,19 +14,19 @@ # # -from django.urls import reverse -from django.core.exceptions import ValidationError -from django.core import validators -from django.db import models -from django.conf import settings -from django.utils.translation import gettext_lazy as _ -from django.template import defaultfilters +from decimal import Decimal +from django.conf import settings +from django.core import validators +from django.core.exceptions import ValidationError +from django.db import models +from django.template import defaultfilters +from django.urls import reverse +from django.utils.translation import gettext_lazy as _ from phonenumber_field.modelfields import PhoneNumberField -from decimal import Decimal -from core.models import User, SithFile from club.models import Club +from core.models import SithFile, User class CurrencyField(models.DecimalField): diff --git a/accounting/tests.py b/accounting/tests.py index 6a4ae2b3..28c7a420 100644 --- a/accounting/tests.py +++ b/accounting/tests.py @@ -14,19 +14,19 @@ # # -from django.test import TestCase -from django.urls import reverse -from django.core.management import call_command from datetime import date, timedelta -from core.models import User +from django.test import TestCase +from django.urls import reverse + from accounting.models import ( - GeneralJournal, - Operation, - Label, AccountingType, + GeneralJournal, + Label, + Operation, SimplifiedAccountingType, ) +from core.models import User class RefoundAccountTest(TestCase): diff --git a/accounting/views.py b/accounting/views.py index 32ebc1c5..f9618beb 100644 --- a/accounting/views.py +++ b/accounting/views.py @@ -14,41 +14,41 @@ # # -from django.views.generic import ListView, DetailView -from django.views.generic.edit import UpdateView, CreateView, DeleteView, FormView -from django.urls import reverse_lazy, reverse -from django.utils.translation import gettext_lazy as _ -from django.forms.models import modelform_factory -from django.core.exceptions import PermissionDenied, ValidationError -from django.forms import HiddenInput -from django.db import transaction -from django.db.models import Sum -from django.conf import settings -from django import forms -from django.http import HttpResponse import collections from ajax_select.fields import AutoCompleteSelectField +from django import forms +from django.conf import settings +from django.core.exceptions import PermissionDenied, ValidationError +from django.db import transaction +from django.db.models import Sum +from django.forms import HiddenInput +from django.forms.models import modelform_factory +from django.http import HttpResponse +from django.urls import reverse, reverse_lazy +from django.utils.translation import gettext_lazy as _ +from django.views.generic import DetailView, ListView +from django.views.generic.edit import CreateView, DeleteView, FormView, UpdateView -from core.views import ( - CanViewMixin, - CanEditMixin, - CanEditPropMixin, - CanCreateMixin, - TabedViewMixin, -) -from core.views.forms import SelectFile, SelectDate from accounting.models import ( + AccountingType, BankAccount, ClubAccount, - GeneralJournal, - Operation, - AccountingType, Company, - SimplifiedAccountingType, + GeneralJournal, Label, + Operation, + SimplifiedAccountingType, ) -from counter.models import Counter, Selling, Product +from core.views import ( + CanCreateMixin, + CanEditMixin, + CanEditPropMixin, + CanViewMixin, + TabedViewMixin, +) +from core.views.forms import SelectDate, SelectFile +from counter.models import Counter, Product, Selling # Main accounting view @@ -521,14 +521,14 @@ class OperationPDFView(CanViewMixin, DetailView): pk_url_kwarg = "op_id" def get(self, request, *args, **kwargs): - from reportlab.pdfgen import canvas - from reportlab.lib.units import cm - from reportlab.platypus import Table, TableStyle from reportlab.lib import colors from reportlab.lib.pagesizes import letter + from reportlab.lib.units import cm from reportlab.lib.utils import ImageReader - from reportlab.pdfbase.ttfonts import TTFont from reportlab.pdfbase import pdfmetrics + from reportlab.pdfbase.ttfonts import TTFont + from reportlab.pdfgen import canvas + from reportlab.platypus import Table, TableStyle pdfmetrics.registerFont(TTFont("DejaVu", "DejaVuSerif.ttf")) diff --git a/api/admin.py b/api/admin.py index 362a5c4f..5531f2a2 100644 --- a/api/admin.py +++ b/api/admin.py @@ -14,6 +14,4 @@ # # -from django.contrib import admin - # Register your models here. diff --git a/api/models.py b/api/models.py index 5672eba4..084dfa73 100644 --- a/api/models.py +++ b/api/models.py @@ -14,6 +14,4 @@ # # -from django.db import models - # Create your models here. diff --git a/api/tests.py b/api/tests.py index 46a200c2..d888e761 100644 --- a/api/tests.py +++ b/api/tests.py @@ -14,6 +14,4 @@ # # -from django.test import TestCase - # Create your tests here. diff --git a/api/urls.py b/api/urls.py index ca267eee..4dde736c 100644 --- a/api/urls.py +++ b/api/urls.py @@ -14,10 +14,10 @@ # # -from django.urls import re_path, path, include +from django.urls import include, path, re_path +from rest_framework import routers from api.views import * -from rest_framework import routers # Router config router = routers.DefaultRouter() diff --git a/api/views/__init__.py b/api/views/__init__.py index ae83fbe5..b0157985 100644 --- a/api/views/__init__.py +++ b/api/views/__init__.py @@ -14,13 +14,13 @@ # # -from rest_framework.response import Response -from rest_framework import viewsets from django.core.exceptions import PermissionDenied -from rest_framework.decorators import action from django.db.models.query import QuerySet +from rest_framework import viewsets +from rest_framework.decorators import action +from rest_framework.response import Response -from core.views import can_view, can_edit +from core.views import can_edit, can_view def check_if(obj, user, test): @@ -64,10 +64,10 @@ class RightModelViewSet(ManageModelMixin, viewsets.ModelViewSet): from .api import * -from .counter import * -from .user import * from .club import * +from .counter import * from .group import * from .launderette import * -from .uv import * from .sas import * +from .user import * +from .uv import * diff --git a/api/views/api.py b/api/views/api.py index 732ee654..4329a98b 100644 --- a/api/views/api.py +++ b/api/views/api.py @@ -14,9 +14,9 @@ # # -from rest_framework.response import Response from rest_framework.decorators import api_view, renderer_classes from rest_framework.renderers import StaticHTMLRenderer +from rest_framework.response import Response from core.templatetags.renderer import markdown diff --git a/api/views/club.py b/api/views/club.py index 24377073..a08d6c4f 100644 --- a/api/views/club.py +++ b/api/views/club.py @@ -14,17 +14,15 @@ # # -from rest_framework.response import Response +from django.conf import settings +from django.core.exceptions import PermissionDenied from rest_framework import serializers from rest_framework.decorators import api_view, renderer_classes from rest_framework.renderers import StaticHTMLRenderer - -from django.conf import settings -from django.core.exceptions import PermissionDenied - -from club.models import Club, Mailing +from rest_framework.response import Response from api.views import RightModelViewSet +from club.models import Club, Mailing class ClubSerializer(serializers.ModelSerializer): diff --git a/api/views/counter.py b/api/views/counter.py index 604cd986..2e633cae 100644 --- a/api/views/counter.py +++ b/api/views/counter.py @@ -15,12 +15,11 @@ # from rest_framework import serializers -from rest_framework.response import Response from rest_framework.decorators import action - -from counter.models import Counter +from rest_framework.response import Response from api.views import RightModelViewSet +from counter.models import Counter class CounterSerializer(serializers.ModelSerializer): diff --git a/api/views/group.py b/api/views/group.py index f6fd7594..a6aa7e2b 100644 --- a/api/views/group.py +++ b/api/views/group.py @@ -16,9 +16,8 @@ from rest_framework import serializers -from core.models import RealGroup - from api.views import RightModelViewSet +from core.models import RealGroup class GroupSerializer(serializers.ModelSerializer): diff --git a/api/views/launderette.py b/api/views/launderette.py index ab7fcf66..a1225274 100644 --- a/api/views/launderette.py +++ b/api/views/launderette.py @@ -15,12 +15,11 @@ # from rest_framework import serializers -from rest_framework.response import Response from rest_framework.decorators import action - -from launderette.models import Launderette, Machine, Token +from rest_framework.response import Response from api.views import RightModelViewSet +from launderette.models import Launderette, Machine, Token class LaunderettePlaceSerializer(serializers.ModelSerializer): diff --git a/api/views/sas.py b/api/views/sas.py index 063b9eab..455edf09 100644 --- a/api/views/sas.py +++ b/api/views/sas.py @@ -1,4 +1,5 @@ from typing import List + from rest_framework.decorators import api_view, renderer_classes from rest_framework.exceptions import PermissionDenied from rest_framework.generics import get_object_or_404 @@ -6,8 +7,8 @@ from rest_framework.renderers import JSONRenderer from rest_framework.request import Request from rest_framework.response import Response -from core.views import can_edit from core.models import User +from core.views import can_edit from sas.models import Picture diff --git a/api/views/user.py b/api/views/user.py index ed3b6b1a..a9ad19a6 100644 --- a/api/views/user.py +++ b/api/views/user.py @@ -17,12 +17,11 @@ import datetime from rest_framework import serializers -from rest_framework.response import Response from rest_framework.decorators import action - -from core.models import User +from rest_framework.response import Response from api.views import RightModelViewSet +from core.models import User class UserSerializer(serializers.ModelSerializer): diff --git a/api/views/uv.py b/api/views/uv.py index e9790e0b..a83a8936 100644 --- a/api/views/uv.py +++ b/api/views/uv.py @@ -1,11 +1,12 @@ -from rest_framework.response import Response +import json +import urllib.request + +from django.conf import settings +from django.core.exceptions import PermissionDenied +from rest_framework import serializers from rest_framework.decorators import api_view, renderer_classes from rest_framework.renderers import JSONRenderer -from django.core.exceptions import PermissionDenied -from django.conf import settings -from rest_framework import serializers -import urllib.request -import json +from rest_framework.response import Response from pedagogy.views import CanCreateUVFunctionMixin diff --git a/club/forms.py b/club/forms.py index dcf88ff5..ca6cb324 100644 --- a/club/forms.py +++ b/club/forms.py @@ -23,18 +23,15 @@ # # -from django.conf import settings +from ajax_select.fields import AutoCompleteSelectMultipleField from django import forms +from django.conf import settings from django.utils.translation import gettext_lazy as _ -from ajax_select.fields import AutoCompleteSelectField, AutoCompleteSelectMultipleField - -from club.models import Mailing, MailingSubscription, Club, Membership - +from club.models import Club, Mailing, MailingSubscription, Membership from core.models import User -from core.views.forms import SelectDate, SelectDateTime +from core.views.forms import SelectDate, TzAwareDateTimeField from counter.models import Counter -from core.views.forms import TzAwareDateTimeField class ClubEditForm(forms.ModelForm): diff --git a/club/migrations/0001_initial.py b/club/migrations/0001_initial.py index 55922e03..4a26270e 100644 --- a/club/migrations/0001_initial.py +++ b/club/migrations/0001_initial.py @@ -1,9 +1,9 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models import django.core.validators import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/club/migrations/0002_auto_20160824_2152.py b/club/migrations/0002_auto_20160824_2152.py index 6b69c1b7..ffc57443 100644 --- a/club/migrations/0002_auto_20160824_2152.py +++ b/club/migrations/0002_auto_20160824_2152.py @@ -1,9 +1,9 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models -from django.conf import settings import django.db.models.deletion +from django.conf import settings +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/club/migrations/0004_auto_20160915_1057.py b/club/migrations/0004_auto_20160915_1057.py index 3f08d9dd..8e0dc244 100644 --- a/club/migrations/0004_auto_20160915_1057.py +++ b/club/migrations/0004_auto_20160915_1057.py @@ -1,9 +1,9 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models -from django.conf import settings import django.db.models.deletion +from django.conf import settings +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/club/migrations/0005_auto_20161120_1149.py b/club/migrations/0005_auto_20161120_1149.py index 5fb949a7..b9eda617 100644 --- a/club/migrations/0005_auto_20161120_1149.py +++ b/club/migrations/0005_auto_20161120_1149.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/club/migrations/0006_auto_20161229_0040.py b/club/migrations/0006_auto_20161229_0040.py index 290ecf5b..fec86868 100644 --- a/club/migrations/0006_auto_20161229_0040.py +++ b/club/migrations/0006_auto_20161229_0040.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models import django.utils.timezone +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/club/migrations/0007_auto_20170324_0917.py b/club/migrations/0007_auto_20170324_0917.py index eb3c03cc..e356bac2 100644 --- a/club/migrations/0007_auto_20170324_0917.py +++ b/club/migrations/0007_auto_20170324_0917.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models +from django.db import migrations class Migration(migrations.Migration): diff --git a/club/migrations/0009_auto_20170822_2232.py b/club/migrations/0009_auto_20170822_2232.py index ce7dc337..4e679d09 100644 --- a/club/migrations/0009_auto_20170822_2232.py +++ b/club/migrations/0009_auto_20170822_2232.py @@ -1,11 +1,12 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models -from django.conf import settings import re + import django.core.validators import django.db.models.deletion +from django.conf import settings +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/club/migrations/0010_auto_20170912_2028.py b/club/migrations/0010_auto_20170912_2028.py index a9b32d1b..0dbf796a 100644 --- a/club/migrations/0010_auto_20170912_2028.py +++ b/club/migrations/0010_auto_20170912_2028.py @@ -1,11 +1,11 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals +import django.db.models.deletion from django.db import migrations, models from club.models import Club from core.operations import PsqlRunOnly -import django.db.models.deletion def generate_club_pages(apps, schema_editor): diff --git a/club/migrations/0011_auto_20180426_2013.py b/club/migrations/0011_auto_20180426_2013.py index dc3234df..b1b1d362 100644 --- a/club/migrations/0011_auto_20180426_2013.py +++ b/club/migrations/0011_auto_20180426_2013.py @@ -1,9 +1,10 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models -import club.models import django.db.models.deletion +from django.db import migrations, models + +import club.models class Migration(migrations.Migration): diff --git a/club/models.py b/club/models.py index 4d22b8e5..252dc085 100644 --- a/club/models.py +++ b/club/models.py @@ -24,21 +24,19 @@ # from typing import Optional -from django.core.cache import cache -from django.db import models -from django.core import validators from django.conf import settings +from django.core import validators +from django.core.cache import cache +from django.core.exceptions import ObjectDoesNotExist, ValidationError +from django.core.validators import RegexValidator, validate_email +from django.db import models, transaction from django.db.models import Q -from django.utils.timezone import now -from django.utils.translation import gettext_lazy as _ -from django.core.exceptions import ValidationError, ObjectDoesNotExist -from django.db import transaction from django.urls import reverse from django.utils import timezone -from django.core.validators import RegexValidator, validate_email from django.utils.functional import cached_property +from django.utils.translation import gettext_lazy as _ -from core.models import User, MetaGroup, Group, SithFile, RealGroup, Notification, Page +from core.models import Group, MetaGroup, Notification, Page, RealGroup, SithFile, User # Create your models here. diff --git a/club/tests.py b/club/tests.py index b333cc48..73480979 100644 --- a/club/tests.py +++ b/club/tests.py @@ -18,15 +18,14 @@ from datetime import timedelta from django.conf import settings from django.core.cache import cache from django.test import TestCase -from django.utils import timezone, html -from django.utils.timezone import now, localtime -from django.utils.translation import gettext as _ from django.urls import reverse -from django.core.management import call_command +from django.utils import html, timezone +from django.utils.timezone import localtime, now +from django.utils.translation import gettext as _ -from core.models import User, AnonymousUser -from club.models import Club, Membership, Mailing from club.forms import MailingForm +from club.models import Club, Mailing, Membership +from core.models import AnonymousUser, User from sith.settings import SITH_BAR_MANAGER, SITH_MAIN_CLUB_ID diff --git a/club/views.py b/club/views.py index 2470cbb4..dce1c86f 100644 --- a/club/views.py +++ b/club/views.py @@ -26,50 +26,42 @@ import csv from django.conf import settings -from django import forms -from django.views.generic import ListView, DetailView, TemplateView, View -from django.views.generic.edit import DeleteView -from django.views.generic.detail import SingleObjectMixin -from django.views.generic.edit import UpdateView, CreateView +from django.core.exceptions import NON_FIELD_ERRORS, PermissionDenied, ValidationError +from django.core.paginator import InvalidPage, Paginator +from django.db.models import Sum from django.http import ( - HttpResponseRedirect, - HttpResponse, Http404, + HttpResponseRedirect, StreamingHttpResponse, ) +from django.shortcuts import get_object_or_404, redirect from django.urls import reverse, reverse_lazy from django.utils import timezone -from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext as _t -from django.core.exceptions import PermissionDenied, ValidationError, NON_FIELD_ERRORS -from django.core.paginator import Paginator, InvalidPage -from django.shortcuts import get_object_or_404, redirect -from django.db.models import Sum +from django.utils.translation import gettext_lazy as _ +from django.views.generic import DetailView, ListView, TemplateView, View +from django.views.generic.edit import CreateView, DeleteView, UpdateView - -from core.views import ( - CanCreateMixin, - CanViewMixin, - CanEditMixin, - CanEditPropMixin, - UserIsRootMixin, - TabedViewMixin, - PageEditViewBase, - DetailFormView, +from club.forms import ClubEditForm, ClubMemberForm, MailingForm, SellingsForm +from club.models import Club, Mailing, MailingSubscription, Membership +from com.views import ( + PosterCreateBaseView, + PosterDeleteBaseView, + PosterEditBaseView, + PosterListBaseView, ) from core.models import PageRev - -from counter.models import Selling - -from com.views import ( - PosterListBaseView, - PosterCreateBaseView, - PosterEditBaseView, - PosterDeleteBaseView, +from core.views import ( + CanCreateMixin, + CanEditMixin, + CanEditPropMixin, + CanViewMixin, + DetailFormView, + PageEditViewBase, + TabedViewMixin, + UserIsRootMixin, ) - -from club.models import Club, Membership, Mailing, MailingSubscription -from club.forms import MailingForm, ClubEditForm, ClubMemberForm, SellingsForm +from counter.models import Selling class ClubTabsMixin(TabedViewMixin): diff --git a/com/migrations/0002_news_newsdate.py b/com/migrations/0002_news_newsdate.py index da548fdc..51a378f3 100644 --- a/com/migrations/0002_news_newsdate.py +++ b/com/migrations/0002_news_newsdate.py @@ -1,9 +1,9 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models -from django.conf import settings import django.db.models.deletion +from django.conf import settings +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/com/migrations/0003_auto_20170115_2300.py b/com/migrations/0003_auto_20170115_2300.py index 2087f40f..a21196b3 100644 --- a/com/migrations/0003_auto_20170115_2300.py +++ b/com/migrations/0003_auto_20170115_2300.py @@ -1,9 +1,9 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models -from django.conf import settings import django.db.models.deletion +from django.conf import settings +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/com/migrations/0004_auto_20171221_1614.py b/com/migrations/0004_auto_20171221_1614.py index fe9539dc..6b4d4d9d 100644 --- a/com/migrations/0004_auto_20171221_1614.py +++ b/com/migrations/0004_auto_20171221_1614.py @@ -1,10 +1,10 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models +import django.db.models.deletion import django.utils.timezone from django.conf import settings -import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/com/models.py b/com/models.py index 71da8941..d7a31596 100644 --- a/com/models.py +++ b/com/models.py @@ -23,22 +23,20 @@ # # -from django.shortcuts import render +from django.conf import settings +from django.core.exceptions import ValidationError +from django.core.mail import EmailMultiAlternatives from django.db import models, transaction from django.db.models import Q -from django.utils.translation import gettext_lazy as _ -from django.utils import timezone -from django.urls import reverse -from django.conf import settings +from django.shortcuts import render from django.templatetags.static import static -from django.core.mail import EmailMultiAlternatives -from django.core.exceptions import ValidationError - +from django.urls import reverse from django.utils import timezone +from django.utils.translation import gettext_lazy as _ -from core import utils -from core.models import User, Preferences, RealGroup, Notification, SithFile from club.models import Club +from core import utils +from core.models import Notification, Preferences, RealGroup, User class Sith(models.Model): diff --git a/com/tests.py b/com/tests.py index 6dde46db..0cd01a1d 100644 --- a/com/tests.py +++ b/com/tests.py @@ -13,18 +13,17 @@ # OR WITHIN THE LOCAL FILE "LICENSE" # # +from django.conf import settings from django.core.files.uploadedfile import SimpleUploadedFile from django.test import TestCase -from django.conf import settings from django.urls import reverse -from django.core.management import call_command from django.utils import html from django.utils.timezone import localtime, now from django.utils.translation import gettext as _ from club.models import Club, Membership -from com.models import Sith, News, Weekmail, WeekmailArticle, Poster -from core.models import User, RealGroup, AnonymousUser +from com.models import News, Poster, Sith, Weekmail, WeekmailArticle +from core.models import AnonymousUser, RealGroup, User class ComAlertTest(TestCase): diff --git a/com/views.py b/com/views.py index f8d0119b..774d1c5f 100644 --- a/com/views.py +++ b/com/views.py @@ -23,38 +23,35 @@ # # -from django.shortcuts import redirect, get_object_or_404 -from django.http import HttpResponseRedirect -from django.views.generic import ListView, DetailView, View -from django.views.generic.edit import UpdateView, CreateView, DeleteView -from django.views.generic.detail import SingleObjectMixin -from django.utils.translation import gettext_lazy as _ -from django.urls import reverse, reverse_lazy -from django.core.exceptions import ValidationError -from django.utils import timezone -from django.conf import settings -from django.db.models import Max -from django.forms.models import modelform_factory -from django.core.exceptions import PermissionDenied -from django import forms - from datetime import timedelta from smtplib import SMTPRecipientsRefused -from com.models import Sith, News, NewsDate, Weekmail, WeekmailArticle, Screen, Poster +from django import forms +from django.conf import settings +from django.core.exceptions import PermissionDenied, ValidationError +from django.db.models import Max +from django.forms.models import modelform_factory +from django.http import HttpResponseRedirect +from django.shortcuts import get_object_or_404, redirect +from django.urls import reverse, reverse_lazy +from django.utils import timezone +from django.utils.translation import gettext_lazy as _ +from django.views.generic import DetailView, ListView, View +from django.views.generic.detail import SingleObjectMixin +from django.views.generic.edit import CreateView, DeleteView, UpdateView + +from club.models import Club, Mailing +from com.models import News, NewsDate, Poster, Screen, Sith, Weekmail, WeekmailArticle +from core.models import Notification, RealGroup, User from core.views import ( - CanViewMixin, + CanCreateMixin, CanEditMixin, CanEditPropMixin, - TabedViewMixin, - CanCreateMixin, + CanViewMixin, QuickNotifMixin, + TabedViewMixin, ) -from core.views.forms import SelectDateTime, MarkdownInput -from core.models import Notification, RealGroup, User -from club.models import Club, Mailing -from core.views.forms import TzAwareDateTimeField - +from core.views.forms import MarkdownInput, TzAwareDateTimeField # Sith object diff --git a/core/admin.py b/core/admin.py index 33ce50e4..8b202a30 100644 --- a/core/admin.py +++ b/core/admin.py @@ -14,12 +14,12 @@ # # -from django.contrib import admin from ajax_select import make_ajax_form -from core.models import User, Page, RealGroup, MetaGroup, SithFile +from django.contrib import admin from django.contrib.auth.models import Group as AuthGroup from haystack.admin import SearchModelAdmin +from core.models import MetaGroup, Page, RealGroup, SithFile, User admin.site.unregister(AuthGroup) admin.site.register(MetaGroup) diff --git a/core/apps.py b/core/apps.py index cd131f57..872f34ae 100644 --- a/core/apps.py +++ b/core/apps.py @@ -34,8 +34,8 @@ class SithConfig(AppConfig): verbose_name = "Core app of the Sith" def ready(self): + import core.signals # noqa F401 from forum.models import Forum - import core.signals cache.clear() diff --git a/core/converters.py b/core/converters.py index cb7bc95b..b681564d 100644 --- a/core/converters.py +++ b/core/converters.py @@ -1,6 +1,3 @@ -from core.models import Page - - class FourDigitYearConverter: regex = "[0-9]{4}" diff --git a/core/lookups.py b/core/lookups.py index f245442b..15205194 100644 --- a/core/lookups.py +++ b/core/lookups.py @@ -14,15 +14,14 @@ # # +from ajax_select import LookupChannel, register from django.core.exceptions import PermissionDenied -from ajax_select import register, LookupChannel -from core.views.site import search_user -from core.models import User, Group, SithFile -from club.models import Club -from counter.models import Product, Counter, Customer from accounting.models import ClubAccount, Company -from eboutic.models import BasketItem +from club.models import Club +from core.models import Group, SithFile, User +from core.views.site import search_user +from counter.models import Counter, Customer, Product def check_token(request): diff --git a/core/management/commands/check_fs.py b/core/management/commands/check_fs.py index 7ebc076d..a6fc9597 100644 --- a/core/management/commands/check_fs.py +++ b/core/management/commands/check_fs.py @@ -23,8 +23,8 @@ # import os + from django.core.management.base import BaseCommand -from django.core.management import call_command from core.models import SithFile diff --git a/core/management/commands/compilemessages.py b/core/management/commands/compilemessages.py index b3c336bc..87f1b2de 100644 --- a/core/management/commands/compilemessages.py +++ b/core/management/commands/compilemessages.py @@ -25,6 +25,7 @@ import os + from django.core.management.commands import compilemessages diff --git a/core/management/commands/compilestatic.py b/core/management/commands/compilestatic.py index 31e5c13e..f1268c23 100644 --- a/core/management/commands/compilestatic.py +++ b/core/management/commands/compilestatic.py @@ -24,9 +24,10 @@ # import os + import sass -from django.core.management.base import BaseCommand from django.conf import settings +from django.core.management.base import BaseCommand class Command(BaseCommand): diff --git a/core/management/commands/documentation.py b/core/management/commands/documentation.py index 79f2e0d8..bcaa0664 100644 --- a/core/management/commands/documentation.py +++ b/core/management/commands/documentation.py @@ -24,10 +24,9 @@ # import os -import sys import signal - -from http.server import test, CGIHTTPRequestHandler +import sys +from http.server import CGIHTTPRequestHandler, test from django.core.management.base import BaseCommand from django.utils import autoreload diff --git a/core/management/commands/install_xapian.py b/core/management/commands/install_xapian.py index b2009cd4..9181c151 100644 --- a/core/management/commands/install_xapian.py +++ b/core/management/commands/install_xapian.py @@ -15,11 +15,12 @@ # import os -import tomli import subprocess -from django.core.management.base import BaseCommand, CommandParser from pathlib import Path +import tomli +from django.core.management.base import BaseCommand, CommandParser + class Command(BaseCommand): help = "Install xapian" diff --git a/core/management/commands/markdown.py b/core/management/commands/markdown.py index 1b5a6855..35941ec4 100644 --- a/core/management/commands/markdown.py +++ b/core/management/commands/markdown.py @@ -23,6 +23,7 @@ # import os + from django.core.management.base import BaseCommand from core.markdown import markdown diff --git a/core/management/commands/populate.py b/core/management/commands/populate.py index c78de401..a9285653 100644 --- a/core/management/commands/populate.py +++ b/core/management/commands/populate.py @@ -24,38 +24,37 @@ import os from datetime import date, datetime, timedelta -from io import StringIO, BytesIO +from io import BytesIO, StringIO from pathlib import Path -from django.contrib.auth.models import Permission -from django.core.management.base import BaseCommand -from django.core.management import call_command from django.conf import settings -from django.db import connection +from django.contrib.auth.models import Permission from django.contrib.sites.models import Site +from django.core.management import call_command +from django.core.management.base import BaseCommand +from django.db import connection from django.utils import timezone - from PIL import Image -from core.models import Group, User, Page, PageRev, SithFile from accounting.models import ( - GeneralJournal, + AccountingType, BankAccount, ClubAccount, - Operation, - AccountingType, - SimplifiedAccountingType, Company, + GeneralJournal, + Operation, + SimplifiedAccountingType, ) -from core.utils import resize_image from club.models import Club, Membership -from subscription.models import Subscription -from counter.models import Customer, ProductType, Product, Counter, Selling, StudentCard -from com.models import Sith, Weekmail, News, NewsDate -from election.models import Election, Role, Candidature, ElectionList +from com.models import News, NewsDate, Sith, Weekmail +from core.models import Group, Page, PageRev, SithFile, User +from core.utils import resize_image +from counter.models import Counter, Customer, Product, ProductType, Selling, StudentCard +from election.models import Candidature, Election, ElectionList, Role from forum.models import Forum, ForumTopic from pedagogy.models import UV -from sas.models import Album, Picture, PeoplePictureRelation +from sas.models import Album, PeoplePictureRelation, Picture +from subscription.models import Subscription class Command(BaseCommand): diff --git a/core/management/commands/repair_fs.py b/core/management/commands/repair_fs.py index 055dbc9b..21408084 100644 --- a/core/management/commands/repair_fs.py +++ b/core/management/commands/repair_fs.py @@ -23,8 +23,8 @@ # import os + from django.core.management.base import BaseCommand -from django.core.management import call_command from core.models import SithFile diff --git a/core/management/commands/setup.py b/core/management/commands/setup.py index cc0ee1ca..5c91e1e6 100644 --- a/core/management/commands/setup.py +++ b/core/management/commands/setup.py @@ -15,8 +15,9 @@ # import os -from django.core.management.base import BaseCommand + from django.core.management import call_command +from django.core.management.base import BaseCommand class Command(BaseCommand): diff --git a/core/markdown.py b/core/markdown.py index 72b1cd02..0abe1954 100644 --- a/core/markdown.py +++ b/core/markdown.py @@ -16,8 +16,9 @@ import os import re -from mistune import Renderer, InlineGrammar, InlineLexer, Markdown, escape, escape_link + from django.urls import reverse +from mistune import InlineGrammar, InlineLexer, Markdown, Renderer, escape, escape_link class SithRenderer(Renderer): diff --git a/core/middleware.py b/core/middleware.py index 39afa266..ddc6dea3 100644 --- a/core/middleware.py +++ b/core/middleware.py @@ -16,12 +16,13 @@ import importlib import threading + from django.conf import settings -from django.utils.functional import SimpleLazyObject from django.contrib.auth import get_user from django.contrib.auth.middleware import ( AuthenticationMiddleware as DjangoAuthenticationMiddleware, ) +from django.utils.functional import SimpleLazyObject module, klass = settings.AUTH_ANONYMOUS_MODEL.rsplit(".", 1) AnonymousUser = getattr(importlib.import_module(module), klass) diff --git a/core/migrations/0001_initial.py b/core/migrations/0001_initial.py index 7474e93a..57050f26 100644 --- a/core/migrations/0001_initial.py +++ b/core/migrations/0001_initial.py @@ -1,14 +1,14 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models import django.contrib.auth.models -import django.db.models.deletion import django.core.validators -import core.models +import django.db.models.deletion import phonenumber_field.modelfields from django.conf import settings -import django.db.models.deletion +from django.db import migrations, models + +import core.models class Migration(migrations.Migration): diff --git a/core/migrations/0003_auto_20160902_1914.py b/core/migrations/0003_auto_20160902_1914.py index b39d9838..65f11d3a 100644 --- a/core/migrations/0003_auto_20160902_1914.py +++ b/core/migrations/0003_auto_20160902_1914.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models import django.core.validators +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/core/migrations/0004_user_godfathers.py b/core/migrations/0004_user_godfathers.py index d068cfc7..d4066cc5 100644 --- a/core/migrations/0004_user_godfathers.py +++ b/core/migrations/0004_user_godfathers.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models from django.conf import settings +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/core/migrations/0005_auto_20161105_1035.py b/core/migrations/0005_auto_20161105_1035.py index 7d40b163..6f7c487f 100644 --- a/core/migrations/0005_auto_20161105_1035.py +++ b/core/migrations/0005_auto_20161105_1035.py @@ -1,9 +1,9 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models -from django.conf import settings import django.db.models.deletion +from django.conf import settings +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/core/migrations/0009_auto_20161120_1155.py b/core/migrations/0009_auto_20161120_1155.py index c017706a..aafb2c54 100644 --- a/core/migrations/0009_auto_20161120_1155.py +++ b/core/migrations/0009_auto_20161120_1155.py @@ -1,8 +1,9 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models + import core.models diff --git a/core/migrations/0011_auto_20161124_0848.py b/core/migrations/0011_auto_20161124_0848.py index b3ea7f4a..6475189e 100644 --- a/core/migrations/0011_auto_20161124_0848.py +++ b/core/migrations/0011_auto_20161124_0848.py @@ -1,8 +1,9 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models import django.utils.timezone +from django.db import migrations, models + import core.models diff --git a/core/migrations/0012_notification.py b/core/migrations/0012_notification.py index 360fbcb8..245a38e3 100644 --- a/core/migrations/0012_notification.py +++ b/core/migrations/0012_notification.py @@ -1,10 +1,10 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models -from django.conf import settings -import django.utils.timezone import django.db.models.deletion +import django.utils.timezone +from django.conf import settings +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/core/migrations/0015_sithfile_moderator.py b/core/migrations/0015_sithfile_moderator.py index 20d1512f..4e2a438d 100644 --- a/core/migrations/0015_sithfile_moderator.py +++ b/core/migrations/0015_sithfile_moderator.py @@ -1,9 +1,9 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models -from django.conf import settings import django.db.models.deletion +from django.conf import settings +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/core/migrations/0016_auto_20161212_1922.py b/core/migrations/0016_auto_20161212_1922.py index bde89b82..72432467 100644 --- a/core/migrations/0016_auto_20161212_1922.py +++ b/core/migrations/0016_auto_20161212_1922.py @@ -1,9 +1,9 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models -from django.conf import settings import django.db.models.deletion +from django.conf import settings +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/core/migrations/0020_auto_20170324_0917.py b/core/migrations/0020_auto_20170324_0917.py index c026483a..219be979 100644 --- a/core/migrations/0020_auto_20170324_0917.py +++ b/core/migrations/0020_auto_20170324_0917.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models import django.core.validators +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/core/migrations/0023_auto_20170902_1226.py b/core/migrations/0023_auto_20170902_1226.py index 2cdc4c85..9bfd01ed 100644 --- a/core/migrations/0023_auto_20170902_1226.py +++ b/core/migrations/0023_auto_20170902_1226.py @@ -1,9 +1,9 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models -from django.conf import settings import django.db.models.deletion +from django.conf import settings +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/core/migrations/0025_auto_20170919_1521.py b/core/migrations/0025_auto_20170919_1521.py index f37a829b..f7bd278c 100644 --- a/core/migrations/0025_auto_20170919_1521.py +++ b/core/migrations/0025_auto_20170919_1521.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models import django.core.validators +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/core/migrations/0027_gift.py b/core/migrations/0027_gift.py index 21bf8442..ca8ce67b 100644 --- a/core/migrations/0027_gift.py +++ b/core/migrations/0027_gift.py @@ -1,10 +1,10 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models -from django.conf import settings -import django.utils.timezone import django.db.models.deletion +import django.utils.timezone +from django.conf import settings +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/core/migrations/0029_auto_20180426_2013.py b/core/migrations/0029_auto_20180426_2013.py index eadfd558..c591f47b 100644 --- a/core/migrations/0029_auto_20180426_2013.py +++ b/core/migrations/0029_auto_20180426_2013.py @@ -1,9 +1,10 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models -import core.models import django.db.models.deletion +from django.db import migrations, models + +import core.models class Migration(migrations.Migration): diff --git a/core/migrations/0034_operationlog.py b/core/migrations/0034_operationlog.py index df59cd6a..505e2332 100644 --- a/core/migrations/0034_operationlog.py +++ b/core/migrations/0034_operationlog.py @@ -1,8 +1,8 @@ # Generated by Django 2.2.6 on 2019-11-14 15:10 +import django.db.models.deletion from django.conf import settings from django.db import migrations, models -import django.db.models.deletion class Migration(migrations.Migration): diff --git a/core/models.py b/core/models.py index c804d30b..4fba43c3 100644 --- a/core/models.py +++ b/core/models.py @@ -23,36 +23,39 @@ # # import importlib -from typing import Union, Optional, List +import os +import unicodedata +from datetime import date, timedelta +from typing import List, Optional, Union -from django.core.cache import cache -from django.core.mail import send_mail +from django.conf import settings from django.contrib.auth.models import ( AbstractBaseUser, UserManager, - Group as AuthGroup, - GroupManager as AuthGroupManager, +) +from django.contrib.auth.models import ( AnonymousUser as AuthAnonymousUser, ) -from django.utils.translation import gettext_lazy as _ -from django.utils import timezone -from django.core import validators -from django.core.exceptions import ValidationError, PermissionDenied -from django.urls import reverse -from django.conf import settings -from django.db import models, transaction +from django.contrib.auth.models import ( + Group as AuthGroup, +) +from django.contrib.auth.models import ( + GroupManager as AuthGroupManager, +) from django.contrib.staticfiles.storage import staticfiles_storage -from django.utils.html import escape +from django.core import validators +from django.core.cache import cache +from django.core.exceptions import PermissionDenied, ValidationError +from django.core.mail import send_mail +from django.db import models, transaction +from django.urls import reverse +from django.utils import timezone from django.utils.functional import cached_property - -import os -from core import utils - +from django.utils.html import escape +from django.utils.translation import gettext_lazy as _ from phonenumber_field.modelfields import PhoneNumberField -from datetime import timedelta, date - -import unicodedata +from core import utils class RealGroupManager(AuthGroupManager): diff --git a/core/scss/finder.py b/core/scss/finder.py index 3e25279f..0b62fab3 100644 --- a/core/scss/finder.py +++ b/core/scss/finder.py @@ -25,6 +25,7 @@ import os from collections import OrderedDict + from django.conf import settings from django.contrib.staticfiles.finders import FileSystemFinder from django.core.files.storage import FileSystemStorage diff --git a/core/scss/processor.py b/core/scss/processor.py index 6aa334f2..add5e042 100644 --- a/core/scss/processor.py +++ b/core/scss/processor.py @@ -24,12 +24,14 @@ # import os -import sass from urllib.parse import urljoin -from django.utils.encoding import force_bytes, iri_to_uri + +import sass +from django.conf import settings from django.core.files.base import ContentFile from django.templatetags.static import static -from django.conf import settings +from django.utils.encoding import force_bytes, iri_to_uri + from core.scss.storage import ScssFileStorage, find_file diff --git a/core/search_indexes.py b/core/search_indexes.py index b98dc67b..f2448adb 100644 --- a/core/search_indexes.py +++ b/core/search_indexes.py @@ -24,7 +24,6 @@ # from django.db import models - from haystack import indexes, signals from core.models import User diff --git a/core/signals.py b/core/signals.py index 7cda36c7..23e38599 100644 --- a/core/signals.py +++ b/core/signals.py @@ -8,10 +8,10 @@ from core.models import User @receiver(m2m_changed, sender=User.groups.through, dispatch_uid="user_groups_changed") def user_groups_changed(sender, instance: User, **kwargs): """ - Clear the cached clubs of the user + Clear the cached groups of the user """ # As a m2m relationship doesn't live within the model # but rather on an intermediary table, there is no # model method to override, meaning we must use - # a signal to invalidate the cache when a user is removed from a club - cache.delete(f"user_{instance.id}_groups") + # a signal to invalidate the cache when a user is removed from a group + cache.delete(f"user_{instance.pk}_groups") diff --git a/core/templatetags/renderer.py b/core/templatetags/renderer.py index 2ee19a45..86bd6791 100644 --- a/core/templatetags/renderer.py +++ b/core/templatetags/renderer.py @@ -24,15 +24,15 @@ # import datetime -import phonenumbers +import phonenumbers from django import template from django.template.defaultfilters import stringfilter from django.utils.safestring import mark_safe from django.utils.translation import ngettext -from core.scss.processor import ScssProcessor from core.markdown import markdown as md +from core.scss.processor import ScssProcessor register = template.Library() diff --git a/core/templatetags/search_helpers.py b/core/templatetags/search_helpers.py index 537ff357..d38574df 100644 --- a/core/templatetags/search_helpers.py +++ b/core/templatetags/search_helpers.py @@ -1,6 +1,6 @@ -from django.template.exceptions import TemplateSyntaxError from django import template from django.template.defaultfilters import stringfilter +from django.template.exceptions import TemplateSyntaxError register = template.Library() diff --git a/core/urls.py b/core/urls.py index ec42f880..3f6398e8 100644 --- a/core/urls.py +++ b/core/urls.py @@ -25,12 +25,12 @@ from django.urls import path, re_path, register_converter -from core.views import * from core.converters import ( + BooleanStringConverter, FourDigitYearConverter, TwoDigitMonthConverter, - BooleanStringConverter, ) +from core.views import * register_converter(FourDigitYearConverter, "yyyy") register_converter(TwoDigitMonthConverter, "mm") diff --git a/core/utils.py b/core/utils.py index d30e3ebf..62cf04bb 100644 --- a/core/utils.py +++ b/core/utils.py @@ -26,8 +26,8 @@ from typing import Optional import PIL from django.conf import settings from django.core.files.base import ContentFile -from PIL import ExifTags from django.utils import timezone +from PIL import ExifTags def get_git_revision_short_hash() -> str: diff --git a/core/views/__init__.py b/core/views/__init__.py index a36147b4..ad86fe2d 100644 --- a/core/views/__init__.py +++ b/core/views/__init__.py @@ -25,26 +25,21 @@ import types -from sentry_sdk import last_event_id -from django.shortcuts import render +from django.core.exceptions import ( + ImproperlyConfigured, + PermissionDenied, +) from django.http import ( HttpResponseForbidden, HttpResponseNotFound, HttpResponseServerError, ) -from django.template import RequestContext -from django.core.exceptions import ( - PermissionDenied, - ObjectDoesNotExist, - ImproperlyConfigured, -) -from django.views.generic.base import View -from django.views.generic.edit import FormView -from django.views.generic.detail import SingleObjectMixin from django.utils.functional import cached_property -from django.db.models import Count +from django.views.generic.base import View +from django.views.generic.detail import SingleObjectMixin +from django.views.generic.edit import FormView +from sentry_sdk import last_event_id -from core.models import Group from core.views.forms import LoginForm @@ -361,8 +356,8 @@ class DetailFormView(SingleObjectMixin, FormView): return super(DetailFormView, self).get_object() -from .user import * -from .page import * from .files import * -from .site import * from .group import * +from .page import * +from .site import * +from .user import * diff --git a/core/views/files.py b/core/views/files.py index 61d3aec9..7cce06e7 100644 --- a/core/views/files.py +++ b/core/views/files.py @@ -15,29 +15,28 @@ # # This file contains all the views that concern the page model -from django.shortcuts import redirect, get_object_or_404 -from django.utils.http import http_date -from django.views.generic import ListView, DetailView, TemplateView -from django.views.generic.edit import UpdateView, FormMixin, DeleteView -from django.views.generic.detail import SingleObjectMixin -from django.forms.models import modelform_factory -from django.conf import settings -from django.utils.translation import gettext_lazy as _ -from django.http import Http404, HttpResponse -from wsgiref.util import FileWrapper -from django.urls import reverse -from django.core.exceptions import PermissionDenied -from django import forms - import os +from wsgiref.util import FileWrapper from ajax_select import make_ajax_field +from django import forms +from django.conf import settings +from django.core.exceptions import PermissionDenied +from django.forms.models import modelform_factory +from django.http import Http404, HttpResponse +from django.shortcuts import get_object_or_404, redirect +from django.urls import reverse +from django.utils.http import http_date +from django.utils.translation import gettext_lazy as _ +from django.views.generic import DetailView, ListView, TemplateView +from django.views.generic.detail import SingleObjectMixin +from django.views.generic.edit import DeleteView, FormMixin, UpdateView -from core.models import SithFile, RealGroup, Notification +from core.models import Notification, RealGroup, SithFile from core.views import ( - CanViewMixin, CanEditMixin, CanEditPropMixin, + CanViewMixin, can_view, ) from counter.models import Counter diff --git a/core/views/forms.py b/core/views/forms.py index 936abb26..5426ef14 100644 --- a/core/views/forms.py +++ b/core/views/forms.py @@ -21,40 +21,37 @@ # Place - Suite 330, Boston, MA 02111-1307, USA. # # +import datetime +import re +from io import BytesIO + +from ajax_select import make_ajax_field +from ajax_select.fields import AutoCompleteSelectField from captcha.fields import CaptchaField -from django.contrib.auth.forms import UserCreationForm, AuthenticationForm from django import forms from django.conf import settings -from django.db import transaction -from django.templatetags.static import static -from django.urls import reverse +from django.contrib.auth.forms import AuthenticationForm, UserCreationForm from django.core.exceptions import ValidationError +from django.db import transaction from django.forms import ( CheckboxSelectMultiple, - Select, DateInput, - TextInput, DateTimeInput, Textarea, + TextInput, ) -from django.utils.translation import gettext_lazy as _ -from django.utils.translation import gettext -from phonenumber_field.widgets import PhoneNumberInternationalFallbackWidget -from ajax_select.fields import AutoCompleteSelectField -from ajax_select import make_ajax_field -from django.utils.dateparse import parse_datetime -from django.utils import timezone -import datetime from django.forms.utils import to_current_timezone - -import re - -from core.models import User, Page, SithFile, Gift - -from core.utils import resize_image -from io import BytesIO +from django.templatetags.static import static +from django.urls import reverse +from django.utils import timezone +from django.utils.dateparse import parse_datetime +from django.utils.translation import gettext +from django.utils.translation import gettext_lazy as _ +from phonenumber_field.widgets import PhoneNumberInternationalFallbackWidget from PIL import Image +from core.models import Gift, Page, SithFile, User +from core.utils import resize_image # Widgets diff --git a/core/views/group.py b/core/views/group.py index 419d699d..1c598832 100644 --- a/core/views/group.py +++ b/core/views/group.py @@ -18,15 +18,12 @@ This module contains views to manage Groups """ -from django.views.generic.edit import UpdateView, CreateView, DeleteView -from django.views.generic import ListView -from django.views.generic.edit import FormView -from django.urls import reverse_lazy -from django.shortcuts import get_object_or_404 -from django.utils.translation import gettext_lazy as _ -from django import forms - from ajax_select.fields import AutoCompleteSelectMultipleField +from django import forms +from django.urls import reverse_lazy +from django.utils.translation import gettext_lazy as _ +from django.views.generic import ListView +from django.views.generic.edit import CreateView, DeleteView, UpdateView from core.models import RealGroup, User from core.views import CanCreateMixin, CanEditMixin, DetailFormView diff --git a/core/views/page.py b/core/views/page.py index c2c7dbce..5f148235 100644 --- a/core/views/page.py +++ b/core/views/page.py @@ -15,16 +15,16 @@ # # This file contains all the views that concern the page model -from django.urls import reverse_lazy -from django.views.generic import ListView, DetailView -from django.views.generic.edit import UpdateView, CreateView, DeleteView from django.forms.models import modelform_factory from django.http import Http404 from django.shortcuts import redirect +from django.urls import reverse_lazy +from django.views.generic import DetailView, ListView +from django.views.generic.edit import CreateView, DeleteView, UpdateView -from core.models import Page, PageRev, LockError +from core.models import LockError, Page, PageRev +from core.views import CanCreateMixin, CanEditMixin, CanEditPropMixin, CanViewMixin from core.views.forms import MarkdownInput, PageForm, PagePropForm -from core.views import CanViewMixin, CanEditMixin, CanEditPropMixin, CanCreateMixin class CanEditPagePropMixin(CanEditPropMixin): diff --git a/core/views/site.py b/core/views/site.py index c7163488..bdd575f4 100644 --- a/core/views/site.py +++ b/core/views/site.py @@ -23,23 +23,22 @@ # # -from django.shortcuts import render, redirect -from django.http import JsonResponse -from django.core import serializers -from django.contrib.auth.decorators import login_required -from django.utils import html -from django.views.generic import ListView, TemplateView -from django.conf import settings -from django.utils.text import slugify -from django.db.models.query import QuerySet - import json +from django.conf import settings +from django.contrib.auth.decorators import login_required +from django.core import serializers +from django.db.models.query import QuerySet +from django.http import JsonResponse +from django.shortcuts import redirect, render +from django.utils import html +from django.utils.text import slugify +from django.views.generic import ListView, TemplateView from haystack.query import SearchQuerySet -from core.models import User, Notification -from core.utils import doku_to_markdown, bbcode_to_markdown from club.models import Club +from core.models import Notification, User +from core.utils import bbcode_to_markdown, doku_to_markdown def index(request, context=None): diff --git a/core/views/user.py b/core/views/user.py index dbd60f13..d8d8d909 100644 --- a/core/views/user.py +++ b/core/views/user.py @@ -24,50 +24,49 @@ # # This file contains all the views that concern the user model -from django.shortcuts import render, redirect, get_object_or_404 +import logging +from datetime import date, timedelta + +from django.conf import settings from django.contrib.auth import views from django.contrib.auth.forms import PasswordChangeForm -from django.utils.translation import gettext as _ -from django.urls import reverse from django.core.exceptions import PermissionDenied, ValidationError +from django.forms import CheckboxSelectMultiple +from django.forms.models import modelform_factory from django.http import Http404, HttpResponse -from django.views.generic.edit import UpdateView +from django.shortcuts import get_object_or_404, redirect, render +from django.template.response import TemplateResponse +from django.urls import reverse, reverse_lazy +from django.utils.translation import gettext as _ from django.views.generic import ( - ListView, - DetailView, - TemplateView, CreateView, DeleteView, + DetailView, + ListView, + TemplateView, ) -from django.forms.models import modelform_factory -from django.forms import CheckboxSelectMultiple -from django.urls import reverse_lazy -from django.template.response import TemplateResponse -from django.conf import settings -from django.views.generic.dates import YearMixin, MonthMixin +from django.views.generic.dates import MonthMixin, YearMixin +from django.views.generic.edit import UpdateView -from datetime import timedelta, date -import logging from api.views.sas import all_pictures_of_user - +from core.models import Gift, Preferences, SithFile, User from core.views import ( - CanViewMixin, CanEditMixin, CanEditPropMixin, - UserIsLoggedMixin, - TabedViewMixin, + CanViewMixin, QuickNotifMixin, + TabedViewMixin, + UserIsLoggedMixin, ) from core.views.forms import ( - RegisteringForm, - UserProfileForm, - LoginForm, - UserGodfathersForm, GiftForm, + LoginForm, + RegisteringForm, + UserGodfathersForm, + UserProfileForm, ) -from core.models import User, SithFile, Preferences, Gift -from subscription.models import Subscription from counter.forms import StudentCardForm +from subscription.models import Subscription from trombi.views import UserTrombiForm @@ -501,9 +500,10 @@ class UserStatsView(UserTabsMixin, CanViewMixin, DetailView): def get_context_data(self, **kwargs): kwargs = super(UserStatsView, self).get_context_data(**kwargs) - from counter.models import Counter from django.db.models import Sum + from counter.models import Counter + foyer = Counter.objects.filter(name="Foyer").first() mde = Counter.objects.filter(name="MDE").first() gommette = Counter.objects.filter(name="La Gommette").first() @@ -601,10 +601,12 @@ class UserUploadProfilePictView(CanEditMixin, DetailView): template_name = "core/user_edit.jinja" def post(self, request, *args, **kwargs): - from core.utils import resize_image from io import BytesIO + from PIL import Image + from core.utils import resize_image + self.object = self.get_object() if self.object.profile_pict: raise ValidationError(_("User already has a profile picture")) diff --git a/counter/app.py b/counter/app.py index c1feefe2..a1165d7c 100644 --- a/counter/app.py +++ b/counter/app.py @@ -31,4 +31,4 @@ class CounterConfig(AppConfig): verbose_name = _("counter") def ready(self): - import counter.signals + import counter.signals # noqa F401 diff --git a/counter/forms.py b/counter/forms.py index a09236e7..7c282f57 100644 --- a/counter/forms.py +++ b/counter/forms.py @@ -3,15 +3,15 @@ from ajax_select.fields import AutoCompleteSelectField, AutoCompleteSelectMultip from django import forms from django.utils.translation import gettext_lazy as _ -from core.views.forms import TzAwareDateTimeField, SelectDate +from core.views.forms import SelectDate, TzAwareDateTimeField from counter.models import ( BillingInfo, - StudentCard, - Customer, - Refilling, Counter, - Product, + Customer, Eticket, + Product, + Refilling, + StudentCard, ) diff --git a/counter/migrations/0001_initial.py b/counter/migrations/0001_initial.py index e9635e5d..aa84e936 100644 --- a/counter/migrations/0001_initial.py +++ b/counter/migrations/0001_initial.py @@ -1,11 +1,11 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models -import accounting.models import django.db.models.deletion from django.conf import settings -import django.db.models.deletion +from django.db import migrations, models + +import accounting.models class Migration(migrations.Migration): diff --git a/counter/migrations/0002_auto_20160826_1342.py b/counter/migrations/0002_auto_20160826_1342.py index ccc4288c..83e6a83a 100644 --- a/counter/migrations/0002_auto_20160826_1342.py +++ b/counter/migrations/0002_auto_20160826_1342.py @@ -1,10 +1,11 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models -from django.conf import settings -import accounting.models import django.db.models.deletion +from django.conf import settings +from django.db import migrations, models + +import accounting.models class Migration(migrations.Migration): diff --git a/counter/migrations/0003_permanency_activity.py b/counter/migrations/0003_permanency_activity.py index be4e9962..929d8308 100644 --- a/counter/migrations/0003_permanency_activity.py +++ b/counter/migrations/0003_permanency_activity.py @@ -1,8 +1,9 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models import datetime + +from django.db import migrations, models from django.utils.timezone import utc diff --git a/counter/migrations/0005_auto_20160826_2330.py b/counter/migrations/0005_auto_20160826_2330.py index 8e0df744..9dc3fad9 100644 --- a/counter/migrations/0005_auto_20160826_2330.py +++ b/counter/migrations/0005_auto_20160826_2330.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/counter/migrations/0009_eticket.py b/counter/migrations/0009_eticket.py index 68b675ef..96d82e30 100644 --- a/counter/migrations/0009_eticket.py +++ b/counter/migrations/0009_eticket.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/counter/migrations/0013_customer_recorded_products.py b/counter/migrations/0013_customer_recorded_products.py index d6b3cfa8..271491eb 100644 --- a/counter/migrations/0013_customer_recorded_products.py +++ b/counter/migrations/0013_customer_recorded_products.py @@ -1,12 +1,12 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.utils.translation import gettext_lazy as _ -from django.db import migrations, models from django.conf import settings +from django.db import migrations, models +from django.utils.translation import gettext_lazy as _ from core.models import User -from counter.models import Customer, Product, Selling, Counter +from counter.models import Counter, Customer, Product, Selling def balance_ecocups(apps, schema_editor): diff --git a/counter/migrations/0015_merge.py b/counter/migrations/0015_merge.py index 6dcff021..eba94807 100644 --- a/counter/migrations/0015_merge.py +++ b/counter/migrations/0015_merge.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models +from django.db import migrations class Migration(migrations.Migration): diff --git a/counter/migrations/0017_studentcard.py b/counter/migrations/0017_studentcard.py index a2f62222..267cef25 100644 --- a/counter/migrations/0017_studentcard.py +++ b/counter/migrations/0017_studentcard.py @@ -3,8 +3,8 @@ from __future__ import unicode_literals import django.core.validators -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/counter/migrations/0019_billinginfo.py b/counter/migrations/0019_billinginfo.py index c4c74c39..b348c86a 100644 --- a/counter/migrations/0019_billinginfo.py +++ b/counter/migrations/0019_billinginfo.py @@ -1,8 +1,8 @@ # Generated by Django 3.2.16 on 2023-01-08 12:49 -from django.db import migrations, models import django.db.models.deletion import django_countries.fields +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/counter/migrations/0020_auto_20221215_1709.py b/counter/migrations/0020_auto_20221215_1709.py index 52010133..22db406b 100644 --- a/counter/migrations/0020_auto_20221215_1709.py +++ b/counter/migrations/0020_auto_20221215_1709.py @@ -1,8 +1,9 @@ # Generated by Django 3.2.16 on 2022-12-15 16:09 -import accounting.models from django.db import migrations +import accounting.models + class Migration(migrations.Migration): dependencies = [ diff --git a/counter/models.py b/counter/models.py index 476aaf13..c9972f10 100644 --- a/counter/models.py +++ b/counter/models.py @@ -15,35 +15,33 @@ # from __future__ import annotations -from typing import Tuple, Optional - -from django.db import models -from django.db.models import F, Value, Sum, QuerySet, OuterRef, Exists -from django.db.models.functions import Concat, Length -from django.utils.translation import gettext_lazy as _ -from django.utils import timezone -from django.conf import settings -from django.urls import reverse -from django.core.validators import MinLengthValidator -from django.forms import ValidationError -from django.utils.functional import cached_property - -from datetime import timedelta, date, datetime +import base64 +import os import random import string -import os -import base64 -from dict2xml import dict2xml +from datetime import date, datetime, timedelta +from typing import Optional, Tuple +from dict2xml import dict2xml +from django.conf import settings +from django.core.validators import MinLengthValidator +from django.db import models +from django.db.models import Exists, F, OuterRef, QuerySet, Sum, Value +from django.db.models.functions import Concat, Length +from django.forms import ValidationError +from django.urls import reverse +from django.utils import timezone +from django.utils.functional import cached_property +from django.utils.translation import gettext_lazy as _ +from django_countries.fields import CountryField + +from accounting.models import CurrencyField +from club.models import Club +from core.models import Group, Notification, User from core.utils import get_start_of_semester from sith.settings import SITH_COUNTER_OFFICES, SITH_MAIN_CLUB -from club.models import Club, Membership -from accounting.models import CurrencyField -from core.models import Group, User, Notification from subscription.models import Subscription -from django_countries.fields import CountryField - class Customer(models.Model): """ diff --git a/counter/signals.py b/counter/signals.py index 9c1f4b78..9221494d 100644 --- a/counter/signals.py +++ b/counter/signals.py @@ -24,12 +24,10 @@ from django.db.models.signals import pre_delete from django.dispatch import receiver -from django.conf import settings from core.middleware import get_signal_request from core.models import OperationLog - -from counter.models import Selling, Refilling, Counter +from counter.models import Counter, Refilling, Selling def write_log(instance, operation_type): diff --git a/counter/tests.py b/counter/tests.py index 6079099a..f921a5d4 100644 --- a/counter/tests.py +++ b/counter/tests.py @@ -13,20 +13,18 @@ # OR WITHIN THE LOCAL FILE "LICENSE" # # -from datetime import date, timedelta import json import re import string from django.test import TestCase from django.urls import reverse -from django.core.management import call_command from django.utils import timezone from django.utils.timezone import timedelta from club.models import Club from core.models import User -from counter.models import Counter, Customer, BillingInfo, Permanency, Selling, Product +from counter.models import BillingInfo, Counter, Customer, Permanency, Product, Selling from sith.settings import SITH_MAIN_CLUB diff --git a/counter/views.py b/counter/views.py index 4c0b167b..fe10d0a1 100644 --- a/counter/views.py +++ b/counter/views.py @@ -14,68 +14,65 @@ # # import json +import re +from datetime import datetime, timedelta +from http import HTTPStatus from urllib.parse import parse_qs +import pytz +from django import forms +from django.conf import settings from django.contrib.auth.decorators import login_required -from django.db.models import F -from django.shortcuts import get_object_or_404 -from django.http import Http404 from django.core.exceptions import PermissionDenied +from django.db import DataError, transaction +from django.db.models import F +from django.forms import CheckboxSelectMultiple +from django.forms.models import modelform_factory +from django.http import Http404, HttpResponse, HttpResponseRedirect, JsonResponse +from django.shortcuts import get_object_or_404 +from django.urls import reverse, reverse_lazy +from django.utils import timezone +from django.utils.translation import gettext_lazy as _ from django.views.decorators.http import require_POST -from django.views.generic import ListView, DetailView, RedirectView, TemplateView +from django.views.generic import DetailView, ListView, RedirectView, TemplateView from django.views.generic.base import View from django.views.generic.edit import ( - UpdateView, CreateView, DeleteView, - ProcessFormView, FormMixin, FormView, + ProcessFormView, + UpdateView, ) -from django.forms.models import modelform_factory -from django.forms import CheckboxSelectMultiple -from django.urls import reverse_lazy, reverse -from django.http import HttpResponseRedirect, HttpResponse, JsonResponse -from django.utils import timezone -from django import forms -from django.utils.translation import gettext_lazy as _ -from django.conf import settings -from django.db import DataError, transaction -import json -import re -import pytz -from datetime import timedelta, datetime -from http import HTTPStatus - -from core.utils import get_start_of_semester, get_semester_code -from core.views import CanViewMixin, TabedViewMixin, CanEditMixin -from core.views.forms import LoginForm +from accounting.models import CurrencyField from core.models import User +from core.utils import get_semester_code, get_start_of_semester +from core.views import CanEditMixin, CanViewMixin, TabedViewMixin +from core.views.forms import LoginForm from counter.forms import ( BillingInfoForm, - StudentCardForm, - GetUserForm, - RefillForm, - CounterEditForm, - ProductEditForm, CashSummaryFormBase, + CounterEditForm, EticketForm, + GetUserForm, + ProductEditForm, + RefillForm, + StudentCardForm, ) from counter.models import ( - Counter, - Customer, - StudentCard, - Product, - Selling, - Refilling, - ProductType, + BillingInfo, CashRegisterSummary, CashRegisterSummaryItem, + Counter, + Customer, Eticket, - BillingInfo, + Product, + ProductType, + Refilling, + Selling, + StudentCard, ) -from accounting.models import CurrencyField class CounterAdminMixin(View): @@ -1486,7 +1483,7 @@ class InvoiceCallView(CounterAdminTabsMixin, CounterAdminMixin, TemplateView): end_date = (start_date + timedelta(days=32)).replace( day=1, hour=0, minute=0, microsecond=0 ) - from django.db.models import Sum, Case, When, F + from django.db.models import Case, F, Sum, When kwargs["sum_cb"] = sum( [ @@ -1574,12 +1571,12 @@ class EticketPDFView(CanViewMixin, DetailView): pk_url_kwarg = "selling_id" def get(self, request, *args, **kwargs): - from reportlab.pdfgen import canvas - from reportlab.lib.utils import ImageReader - from reportlab.lib.units import cm - from reportlab.graphics.shapes import Drawing - from reportlab.graphics.barcode.qr import QrCodeWidget from reportlab.graphics import renderPDF + from reportlab.graphics.barcode.qr import QrCodeWidget + from reportlab.graphics.shapes import Drawing + from reportlab.lib.units import cm + from reportlab.lib.utils import ImageReader + from reportlab.pdfgen import canvas if not ( hasattr(self.object, "product") and hasattr(self.object.product, "eticket") diff --git a/doc/conf.py b/doc/conf.py index 2a103e0b..d9f219c9 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -12,6 +12,7 @@ # import os import sys + import django sys.path.insert(0, os.path.abspath("..")) diff --git a/eboutic/forms.py b/eboutic/forms.py index c5842700..3189e330 100644 --- a/eboutic/forms.py +++ b/eboutic/forms.py @@ -25,8 +25,8 @@ import json import re import typing - from urllib.parse import unquote + from django.http import HttpRequest from django.utils.translation import gettext as _ from sentry_sdk import capture_message diff --git a/eboutic/migrations/0001_initial.py b/eboutic/migrations/0001_initial.py index b642642f..f698999c 100644 --- a/eboutic/migrations/0001_initial.py +++ b/eboutic/migrations/0001_initial.py @@ -1,10 +1,11 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models -import accounting.models -from django.conf import settings import django.db.models.deletion +from django.conf import settings +from django.db import migrations, models + +import accounting.models class Migration(migrations.Migration): diff --git a/eboutic/models.py b/eboutic/models.py index 556eb8ab..da048b63 100644 --- a/eboutic/models.py +++ b/eboutic/models.py @@ -14,21 +14,20 @@ # # import hmac -import html import typing from datetime import datetime from typing import List from dict2xml import dict2xml from django.conf import settings -from django.db import models, DataError -from django.db.models import Sum, F +from django.db import DataError, models +from django.db.models import F, Sum from django.utils.functional import cached_property from django.utils.translation import gettext_lazy as _ from accounting.models import CurrencyField -from core.models import Group, User -from counter.models import Counter, Product, Selling, Refilling, BillingInfo, Customer +from core.models import User +from counter.models import BillingInfo, Counter, Customer, Product, Refilling, Selling def get_eboutic_products(user: User) -> List[Product]: diff --git a/eboutic/tests.py b/eboutic/tests.py index b37b4a7b..3435bfc5 100644 --- a/eboutic/tests.py +++ b/eboutic/tests.py @@ -26,15 +26,14 @@ import base64 import json import urllib -from OpenSSL import crypto from django.conf import settings -from django.core.management import call_command from django.db.models import Max from django.test import TestCase from django.urls import reverse +from OpenSSL import crypto from core.models import User -from counter.models import Product, Counter, Customer, Selling +from counter.models import Counter, Customer, Product, Selling from eboutic.models import Basket diff --git a/eboutic/tests/test.py b/eboutic/tests/test.py index 2a4e6cfb..359db7ff 100755 --- a/eboutic/tests/test.py +++ b/eboutic/tests/test.py @@ -7,6 +7,7 @@ # import base64 + from OpenSSL import crypto with open("./private_key.pem") as f: diff --git a/eboutic/urls.py b/eboutic/urls.py index a1bd6ecd..22602aeb 100644 --- a/eboutic/urls.py +++ b/eboutic/urls.py @@ -25,8 +25,8 @@ from django.urls import path, register_converter -from eboutic.views import * from eboutic.converters import PaymentResultConverter +from eboutic.views import * register_converter(PaymentResultConverter, "res") diff --git a/eboutic/views.py b/eboutic/views.py index 885edf43..c240d64d 100644 --- a/eboutic/views.py +++ b/eboutic/views.py @@ -16,23 +16,23 @@ import base64 import json -import sentry_sdk - from datetime import datetime from urllib.parse import unquote -from OpenSSL import crypto + +import sentry_sdk from django.conf import settings from django.contrib.auth.decorators import login_required from django.core.exceptions import SuspiciousOperation -from django.db import transaction, DatabaseError -from django.http import HttpResponse, HttpRequest -from django.shortcuts import render, redirect +from django.db import DatabaseError, transaction +from django.http import HttpRequest, HttpResponse +from django.shortcuts import redirect, render from django.utils.decorators import method_decorator from django.views.decorators.http import require_GET, require_POST from django.views.generic import TemplateView, View +from OpenSSL import crypto from counter.forms import BillingInfoForm -from counter.models import Customer, Counter, Product +from counter.models import Counter, Customer, Product from eboutic.forms import BasketForm from eboutic.models import Basket, Invoice, InvoiceItem, get_eboutic_products diff --git a/election/admin.py b/election/admin.py index 3cd3ce37..fadc9a52 100644 --- a/election/admin.py +++ b/election/admin.py @@ -1,7 +1,7 @@ from ajax_select import make_ajax_form from django.contrib import admin -from election.models import Election, Role, ElectionList, Candidature +from election.models import Candidature, Election, ElectionList, Role @admin.register(Election) diff --git a/election/migrations/0001_initial.py b/election/migrations/0001_initial.py index d3c4c449..04deb469 100644 --- a/election/migrations/0001_initial.py +++ b/election/migrations/0001_initial.py @@ -1,9 +1,9 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models -from django.conf import settings import django.db.models.deletion +from django.conf import settings +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/election/models.py b/election/models.py index f100a1d6..3bcf761f 100644 --- a/election/models.py +++ b/election/models.py @@ -1,9 +1,9 @@ from django.db import models -from ordered_model.models import OrderedModel -from django.utils.translation import gettext_lazy as _ from django.utils import timezone +from django.utils.translation import gettext_lazy as _ +from ordered_model.models import OrderedModel -from core.models import User, Group +from core.models import Group, User class Election(models.Model): diff --git a/election/tests.py b/election/tests.py index 03b46481..3a3de97a 100644 --- a/election/tests.py +++ b/election/tests.py @@ -1,9 +1,8 @@ +from django.conf import settings from django.test import TestCase from django.urls import reverse -from django.core.management import call_command -from django.conf import settings -from core.models import User, Group +from core.models import Group, User from election.models import Election diff --git a/election/views.py b/election/views.py index a223c78c..71be8bfe 100644 --- a/election/views.py +++ b/election/views.py @@ -1,24 +1,19 @@ -from django.shortcuts import get_object_or_404 -from django.views.generic import ListView, DetailView -from django.views.generic.edit import UpdateView, CreateView -from django.views.generic.edit import DeleteView, FormView -from django.urls import reverse_lazy, reverse -from django.utils.translation import gettext_lazy as _ +from ajax_select import make_ajax_field +from ajax_select.fields import AutoCompleteSelectField +from django import forms from django.core.exceptions import PermissionDenied from django.db import transaction -from django.shortcuts import redirect -from django import forms +from django.db.models.query import QuerySet +from django.shortcuts import get_object_or_404, redirect +from django.urls import reverse, reverse_lazy +from django.utils.translation import gettext_lazy as _ +from django.views.generic import DetailView, ListView +from django.views.generic.edit import CreateView, DeleteView, FormView, UpdateView from core.models import User -from core.views import CanViewMixin, CanEditMixin, CanCreateMixin -from django.db.models.query import QuerySet -from core.views.forms import SelectDateTime, MarkdownInput -from election.models import Election, Role, Candidature, ElectionList, Vote -from core.views.forms import TzAwareDateTimeField - -from ajax_select.fields import AutoCompleteSelectField -from ajax_select import make_ajax_field - +from core.views import CanCreateMixin, CanEditMixin, CanViewMixin +from core.views.forms import MarkdownInput, TzAwareDateTimeField +from election.models import Candidature, Election, ElectionList, Role, Vote # Custom form field diff --git a/forum/admin.py b/forum/admin.py index 6d0c088a..eff7d401 100644 --- a/forum/admin.py +++ b/forum/admin.py @@ -17,7 +17,6 @@ from django.contrib import admin from haystack.admin import SearchModelAdmin - from forum.models import * diff --git a/forum/migrations/0001_initial.py b/forum/migrations/0001_initial.py index 6c06b0a6..4ad137d6 100644 --- a/forum/migrations/0001_initial.py +++ b/forum/migrations/0001_initial.py @@ -1,12 +1,13 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals +import datetime + +import django.db.models.deletion +import django.utils.timezone +from django.conf import settings from django.db import migrations, models from django.utils.timezone import utc -from django.conf import settings -import django.utils.timezone -import datetime -import django.db.models.deletion class Migration(migrations.Migration): diff --git a/forum/migrations/0004_auto_20170531_1949.py b/forum/migrations/0004_auto_20170531_1949.py index 152bdaea..ef466a9b 100644 --- a/forum/migrations/0004_auto_20170531_1949.py +++ b/forum/migrations/0004_auto_20170531_1949.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/forum/migrations/0005_forumtopic_subscribed_users.py b/forum/migrations/0005_forumtopic_subscribed_users.py index b1f6d629..b977aadf 100644 --- a/forum/migrations/0005_forumtopic_subscribed_users.py +++ b/forum/migrations/0005_forumtopic_subscribed_users.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models from django.conf import settings +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/forum/migrations/0006_auto_20180426_2013.py b/forum/migrations/0006_auto_20180426_2013.py index 30248dec..974b9b8e 100644 --- a/forum/migrations/0006_auto_20180426_2013.py +++ b/forum/migrations/0006_auto_20180426_2013.py @@ -2,6 +2,7 @@ from __future__ import unicode_literals from django.db import migrations, models + import forum.models diff --git a/forum/models.py b/forum/models.py index 3894caa7..a7d77c4d 100644 --- a/forum/models.py +++ b/forum/models.py @@ -22,20 +22,20 @@ # # -from django.db import models +from datetime import datetime +from itertools import chain + +import pytz from django.conf import settings -from django.utils.translation import gettext_lazy as _ from django.core.exceptions import ValidationError +from django.db import models from django.urls import reverse from django.utils import timezone from django.utils.functional import cached_property +from django.utils.translation import gettext_lazy as _ -from datetime import datetime -from itertools import chain -import pytz - -from core.models import User, Group from club.models import Club +from core.models import Group, User class Forum(models.Model): diff --git a/forum/tests.py b/forum/tests.py index 46a200c2..d888e761 100644 --- a/forum/tests.py +++ b/forum/tests.py @@ -14,6 +14,4 @@ # # -from django.test import TestCase - # Create your tests here. diff --git a/forum/views.py b/forum/views.py index 9b75794b..74e6bff4 100644 --- a/forum/views.py +++ b/forum/views.py @@ -23,31 +23,30 @@ # # -from django.shortcuts import get_object_or_404 -from django.views.generic import ListView, DetailView, RedirectView -from django.views.generic.edit import UpdateView, CreateView, DeleteView -from django.views.generic.detail import SingleObjectMixin -from django.utils.translation import gettext_lazy as _ -from django.urls import reverse_lazy -from django.utils import timezone, html -from django.conf import settings -from django import forms -from django.core.exceptions import PermissionDenied -from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger - from ajax_select import make_ajax_field +from django import forms +from django.conf import settings +from django.core.exceptions import PermissionDenied +from django.core.paginator import EmptyPage, PageNotAnInteger, Paginator +from django.shortcuts import get_object_or_404 +from django.urls import reverse_lazy +from django.utils import html, timezone +from django.utils.translation import gettext_lazy as _ +from django.views.generic import DetailView, ListView, RedirectView +from django.views.generic.detail import SingleObjectMixin +from django.views.generic.edit import CreateView, DeleteView, UpdateView +from haystack.query import RelatedSearchQuerySet from core.views import ( - CanViewMixin, + CanCreateMixin, CanEditMixin, CanEditPropMixin, - CanCreateMixin, + CanViewMixin, UserIsLoggedMixin, can_view, ) from core.views.forms import MarkdownInput -from forum.models import Forum, ForumMessage, ForumTopic, ForumMessageMeta -from haystack.query import RelatedSearchQuerySet +from forum.models import Forum, ForumMessage, ForumMessageMeta, ForumTopic class ForumSearchView(ListView): diff --git a/galaxy/management/commands/generate_galaxy_test_data.py b/galaxy/management/commands/generate_galaxy_test_data.py index f6442487..191198f7 100644 --- a/galaxy/management/commands/generate_galaxy_test_data.py +++ b/galaxy/management/commands/generate_galaxy_test_data.py @@ -21,7 +21,9 @@ # Place - Suite 330, Boston, MA 02111-1307, USA. # # +import logging import warnings +from datetime import timedelta from typing import Final, Optional from django.conf import settings @@ -29,15 +31,10 @@ from django.core.files.base import ContentFile from django.core.management.base import BaseCommand from django.utils import timezone -from datetime import timedelta - -import logging - from club.models import Club, Membership -from core.models import User, Group, Page, SithFile +from core.models import Group, Page, SithFile, User +from sas.models import Album, PeoplePictureRelation, Picture from subscription.models import Subscription -from sas.models import Album, Picture, PeoplePictureRelation - RED_PIXEL_PNG: Final[bytes] = ( b"\x89\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52" diff --git a/galaxy/management/commands/rule_galaxy.py b/galaxy/management/commands/rule_galaxy.py index 55cb9ae9..1743fadc 100644 --- a/galaxy/management/commands/rule_galaxy.py +++ b/galaxy/management/commands/rule_galaxy.py @@ -21,6 +21,7 @@ # Place - Suite 330, Boston, MA 02111-1307, USA. # # +import logging import warnings from django.core.management.base import BaseCommand @@ -28,8 +29,6 @@ from django.db import connection from galaxy.models import Galaxy -import logging - class Command(BaseCommand): help = ( diff --git a/galaxy/migrations/0001_initial.py b/galaxy/migrations/0001_initial.py index ab9a6a06..7c8e8521 100644 --- a/galaxy/migrations/0001_initial.py +++ b/galaxy/migrations/0001_initial.py @@ -1,8 +1,8 @@ # Generated by Django 3.2.16 on 2023-03-02 10:07 +import django.db.models.deletion from django.conf import settings from django.db import migrations, models -import django.db.models.deletion class Migration(migrations.Migration): diff --git a/galaxy/migrations/0002_auto_20230412_1130.py b/galaxy/migrations/0002_auto_20230412_1130.py index be01af99..00a69d00 100644 --- a/galaxy/migrations/0002_auto_20230412_1130.py +++ b/galaxy/migrations/0002_auto_20230412_1130.py @@ -1,8 +1,8 @@ # Generated by Django 3.2.16 on 2023-04-12 09:30 +import django.db.models.deletion from django.conf import settings from django.db import migrations, models -import django.db.models.deletion class Migration(migrations.Migration): diff --git a/galaxy/models.py b/galaxy/models.py index 744cca79..cca7397d 100644 --- a/galaxy/models.py +++ b/galaxy/models.py @@ -24,20 +24,19 @@ from __future__ import annotations -import math import logging +import math import time - -from typing import List, TypedDict, NamedTuple, Union, Optional +from typing import List, NamedTuple, Optional, TypedDict, Union from django.db import models -from django.db.models import Q, Case, F, Value, When, Count +from django.db.models import Case, Count, F, Q, Value, When from django.db.models.functions import Concat from django.utils import timezone from django.utils.translation import gettext_lazy as _ -from core.models import User from club.models import Club +from core.models import User from sas.models import Picture diff --git a/galaxy/tests.py b/galaxy/tests.py index 70314574..2a523af3 100644 --- a/galaxy/tests.py +++ b/galaxy/tests.py @@ -23,7 +23,6 @@ # import json - from pathlib import Path from django.core.management import call_command diff --git a/galaxy/views.py b/galaxy/views.py index 3dda003e..3e0b33da 100644 --- a/galaxy/views.py +++ b/galaxy/views.py @@ -22,18 +22,18 @@ # # -from django.views.generic import DetailView, View -from django.http import JsonResponse, Http404 -from django.db.models import Q, Case, F, When, Value +from django.db.models import Case, F, Q, Value, When from django.db.models.functions import Concat +from django.http import Http404, JsonResponse from django.utils.translation import gettext_lazy as _ +from django.views.generic import DetailView, View +from core.models import User from core.views import ( CanViewMixin, FormerSubscriberMixin, + UserTabsMixin, ) -from core.models import User -from core.views import UserTabsMixin from galaxy.models import Galaxy, GalaxyLane diff --git a/launderette/migrations/0001_initial.py b/launderette/migrations/0001_initial.py index 79f011a7..f1548cd2 100644 --- a/launderette/migrations/0001_initial.py +++ b/launderette/migrations/0001_initial.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/launderette/models.py b/launderette/models.py index 3ca12b2d..c2f344bb 100644 --- a/launderette/models.py +++ b/launderette/models.py @@ -14,14 +14,14 @@ # # -from django.db import models, DataError -from django.utils.translation import gettext_lazy as _ from django.conf import settings +from django.db import DataError, models from django.urls import reverse +from django.utils.translation import gettext_lazy as _ -from counter.models import Counter -from core.models import User from club.models import Club +from core.models import User +from counter.models import Counter # Create your models here. diff --git a/launderette/tests.py b/launderette/tests.py index 46a200c2..d888e761 100644 --- a/launderette/tests.py +++ b/launderette/tests.py @@ -14,6 +14,4 @@ # # -from django.test import TestCase - # Create your tests here. diff --git a/launderette/views.py b/launderette/views.py index 716b41f4..c0b16eed 100644 --- a/launderette/views.py +++ b/launderette/views.py @@ -14,27 +14,26 @@ # # -from datetime import datetime, timedelta from collections import OrderedDict +from datetime import datetime, timedelta + import pytz - -from django.views.generic import ListView, DetailView, TemplateView -from django.views.generic.edit import UpdateView, CreateView, DeleteView, BaseFormView -from django.utils.translation import gettext as _ -from django.utils import dateparse, timezone -from django.urls import reverse_lazy -from django.conf import settings -from django.db import transaction, DataError from django import forms +from django.conf import settings +from django.db import DataError, transaction from django.template import defaultfilters +from django.urls import reverse_lazy +from django.utils import dateparse, timezone +from django.utils.translation import gettext as _ +from django.views.generic import DetailView, ListView, TemplateView +from django.views.generic.edit import BaseFormView, CreateView, DeleteView, UpdateView -from core.models import Page, User from club.models import Club -from core.views import CanViewMixin, CanEditMixin, CanEditPropMixin, CanCreateMixin -from launderette.models import Launderette, Token, Machine, Slot -from counter.models import Counter, Customer, Selling +from core.models import Page, User +from core.views import CanCreateMixin, CanEditMixin, CanEditPropMixin, CanViewMixin from counter.forms import GetUserForm - +from counter.models import Counter, Customer, Selling +from launderette.models import Launderette, Machine, Slot, Token # For users diff --git a/matmat/admin.py b/matmat/admin.py index 8c38f3f3..846f6b40 100644 --- a/matmat/admin.py +++ b/matmat/admin.py @@ -1,3 +1 @@ -from django.contrib import admin - # Register your models here. diff --git a/matmat/models.py b/matmat/models.py index 71a83623..6b202199 100644 --- a/matmat/models.py +++ b/matmat/models.py @@ -1,3 +1 @@ -from django.db import models - # Create your models here. diff --git a/matmat/tests.py b/matmat/tests.py index 7ce503c2..a39b155a 100644 --- a/matmat/tests.py +++ b/matmat/tests.py @@ -1,3 +1 @@ -from django.test import TestCase - # Create your tests here. diff --git a/matmat/views.py b/matmat/views.py index 10b2d4f5..eb769c62 100644 --- a/matmat/views.py +++ b/matmat/views.py @@ -24,19 +24,18 @@ from ast import literal_eval from enum import Enum -from django.views.generic import ListView, View -from django.views.generic.edit import FormView -from django.utils.translation import gettext_lazy as _ -from django.views.generic.detail import SingleObjectMixin +from django import forms from django.http.response import HttpResponseRedirect from django.urls import reverse -from django import forms +from django.utils.translation import gettext_lazy as _ +from django.views.generic import ListView, View +from django.views.generic.detail import SingleObjectMixin +from django.views.generic.edit import FormView +from phonenumber_field.widgets import PhoneNumberInternationalFallbackWidget from core.models import User -from core.views import FormerSubscriberMixin +from core.views import FormerSubscriberMixin, search_user from core.views.forms import SelectDate -from core.views import search_user -from phonenumber_field.widgets import PhoneNumberInternationalFallbackWidget # Enum to select search type diff --git a/pedagogy/forms.py b/pedagogy/forms.py index 6a3d29ce..28810e64 100644 --- a/pedagogy/forms.py +++ b/pedagogy/forms.py @@ -24,12 +24,9 @@ from django import forms from django.utils.translation import gettext_lazy as _ -from django.forms.widgets import Widget -from django.templatetags.static import static -from core.views.forms import MarkdownInput from core.models import User - +from core.views.forms import MarkdownInput from pedagogy.models import UV, UVComment, UVCommentReport diff --git a/pedagogy/migrations/0001_initial.py b/pedagogy/migrations/0001_initial.py index e4285277..782e65c4 100644 --- a/pedagogy/migrations/0001_initial.py +++ b/pedagogy/migrations/0001_initial.py @@ -2,10 +2,10 @@ # Generated by Django 1.11.20 on 2019-07-05 14:32 from __future__ import unicode_literals -from django.conf import settings import django.core.validators -from django.db import migrations, models import django.db.models.deletion +from django.conf import settings +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/pedagogy/models.py b/pedagogy/models.py index 2278dda6..0de5c230 100644 --- a/pedagogy/models.py +++ b/pedagogy/models.py @@ -22,14 +22,13 @@ # # -from django.db import models -from django.utils.translation import gettext_lazy as _ -from django.utils import timezone -from django.core import validators from django.conf import settings -from django.utils.functional import cached_property +from django.core import validators +from django.db import models from django.urls import reverse - +from django.utils import timezone +from django.utils.functional import cached_property +from django.utils.translation import gettext_lazy as _ from rest_framework import serializers from core.models import User diff --git a/pedagogy/search_indexes.py b/pedagogy/search_indexes.py index 3ea75343..c6bc74af 100644 --- a/pedagogy/search_indexes.py +++ b/pedagogy/search_indexes.py @@ -23,7 +23,6 @@ # from django.db import models - from haystack import indexes, signals from core.search_indexes import BigCharFieldIndex diff --git a/pedagogy/tests.py b/pedagogy/tests.py index baee59bf..c52ee2ae 100644 --- a/pedagogy/tests.py +++ b/pedagogy/tests.py @@ -23,13 +23,12 @@ # from django.conf import settings +from django.core.management import call_command from django.test import TestCase from django.urls import reverse from django.utils.translation import gettext_lazy as _ -from django.core.management import call_command - -from core.models import User, Notification +from core.models import Notification, User from pedagogy.models import UV, UVComment, UVCommentReport diff --git a/pedagogy/views.py b/pedagogy/views.py index 13151c60..89187ca5 100644 --- a/pedagogy/views.py +++ b/pedagogy/views.py @@ -22,38 +22,35 @@ # # +from django.conf import settings +from django.core.exceptions import ObjectDoesNotExist, PermissionDenied +from django.http import HttpResponse +from django.shortcuts import get_object_or_404 +from django.urls import reverse, reverse_lazy +from django.utils import html from django.views.generic import ( CreateView, DeleteView, - UpdateView, - ListView, FormView, + ListView, + UpdateView, View, ) -from django.utils import html -from django.http import HttpResponse -from django.core.exceptions import PermissionDenied, ObjectDoesNotExist -from django.urls import reverse_lazy, reverse -from django.shortcuts import get_object_or_404 -from django.conf import settings - from haystack.query import SearchQuerySet from rest_framework.renderers import JSONRenderer +from core.models import Notification, RealGroup from core.views import ( - DetailFormView, CanCreateMixin, - CanEditMixin, - CanViewMixin, CanEditPropMixin, + CanViewMixin, + DetailFormView, ) -from core.models import RealGroup, Notification - from pedagogy.forms import ( - UVForm, UVCommentForm, - UVCommentReportForm, UVCommentModerationForm, + UVCommentReportForm, + UVForm, ) from pedagogy.models import UV, UVComment, UVCommentReport, UVSerializer diff --git a/pyproject.toml b/pyproject.toml index 0bb1a27f..e9dfe6d4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -70,6 +70,9 @@ optional = true [tool.xapian] version = "1.4.25" +[tool.ruff.lint] +select = ["I", "F401"] + [build-system] requires = ["poetry-core>=1.0.0"] build-backend = "poetry.core.masonry.api" diff --git a/rootplace/admin.py b/rootplace/admin.py index 362a5c4f..5531f2a2 100644 --- a/rootplace/admin.py +++ b/rootplace/admin.py @@ -14,6 +14,4 @@ # # -from django.contrib import admin - # Register your models here. diff --git a/rootplace/models.py b/rootplace/models.py index 5672eba4..084dfa73 100644 --- a/rootplace/models.py +++ b/rootplace/models.py @@ -14,6 +14,4 @@ # # -from django.db import models - # Create your models here. diff --git a/rootplace/tests.py b/rootplace/tests.py index f1bb174f..80119edf 100644 --- a/rootplace/tests.py +++ b/rootplace/tests.py @@ -15,14 +15,12 @@ # from datetime import date, timedelta -from django.core.management import call_command from django.test import TestCase from django.urls import reverse -from django.utils.timezone import localtime, now from club.models import Club -from core.models import User, RealGroup -from counter.models import Customer, Product, Selling, Counter, Refilling +from core.models import RealGroup, User +from counter.models import Counter, Customer, Product, Refilling, Selling from subscription.models import Subscription diff --git a/rootplace/views.py b/rootplace/views.py index fbb04e79..7a045b73 100644 --- a/rootplace/views.py +++ b/rootplace/views.py @@ -32,7 +32,7 @@ from django.utils.translation import gettext as _ from django.views.generic import ListView from django.views.generic.edit import FormView -from core.models import User, OperationLog, SithFile +from core.models import OperationLog, SithFile, User from core.views import CanEditPropMixin from counter.models import Customer from forum.models import ForumMessageMeta diff --git a/sas/admin.py b/sas/admin.py index d1001ef8..3f6c6f42 100644 --- a/sas/admin.py +++ b/sas/admin.py @@ -18,7 +18,6 @@ from django.contrib import admin from sas.models import * - admin.site.register(Album) # admin.site.register(Picture) admin.site.register(PeoplePictureRelation) diff --git a/sas/migrations/0001_initial.py b/sas/migrations/0001_initial.py index 41ed4dc9..7ef55737 100644 --- a/sas/migrations/0001_initial.py +++ b/sas/migrations/0001_initial.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models +from django.db import migrations class Migration(migrations.Migration): diff --git a/sas/migrations/0002_auto_20161119_1241.py b/sas/migrations/0002_auto_20161119_1241.py index 21f44323..15ba12ad 100644 --- a/sas/migrations/0002_auto_20161119_1241.py +++ b/sas/migrations/0002_auto_20161119_1241.py @@ -1,9 +1,9 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models -from django.conf import settings import django.db.models.deletion +from django.conf import settings +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/sas/models.py b/sas/models.py index e9fe4f97..3342facf 100644 --- a/sas/models.py +++ b/sas/models.py @@ -14,19 +14,19 @@ # # +import os +from io import BytesIO + +from django.conf import settings +from django.core.cache import cache from django.db import models from django.urls import reverse -from django.core.cache import cache -from django.conf import settings -from django.utils.translation import gettext_lazy as _ from django.utils import timezone - +from django.utils.translation import gettext_lazy as _ from PIL import Image -from io import BytesIO -import os from core.models import SithFile, User -from core.utils import resize_image, exif_auto_rotate +from core.utils import exif_auto_rotate, resize_image class SASPictureManager(models.Manager): diff --git a/sas/tests.py b/sas/tests.py index 46a200c2..d888e761 100644 --- a/sas/tests.py +++ b/sas/tests.py @@ -14,6 +14,4 @@ # # -from django.test import TestCase - # Create your tests here. diff --git a/sas/views.py b/sas/views.py index 052f7a4e..c2821bac 100644 --- a/sas/views.py +++ b/sas/views.py @@ -14,26 +14,24 @@ # # -from django.shortcuts import redirect -from django.http import HttpResponse, Http404 -from django.urls import reverse_lazy, reverse -from core.views.forms import SelectDate -from django.views.generic import DetailView, TemplateView -from django.views.generic.edit import UpdateView, FormMixin, FormView -from django.utils.translation import gettext_lazy as _ -from django.conf import settings -from django import forms -from django.core.exceptions import PermissionDenied -from django.core.paginator import Paginator, InvalidPage - from ajax_select import make_ajax_field from ajax_select.fields import AutoCompleteSelectMultipleField +from django import forms +from django.conf import settings +from django.core.exceptions import PermissionDenied +from django.core.paginator import InvalidPage, Paginator +from django.http import Http404, HttpResponse +from django.shortcuts import redirect +from django.urls import reverse, reverse_lazy +from django.utils.translation import gettext_lazy as _ +from django.views.generic import DetailView, TemplateView +from django.views.generic.edit import FormMixin, FormView, UpdateView -from core.views import CanViewMixin, CanEditMixin -from core.views.files import send_file, FileView, MultipleImageField -from core.models import SithFile, User, Notification, RealGroup - -from sas.models import Picture, Album, PeoplePictureRelation +from core.models import Notification, SithFile, User +from core.views import CanEditMixin, CanViewMixin +from core.views.files import FileView, MultipleImageField, send_file +from core.views.forms import SelectDate +from sas.models import Album, PeoplePictureRelation, Picture class SASForm(forms.Form): diff --git a/sith/urls.py b/sith/urls.py index 08e25b3e..106c2851 100644 --- a/sith/urls.py +++ b/sith/urls.py @@ -30,14 +30,12 @@ Including another URLconf 2. Add a URL to urlpatterns: url(r'^blog/', include(blog_urls)) """ -from django.urls import include, path -from django.contrib import admin +from ajax_select import urls as ajax_select_urls from django.conf import settings from django.conf.urls.static import static +from django.contrib import admin +from django.urls import include, path from django.views.i18n import JavaScriptCatalog -from ajax_select import urls as ajax_select_urls - -import core.urls js_info_dict = {"packages": ("sith",)} diff --git a/stock/admin.py b/stock/admin.py index 46567a3b..28985c8c 100644 --- a/stock/admin.py +++ b/stock/admin.py @@ -25,7 +25,7 @@ from django.contrib import admin -from stock.models import Stock, StockItem, ShoppingList, ShoppingListItem +from stock.models import ShoppingList, ShoppingListItem, Stock, StockItem # Register your models here. admin.site.register(Stock) diff --git a/stock/migrations/0001_initial.py b/stock/migrations/0001_initial.py index 43b658ff..e203981a 100644 --- a/stock/migrations/0001_initial.py +++ b/stock/migrations/0001_initial.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/stock/models.py b/stock/models.py index 6c9c1ae7..f93a1544 100644 --- a/stock/models.py +++ b/stock/models.py @@ -23,11 +23,10 @@ # # -from django.db import models -from django.utils.translation import gettext_lazy as _ -from django.urls import reverse from django.conf import settings - +from django.db import models +from django.urls import reverse +from django.utils.translation import gettext_lazy as _ from counter.models import Counter, ProductType diff --git a/stock/tests.py b/stock/tests.py index ad602a5c..884e1b09 100644 --- a/stock/tests.py +++ b/stock/tests.py @@ -23,6 +23,4 @@ # # -from django.test import TestCase - # Create your tests here. diff --git a/stock/views.py b/stock/views.py index 6b4776aa..72a9ab56 100644 --- a/stock/views.py +++ b/stock/views.py @@ -24,36 +24,21 @@ # from collections import OrderedDict -from datetime import datetime, timedelta -from django.utils import timezone -from django.shortcuts import render, get_object_or_404 -from django.views.generic import ListView, DetailView, RedirectView, TemplateView -from django.views.generic.edit import ( - UpdateView, - CreateView, - DeleteView, - ProcessFormView, - FormMixin, - BaseFormView, -) -from django.utils.translation import gettext_lazy as _ from django import forms -from django.http import HttpResponseRedirect, HttpResponse +from django.db import transaction from django.forms.models import modelform_factory -from django.urls import reverse_lazy, reverse -from django.db import transaction, DataError +from django.http import HttpResponseRedirect +from django.urls import reverse, reverse_lazy +from django.utils import timezone +from django.utils.translation import gettext_lazy as _ +from django.views.generic import DetailView, ListView +from django.views.generic.edit import BaseFormView, CreateView, DeleteView, UpdateView -from core.views import ( - CanViewMixin, - CanEditMixin, - CanEditPropMixin, - CanCreateMixin, - TabedViewMixin, -) +from core.views import CanCreateMixin, CanEditMixin, CanEditPropMixin, CanViewMixin +from counter.models import ProductType from counter.views import CounterAdminTabsMixin, CounterTabsMixin -from counter.models import Counter, ProductType -from stock.models import Stock, StockItem, ShoppingList, ShoppingListItem +from stock.models import ShoppingList, ShoppingListItem, Stock, StockItem class StockItemList(CounterAdminTabsMixin, CanCreateMixin, ListView): diff --git a/subscription/migrations/0001_initial.py b/subscription/migrations/0001_initial.py index 3ca942f0..932fafaf 100644 --- a/subscription/migrations/0001_initial.py +++ b/subscription/migrations/0001_initial.py @@ -1,9 +1,9 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models import django.contrib.auth.models import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/subscription/models.py b/subscription/models.py index f1c2b2d5..5e47ab75 100644 --- a/subscription/models.py +++ b/subscription/models.py @@ -14,17 +14,16 @@ # # +import math from datetime import date, timedelta -from django.db import models -from django.utils.translation import gettext_lazy as _ -from django.conf import settings -from django.core.exceptions import ValidationError -from django.urls import reverse -from django.contrib.auth.forms import PasswordResetForm from dateutil.relativedelta import relativedelta - -import math +from django.conf import settings +from django.contrib.auth.forms import PasswordResetForm +from django.core.exceptions import ValidationError +from django.db import models +from django.urls import reverse +from django.utils.translation import gettext_lazy as _ from core.models import User from core.utils import get_start_of_semester diff --git a/subscription/tests.py b/subscription/tests.py index 4e8ec5a1..1b9924e8 100644 --- a/subscription/tests.py +++ b/subscription/tests.py @@ -16,12 +16,11 @@ from datetime import date from unittest import mock -from django.test import TestCase -from subscription.models import Subscription -from core.models import User from django.conf import settings -from datetime import datetime -from django.core.management import call_command +from django.test import TestCase + +from core.models import User +from subscription.models import Subscription class FakeDate(date): diff --git a/subscription/views.py b/subscription/views.py index bd10ac2c..ccffd58f 100644 --- a/subscription/views.py +++ b/subscription/views.py @@ -14,21 +14,19 @@ # # -from django.views.generic.edit import CreateView, FormView -from django.utils.translation import gettext_lazy as _ -from django.core.exceptions import PermissionDenied, ValidationError -from django.urls import reverse_lazy -from django import forms -from django.conf import settings - -from ajax_select.fields import AutoCompleteSelectField import random -from subscription.models import Subscription -from core.views.forms import SelectDateTime +from ajax_select.fields import AutoCompleteSelectField +from django import forms +from django.conf import settings +from django.core.exceptions import PermissionDenied, ValidationError +from django.urls import reverse_lazy +from django.utils.translation import gettext_lazy as _ +from django.views.generic.edit import CreateView, FormView + from core.models import User -from core.views.forms import SelectDate -from core.views.forms import TzAwareDateTimeField +from core.views.forms import SelectDate, TzAwareDateTimeField +from subscription.models import Subscription class SelectionDateForm(forms.Form): diff --git a/trombi/migrations/0001_initial.py b/trombi/migrations/0001_initial.py index 0943bad1..3c609c63 100644 --- a/trombi/migrations/0001_initial.py +++ b/trombi/migrations/0001_initial.py @@ -1,10 +1,11 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models -from django.conf import settings import datetime + import django.db.models.deletion +from django.conf import settings +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/trombi/migrations/0004_trombiclubmembership.py b/trombi/migrations/0004_trombiclubmembership.py index 5bb017b4..eb036839 100644 --- a/trombi/migrations/0004_trombiclubmembership.py +++ b/trombi/migrations/0004_trombiclubmembership.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/trombi/models.py b/trombi/models.py index 18f36526..b5e7d1a8 100644 --- a/trombi/models.py +++ b/trombi/models.py @@ -22,17 +22,17 @@ # # -from django.db import models -from django.utils.translation import gettext_lazy as _ -from django.urls import reverse +from datetime import date + from django.conf import settings from django.core.exceptions import ValidationError +from django.db import models +from django.urls import reverse +from django.utils.translation import gettext_lazy as _ -from datetime import timedelta, date - -from core.models import User -from core.utils import get_start_of_semester, get_semester_code from club.models import Club +from core.models import User +from core.utils import get_semester_code class TrombiManager(models.Manager): diff --git a/trombi/tests.py b/trombi/tests.py index de62cd38..087c75b4 100644 --- a/trombi/tests.py +++ b/trombi/tests.py @@ -22,6 +22,4 @@ # # -from django.test import TestCase - # Create your tests here. diff --git a/trombi/views.py b/trombi/views.py index 98bf5fc2..d2bf3231 100644 --- a/trombi/views.py +++ b/trombi/views.py @@ -23,34 +23,33 @@ # # -from django.http import Http404, HttpResponseRedirect -from django.shortcuts import get_object_or_404, redirect -from django.urls import reverse_lazy, reverse -from django.views.generic import DetailView, RedirectView, TemplateView, View -from django.views.generic.edit import UpdateView, CreateView, DeleteView -from django.utils.translation import gettext_lazy as _ -from django import forms -from django.conf import settings -from django.forms.models import modelform_factory -from django.core.exceptions import PermissionDenied - -from ajax_select.fields import AutoCompleteSelectField - from datetime import date -from trombi.models import Trombi, TrombiUser, TrombiComment, TrombiClubMembership -from core.views.forms import SelectDate +from ajax_select.fields import AutoCompleteSelectField +from django import forms +from django.conf import settings +from django.core.exceptions import PermissionDenied +from django.forms.models import modelform_factory +from django.http import Http404, HttpResponseRedirect +from django.shortcuts import get_object_or_404, redirect +from django.urls import reverse, reverse_lazy +from django.utils.translation import gettext_lazy as _ +from django.views.generic import DetailView, RedirectView, TemplateView, View +from django.views.generic.edit import CreateView, DeleteView, UpdateView + +from club.models import Club +from core.models import User from core.views import ( - CanViewMixin, + CanCreateMixin, CanEditMixin, CanEditPropMixin, - TabedViewMixin, - CanCreateMixin, + CanViewMixin, QuickNotifMixin, + TabedViewMixin, UserIsLoggedMixin, ) -from core.models import User -from club.models import Club +from core.views.forms import SelectDate +from trombi.models import Trombi, TrombiClubMembership, TrombiComment, TrombiUser class TrombiTabsMixin(TabedViewMixin):