diff --git a/aleksis/core/mixins.py b/aleksis/core/mixins.py index a9500a5d206e56db7ce231fb2d0b2101f19f461c..299856da61c628cfae1fce91f1c1a3319c4d8af4 100644 --- a/aleksis/core/mixins.py +++ b/aleksis/core/mixins.py @@ -345,11 +345,11 @@ class SuccessMessageMixin(ModelFormMixin): return super().form_valid(form) -class AdvancedCreateView(CreateView, SuccessMessageMixin): +class AdvancedCreateView(SuccessMessageMixin, CreateView): pass -class AdvancedEditView(UpdateView, SuccessMessageMixin): +class AdvancedEditView(SuccessMessageMixin, UpdateView): pass diff --git a/aleksis/core/models.py b/aleksis/core/models.py index 35878269058c159e6609c222c16509773b940466..c99820e5123f1a2d114c41533a9ee9a6628827d3 100644 --- a/aleksis/core/models.py +++ b/aleksis/core/models.py @@ -227,9 +227,9 @@ class Person(ExtensibleModel): def age_at(self, today): if self.date_of_birth: years = today.year - self.date_of_birth.year - if (self.date_of_birth.month > today.month - or (self.date_of_birth.month == today.month - and self.date_of_birth.day > today.day)): + if self.date_of_birth.month > today.month or ( + self.date_of_birth.month == today.month and self.date_of_birth.day > today.day + ): years -= 1 return years @@ -389,14 +389,14 @@ class Group(SchoolTermRelatedExtensibleModel): """ Get stats about a given group """ stats = {} - stats['members'] = len(self.members.all()) + stats["members"] = len(self.members.all()) ages = [person.age for person in self.members.filter(date_of_birth__isnull=False)] if ages: - stats['age_avg'] = sum(ages) / len(ages) - stats['age_range_min'] = min(ages) - stats['age_range_max'] = max(ages) + stats["age_avg"] = sum(ages) / len(ages) + stats["age_range_min"] = min(ages) + stats["age_range_max"] = max(ages) return stats diff --git a/aleksis/core/settings.py b/aleksis/core/settings.py index 5a1cdbcb23778f2f0e1789f29eac4758545af893..cd92f28e4a3ef71bcb6220711db196452641d3cc 100644 --- a/aleksis/core/settings.py +++ b/aleksis/core/settings.py @@ -414,6 +414,9 @@ DBBACKUP_COMPRESS_MEDIA = _settings.get("backup.media.compress", True) DBBACKUP_ENCRYPT_MEDIA = _settings.get("backup.media.encrypt", DBBACKUP_GPG_RECIPIENT is not None) DBBACKUP_CLEANUP_DB = _settings.get("backup.database.clean", True) DBBACKUP_CLEANUP_MEDIA = _settings.get("backup.media.clean", True) +DBBACKUP_CONNECTOR_MAPPING = { + "django_prometheus.db.backends.postgresql": "dbbackup.db.postgresql.PgDumpConnector", +} IMPERSONATE = {"USE_HTTP_REFERER": True, "REQUIRE_SUPERUSER": True, "ALLOW_SUPERUSER": True} diff --git a/tox.ini b/tox.ini index eca63a758a5f6a20b1cd11887330817fec7908d7..98fce3af53aa48d1eac2e28454c26e7b74c23f72 100644 --- a/tox.ini +++ b/tox.ini @@ -1,7 +1,7 @@ [tox] skipsdist = True skip_missing_interpreters = true -envlist = py37,py38 +envlist = py37,py38,py39 [testenv] whitelist_externals = poetry @@ -22,8 +22,8 @@ setenv = [testenv:lint] commands = - - poetry run black --check --diff aleksis/ - - poetry run isort -c --diff --stdout aleksis/ + poetry run black --check --diff aleksis/ + poetry run isort -c --diff --stdout aleksis/ poetry run flake8 {posargs} aleksis/ [testenv:security] @@ -49,9 +49,8 @@ exclude = migrations,tests ignore = BLK100,E203,E231,W503,D100,D101,D102,D103,D104,D105,D106,D107,RST215,RST214,F821,F841,S106,T100,T101,DJ05 [isort] +profile = black line_length = 100 -multi_line_output = 3 -include_trailing_comma = 1 default_section = THIRDPARTY known_first_party = aleksis known_django = django