From 211d478181199a8f8159559cfdd851a84f3d3ce2 Mon Sep 17 00:00:00 2001 From: Christian Cueni Date: Thu, 11 Jul 2024 11:40:46 +0200 Subject: [PATCH] Downgrade wagtail and packages --- server/requirements/requirements-dev.txt | 343 +++++++++--------- server/requirements/requirements.in | 3 +- server/requirements/requirements.txt | 186 +++++----- .../course_session_group/admin.py | 3 +- server/vbv_lernwelt/edoniq_test/views.py | 6 +- server/vbv_lernwelt/feedback/services.py | 6 +- .../vbv_lernwelt/notify/tests/test_service.py | 18 +- .../self_evaluation_feedback/serializers.py | 6 +- server/vbv_lernwelt/shop/invoice/abacus.py | 12 +- 9 files changed, 292 insertions(+), 291 deletions(-) diff --git a/server/requirements/requirements-dev.txt b/server/requirements/requirements-dev.txt index 59646730..c7bff388 100644 --- a/server/requirements/requirements-dev.txt +++ b/server/requirements/requirements-dev.txt @@ -2,84 +2,85 @@ # This file is autogenerated by pip-compile with Python 3.10 # by the following command: # -# pip-compile requirements-dev.in +# pip-compile --output-file=requirements-dev.txt requirements-dev.in # aniso8601==9.0.1 # via graphene anyascii==0.3.2 # via wagtail -anyio==4.4.0 +anyio==3.7.1 # via # httpx # watchfiles -argon2-cffi==23.1.0 +appnope==0.1.3 + # via ipython +argon2-cffi==21.3.0 # via -r requirements.in argon2-cffi-bindings==21.2.0 # via argon2-cffi -asgiref==3.8.1 - # via - # django - # django-cors-headers - # django-stubs -astroid==3.2.2 +asgiref==3.7.2 + # via django +astroid==2.15.6 # via pylint -asttokens==2.4.1 +asttokens==2.2.1 # via stack-data async-property==0.2.2 # via python-keycloak -async-timeout==4.0.3 +async-timeout==4.0.2 # via redis -attrs==23.2.0 +attrs==23.1.0 # via # jsonschema # referencing # usort -authlib==1.3.1 +authlib==1.2.1 # via -r requirements.in -azure-core==1.30.2 +azure-core==1.29.1 # via # azure-identity # azure-storage-blob -azure-identity==1.17.0 +azure-identity==1.14.0 # via -r requirements.in -azure-storage-blob==12.20.0 +azure-storage-blob==12.17.0 # via -r requirements.in -bcrypt==4.1.3 +backcall==0.2.0 + # via ipython +bcrypt==4.0.1 # via paramiko beautifulsoup4==4.11.2 # via wagtail -black==24.4.2 +black==23.7.0 # via # -r requirements-dev.in # ufmt -boto3==1.34.129 +boto3==1.28.23 # via -r requirements.in -botocore==1.34.129 +botocore==1.31.23 # via # boto3 # s3transfer -brotli==1.1.0 +brotli==1.0.9 # via whitenoise -build==1.2.1 +build==0.10.0 # via pip-tools caprover-api @ git+https://github.com/iterativ/Caprover-API.git@5013f8fc929e8e3281b9d609e968a782e8e99530 # via -r requirements-dev.in -certifi==2024.6.2 +certifi==2023.7.22 # via # httpcore # httpx # requests # sentry-sdk -cffi==1.16.0 +cffi==1.15.1 # via # argon2-cffi-bindings # cryptography # pynacl -cfgv==3.4.0 +cfgv==3.3.1 # via pre-commit -charset-normalizer==3.3.2 +charset-normalizer==3.2.0 # via requests -click==8.1.7 +click==8.1.6 # via # -r requirements.in # black @@ -89,13 +90,13 @@ click==8.1.7 # ufmt # usort # uvicorn -concurrent-log-handler==0.9.25 +concurrent-log-handler==0.9.24 # via -r requirements.in -coverage==7.5.3 +coverage==7.2.7 # via # -r requirements-dev.in # django-coverage-plugin -cryptography==42.0.8 +cryptography==41.0.3 # via # authlib # azure-identity @@ -112,13 +113,13 @@ defusedxml==0.7.1 # via willow deprecation==2.1.0 # via python-keycloak -dill==0.3.8 +dill==0.3.7 # via pylint -distlib==0.3.8 +distlib==0.3.7 # via virtualenv -dj-database-url==2.2.0 +dj-database-url==2.0.0 # via -r requirements.in -django==3.2.25 +django==3.2.20 # via # -r requirements.in # dj-database-url @@ -145,99 +146,96 @@ django==3.2.25 # jsonfield # wagtail # wagtail-localize -django-click==2.4.0 +django-click==2.3.0 # via -r requirements.in django-constance==3.1.0 # via -r requirements.in -django-cors-headers==4.3.1 +django-cors-headers==4.2.0 # via -r requirements.in django-coverage-plugin==3.1.0 # via -r requirements-dev.in -django-csp==3.8 +django-csp==3.7 # via -r requirements.in -django-debug-toolbar==4.3.0 +django-debug-toolbar==4.1.0 # via -r requirements-dev.in django-extensions==3.2.3 # via -r requirements-dev.in -django-filter==23.5 +django-filter==23.2 # via wagtail -django-ipware==7.0.1 +django-ipware==5.0.0 # via -r requirements.in -django-jsonform==2.22.0 +django-jsonform==2.18.0 # via -r requirements.in -django-model-utils==4.5.1 +django-model-utils==4.3.1 # via # -r requirements.in # django-notifications-hq -django-modelcluster==6.3 +django-modelcluster==6.0 # via wagtail -django-notifications-hq==1.8.3 +django-notifications-hq==1.8.2 # via -r requirements.in django-permissionedforms==0.1 # via wagtail -django-picklefield==3.2 +django-picklefield==3.1 # via django-constance django-ratelimit==4.1.0 # via -r requirements.in -django-redis==5.4.0 +django-redis==5.3.0 # via -r requirements.in -django-storages==1.14.3 +django-storages==1.13.2 # via -r requirements.in -django-stubs==5.0.2 +django-stubs==4.2.3 # via # -r requirements-dev.in # djangorestframework-stubs -django-stubs-ext==5.0.2 +django-stubs-ext==4.2.2 # via django-stubs django-taggit==4.0.0 # via wagtail -django-treebeard==4.7.1 +django-treebeard==4.7 # via wagtail -django-watchfiles @ https://github.com/q0w/django-watchfiles/archive/issue-1.zip - # via -r requirements-dev.in -djangorestframework==3.15.1 +djangorestframework==3.14.0 # via # -r requirements.in # drf-spectacular # wagtail -djangorestframework-stubs==3.15.0 +djangorestframework-stubs==3.14.2 # via -r requirements-dev.in draftjs-exporter==2.1.7 # via wagtail -drf-spectacular==0.27.2 +drf-spectacular==0.26.4 # via -r requirements.in -environs==11.0.0 +environs==9.5.0 # via -r requirements.in et-xmlfile==1.1.0 # via openpyxl -exceptiongroup==1.2.1 +exceptiongroup==1.1.2 # via # anyio - # ipython # pytest -execnet==2.1.1 +execnet==2.0.2 # via pytest-xdist -executing==2.0.1 +executing==1.2.0 # via stack-data factory-boy==3.3.0 # via # -r requirements-dev.in # wagtail-factories -faker==25.8.0 +faker==19.3.0 # via factory-boy -filelock==3.15.1 +filelock==3.12.2 # via virtualenv filetype==1.2.0 # via willow -flake8==7.1.0 +flake8==6.1.0 # via # -r requirements-dev.in # flake8-isort -flake8-isort==6.1.1 +flake8-isort==6.0.0 # via -r requirements-dev.in -freezegun==1.5.1 +freezegun==1.2.2 # via -r requirements-dev.in -gitdb==4.0.11 +gitdb==4.0.10 # via gitdb2 gitdb2==4.0.2 # via gitpython @@ -245,7 +243,7 @@ gitpython==3.0.6 # via trufflehog graphene==3.3 # via graphene-django -graphene-django==3.2.2 +graphene-django==3.1.5 # via wagtail-grapple graphql-core==3.2.3 # via @@ -256,7 +254,7 @@ graphql-relay==3.2.0 # via # graphene # graphene-django -gunicorn==22.0.0 +gunicorn==21.2.0 # via -r requirements.in h11==0.14.0 # via @@ -266,13 +264,13 @@ html5lib==1.1 # via wagtail httpcore==1.0.5 # via httpx -httptools==0.6.1 +httptools==0.6.0 # via uvicorn httpx==0.27.0 # via python-keycloak -identify==2.5.36 +identify==2.5.26 # via pre-commit -idna==3.7 +idna==3.4 # via # anyio # httpx @@ -283,15 +281,15 @@ iniconfig==2.0.0 # via pytest ipdb==0.13.13 # via -r requirements-dev.in -ipython==8.25.0 +ipython==8.14.0 # via ipdb isodate==0.6.1 # via azure-storage-blob -isort==5.13.2 +isort==5.12.0 # via # flake8-isort # pylint -jedi==0.19.1 +jedi==0.19.0 # via ipython jmespath==1.0.1 # via @@ -299,21 +297,23 @@ jmespath==1.0.1 # botocore jsonfield==3.1.0 # via django-notifications-hq -jsonschema==4.22.0 +jsonschema==4.19.0 # via drf-spectacular -jsonschema-specifications==2023.12.1 +jsonschema-specifications==2023.7.1 # via jsonschema jwcrypto==1.5.6 # via python-keycloak l18n==2021.3 # via wagtail -libcst==1.4.0 +lazy-object-proxy==1.9.0 + # via astroid +libcst==1.0.1 # via # ufmt # usort -marshmallow==3.21.3 +marshmallow==3.20.1 # via environs -matplotlib-inline==0.1.7 +matplotlib-inline==0.1.6 # via ipython mccabe==0.7.0 # via @@ -323,148 +323,153 @@ moreorless==0.4.0 # via # ufmt # usort -msal==1.28.1 +msal==1.23.0 # via # azure-identity # msal-extensions -msal-extensions==1.1.0 +msal-extensions==1.0.0 # via azure-identity -mypy==1.10.0 - # via -r requirements-dev.in +mypy==1.4.1 + # via + # -r requirements-dev.in + # django-stubs + # djangorestframework-stubs mypy-extensions==1.0.0 # via # black # mypy -newrelic==9.11.0 + # typing-inspect +newrelic==8.11.0 # via -r requirements.in -nodeenv==1.9.1 +nodeenv==1.8.0 # via pre-commit -openpyxl==3.1.4 +openpyxl==3.1.2 # via # -r requirements.in # wagtail -packaging==24.1 +packaging==23.1 # via # black # build # deprecation # gunicorn # marshmallow - # msal-extensions # pytest # pytest-sugar -paramiko==3.4.0 - # via -r requirements.in -parso==0.8.4 +paramiko==3.3.1 + # via + # -r requirements.in + # sftpserver +parso==0.8.3 # via jedi -pathspec==0.12.1 +pathspec==0.11.2 # via # black # trailrunner -pexpect==4.9.0 +pexpect==4.8.0 # via ipython -pillow==10.3.0 +pickleshare==0.7.5 + # via ipython +pillow==10.0.0 # via # -r requirements.in # pillow-heif # wagtail -pillow-heif==0.16.0 +pillow-heif==0.13.0 # via willow -pip-tools==7.4.1 +pip-tools==7.3.0 # via -r requirements-dev.in -platformdirs==4.2.2 +platformdirs==3.10.0 # via # black # pylint # virtualenv -pluggy==1.5.0 +pluggy==1.2.0 # via pytest polib==1.2.0 # via wagtail-localize -portalocker==2.8.2 +portalocker==2.7.0 # via # concurrent-log-handler # msal-extensions -pre-commit==3.7.1 +pre-commit==3.3.3 # via -r requirements-dev.in promise==2.3 # via graphene-django -prompt-toolkit==3.0.47 +prompt-toolkit==3.0.39 # via ipython -psycopg2-binary==2.9.9 +psycopg2-binary==2.9.7 # via -r requirements.in ptyprocess==0.7.0 # via pexpect pure-eval==0.2.2 # via stack-data -pycodestyle==2.12.0 +pycodestyle==2.11.0 # via flake8 -pycparser==2.22 +pycparser==2.21 # via cffi -pycryptodome==3.20.0 +pycryptodome==3.18.0 # via -r requirements.in -pyflakes==3.2.0 +pyflakes==3.1.0 # via flake8 -pygments==2.18.0 +pygments==2.16.1 # via ipython pyjwt[crypto]==2.8.0 # via # msal # pyjwt -pylint==3.2.3 +pylint==2.17.5 # via # pylint-django # pylint-plugin-utils -pylint-django==2.5.5 +pylint-django==2.5.3 # via -r requirements-dev.in pylint-plugin-utils==0.8.2 # via pylint-django pynacl==1.5.0 # via paramiko -pyproject-hooks==1.1.0 - # via - # build - # pip-tools -pytest==8.2.2 +pyproject-hooks==1.0.0 + # via build +pytest==7.4.0 # via # -r requirements-dev.in # pytest-django # pytest-order # pytest-sugar # pytest-xdist -pytest-django==4.8.0 +pytest-django==4.5.2 # via -r requirements-dev.in pytest-order==1.2.1 # via -r requirements-dev.in +pytest-sugar==0.9.7 # via -r requirements-dev.in -pytest-xdist==3.6.1 +pytest-xdist==3.5.0 # via -r requirements-dev.in -python-dateutil==2.9.0.post0 +python-dateutil==2.8.2 # via # -r requirements.in # botocore # faker # freezegun -python-dotenv==1.0.1 +python-dotenv==1.0.0 # via # environs # uvicorn python-http-client==3.3.7 # via sendgrid -python-ipware==3.0.0 - # via django-ipware python-json-logger==2.0.7 # via -r requirements.in -python-keycloak==4.1.0 +python-keycloak==4.2.0 # via -r requirements.in -python-slugify==8.0.4 +python-slugify==8.0.1 # via -r requirements.in -pytz==2024.1 +pytz==2023.3 # via # -r requirements.in # django # django-modelcluster # django-notifications-hq + # djangorestframework # l18n pyyaml==6.0.1 # via @@ -473,15 +478,15 @@ pyyaml==6.0.1 # libcst # pre-commit # uvicorn -redis==5.0.6 +redis==4.6.0 # via # -r requirements.in # django-redis -referencing==0.35.1 +referencing==0.30.2 # via # jsonschema # jsonschema-specifications -requests==2.32.3 +requests==2.31.0 # via # azure-core # caprover-api @@ -492,15 +497,15 @@ requests==2.32.3 # wagtail requests-toolbelt==1.0.0 # via python-keycloak -rpds-py==0.18.1 +rpds-py==0.9.2 # via # jsonschema # referencing -s3transfer==0.10.1 +s3transfer==0.6.1 # via boto3 -sendgrid==6.11.0 +sendgrid==6.10.0 # via -r requirements.in -sentry-sdk==2.5.1 +sentry-sdk==1.29.2 # via -r requirements.in sftpserver @ git+https://github.com/lonetwin/sftpserver.git@1d16896d3f0f90d63d1caaf4e199f2a9dde6456f # via -r requirements-dev.in @@ -513,31 +518,31 @@ six==1.16.0 # l18n # promise # python-dateutil -smmap==5.0.1 +smmap==5.0.0 # via gitdb -sniffio==1.3.1 +sniffio==1.3.0 # via # anyio # httpx -soupsieve==2.5 +soupsieve==2.4.1 # via beautifulsoup4 -sqlparse==0.5.0 +sqlparse==0.4.4 # via # django # django-debug-toolbar -stack-data==0.6.3 +stack-data==0.6.2 # via ipython starkbank-ecdsa==2.2.0 # via sendgrid -stdlibs==2024.5.15 +stdlibs==2022.10.9 # via usort -structlog==24.2.0 +structlog==23.1.0 # via -r requirements.in swapper==1.3.0 # via django-notifications-hq telepath==0.3.1 # via wagtail -termcolor==2.4.0 +termcolor==2.3.0 # via pytest-sugar text-unidecode==1.3 # via @@ -554,8 +559,9 @@ tomli==2.0.1 # mypy # pip-tools # pylint + # pyproject-hooks # pytest -tomlkit==0.12.5 +tomlkit==0.12.1 # via # pylint # ufmt @@ -563,7 +569,7 @@ trailrunner==1.4.0 # via # ufmt # usort -traitlets==5.14.3 +traitlets==5.9.0 # via # ipython # matplotlib-inline @@ -571,28 +577,30 @@ trufflehog==2.2.1 # via -r requirements-dev.in trufflehogregexes==0.0.7 # via trufflehog -types-pyyaml==6.0.12.20240311 +types-pytz==2023.3.0.0 + # via django-stubs +types-pyyaml==6.0.12.11 # via # django-stubs # djangorestframework-stubs -types-requests==2.32.0.20240602 +types-requests==2.31.0.2 # via djangorestframework-stubs -typing-extensions==4.12.2 +types-urllib3==1.26.25.14 + # via types-requests +typing-extensions==4.7.1 # via - # anyio # asgiref # astroid # azure-core - # azure-identity # azure-storage-blob - # black # dj-database-url # django-stubs # django-stubs-ext # djangorestframework-stubs - # ipython # jwcrypto + # libcst # mypy + # typing-inspect # ufmt # uvicorn # wagtail-localize @@ -600,57 +608,56 @@ typing-inspect==0.9.0 # via libcst ua-parser==0.18.0 # via -r requirements.in -ufmt==2.7.0 +ufmt==2.2.0 # via -r requirements-dev.in uritemplate==4.1.1 # via drf-spectacular -urllib3==2.2.2 +urllib3==1.26.16 # via # botocore # requests # sentry-sdk - # types-requests -usort==1.0.8.post1 +usort==1.0.7 # via ufmt -uvicorn[standard]==0.30.1 +uvicorn[standard]==0.23.2 # via -r requirements.in -uvloop==0.19.0 +uvloop==0.17.0 # via uvicorn -virtualenv==20.26.2 +virtualenv==20.24.2 # via pre-commit -wagtail==5.2.5 +wagtail==5.1 # via # -r requirements.in # wagtail-factories # wagtail-grapple # wagtail-headless-preview # wagtail-localize -wagtail-factories==4.2.1 +wagtail-factories==4.1.0 # via -r requirements.in -wagtail-grapple==0.25.1 +wagtail-grapple==0.20.0 # via -r requirements.in -wagtail-headless-preview==0.8.0 +wagtail-headless-preview==0.6.0 # via wagtail-grapple -wagtail-localize==1.9 +wagtail-localize==1.5.1 # via -r requirements.in -watchfiles==0.22.0 - # via - # django-watchfiles - # uvicorn -wcwidth==0.2.13 +watchfiles==0.19.0 + # via uvicorn +wcwidth==0.2.6 # via prompt-toolkit webencodings==0.5.1 # via html5lib -websockets==12.0 +websockets==11.0.3 # via uvicorn -wheel==0.43.0 +wheel==0.41.1 # via pip-tools -whitenoise[brotli]==6.6.0 +whitenoise[brotli]==6.5.0 # via -r requirements.in -willow[heif]==1.6.3 +willow[heif]==1.6.1 # via # wagtail # willow +wrapt==1.15.0 + # via astroid # The following packages are considered to be unsafe in a requirements file: # pip diff --git a/server/requirements/requirements.in b/server/requirements/requirements.in index c0301a8c..e9bb64b3 100644 --- a/server/requirements/requirements.in +++ b/server/requirements/requirements.in @@ -8,7 +8,6 @@ redis # https://github.com/redis/redis-py uvicorn[standard] # https://github.com/encode/uvicorn environs click -ua-parser # Django # ------------------------------------------------------------------------------ @@ -54,4 +53,4 @@ boto3 openpyxl newrelic python-keycloak - +ua_parser diff --git a/server/requirements/requirements.txt b/server/requirements/requirements.txt index f9cb72a5..c8c19eb4 100644 --- a/server/requirements/requirements.txt +++ b/server/requirements/requirements.txt @@ -2,75 +2,73 @@ # This file is autogenerated by pip-compile with Python 3.10 # by the following command: # -# pip-compile requirements.in +# pip-compile --output-file=requirements.txt requirements.in # aniso8601==9.0.1 # via graphene anyascii==0.3.2 # via wagtail -anyio==4.4.0 +anyio==3.7.1 # via # httpx # watchfiles -argon2-cffi==23.1.0 +argon2-cffi==21.3.0 # via -r requirements.in argon2-cffi-bindings==21.2.0 # via argon2-cffi -asgiref==3.8.1 - # via - # django - # django-cors-headers +asgiref==3.7.2 + # via django async-property==0.2.2 # via python-keycloak -async-timeout==4.0.3 +async-timeout==4.0.2 # via redis -attrs==23.2.0 +attrs==23.1.0 # via # jsonschema # referencing -authlib==1.3.1 +authlib==1.2.1 # via -r requirements.in -azure-core==1.30.2 +azure-core==1.29.1 # via # azure-identity # azure-storage-blob -azure-identity==1.17.0 +azure-identity==1.14.0 # via -r requirements.in -azure-storage-blob==12.20.0 +azure-storage-blob==12.17.0 # via -r requirements.in -bcrypt==4.1.3 +bcrypt==4.0.1 # via paramiko beautifulsoup4==4.11.2 # via wagtail -boto3==1.34.129 +boto3==1.28.23 # via -r requirements.in -botocore==1.34.129 +botocore==1.31.23 # via # boto3 # s3transfer -brotli==1.1.0 +brotli==1.0.9 # via whitenoise -certifi==2024.6.2 +certifi==2023.7.22 # via # httpcore # httpx # requests # sentry-sdk -cffi==1.16.0 +cffi==1.15.1 # via # argon2-cffi-bindings # cryptography # pynacl -charset-normalizer==3.3.2 +charset-normalizer==3.2.0 # via requests -click==8.1.7 +click==8.1.6 # via # -r requirements.in # django-click # uvicorn -concurrent-log-handler==0.9.25 +concurrent-log-handler==0.9.24 # via -r requirements.in -cryptography==42.0.8 +cryptography==41.0.3 # via # authlib # azure-identity @@ -83,9 +81,9 @@ defusedxml==0.7.1 # via willow deprecation==2.1.0 # via python-keycloak -dj-database-url==2.2.0 +dj-database-url==2.0.0 # via -r requirements.in -django==3.2.25 +django==3.2.20 # via # -r requirements.in # dj-database-url @@ -108,66 +106,66 @@ django==3.2.25 # jsonfield # wagtail # wagtail-localize -django-click==2.4.0 +django-click==2.3.0 # via -r requirements.in django-constance==3.1.0 # via -r requirements.in -django-cors-headers==4.3.1 +django-cors-headers==4.2.0 # via -r requirements.in -django-csp==3.8 +django-csp==3.7 # via -r requirements.in -django-filter==23.5 +django-filter==23.2 # via wagtail -django-ipware==7.0.1 +django-ipware==5.0.0 # via -r requirements.in -django-jsonform==2.22.0 +django-jsonform==2.18.0 # via -r requirements.in -django-model-utils==4.5.1 +django-model-utils==4.3.1 # via # -r requirements.in # django-notifications-hq -django-modelcluster==6.3 +django-modelcluster==6.0 # via wagtail -django-notifications-hq==1.8.3 +django-notifications-hq==1.8.2 # via -r requirements.in django-permissionedforms==0.1 # via wagtail -django-picklefield==3.2 +django-picklefield==3.1 # via django-constance django-ratelimit==4.1.0 # via -r requirements.in -django-redis==5.4.0 +django-redis==5.3.0 # via -r requirements.in -django-storages==1.14.3 +django-storages==1.13.2 # via -r requirements.in django-taggit==4.0.0 # via wagtail -django-treebeard==4.7.1 +django-treebeard==4.7 # via wagtail -djangorestframework==3.15.1 +djangorestframework==3.14.0 # via # -r requirements.in # drf-spectacular # wagtail draftjs-exporter==2.1.7 # via wagtail -drf-spectacular==0.27.2 +drf-spectacular==0.26.4 # via -r requirements.in -environs==11.0.0 +environs==9.5.0 # via -r requirements.in et-xmlfile==1.1.0 # via openpyxl -exceptiongroup==1.2.1 +exceptiongroup==1.1.2 # via anyio factory-boy==3.3.0 # via wagtail-factories -faker==25.8.0 +faker==19.3.0 # via factory-boy filetype==1.2.0 # via willow graphene==3.3 # via graphene-django -graphene-django==3.2.2 +graphene-django==3.1.5 # via wagtail-grapple graphql-core==3.2.3 # via @@ -178,7 +176,7 @@ graphql-relay==3.2.0 # via # graphene # graphene-django -gunicorn==22.0.0 +gunicorn==21.2.0 # via -r requirements.in h11==0.14.0 # via @@ -188,11 +186,11 @@ html5lib==1.1 # via wagtail httpcore==1.0.5 # via httpx -httptools==0.6.1 +httptools==0.6.0 # via uvicorn httpx==0.27.0 # via python-keycloak -idna==3.7 +idna==3.4 # via # anyio # httpx @@ -207,56 +205,55 @@ jmespath==1.0.1 # botocore jsonfield==3.1.0 # via django-notifications-hq -jsonschema==4.22.0 +jsonschema==4.19.0 # via drf-spectacular -jsonschema-specifications==2023.12.1 +jsonschema-specifications==2023.7.1 # via jsonschema jwcrypto==1.5.6 # via python-keycloak l18n==2021.3 # via wagtail -marshmallow==3.21.3 +marshmallow==3.20.1 # via environs -msal==1.28.1 +msal==1.23.0 # via # azure-identity # msal-extensions -msal-extensions==1.1.0 +msal-extensions==1.0.0 # via azure-identity -newrelic==9.11.0 +newrelic==8.11.0 # via -r requirements.in -openpyxl==3.1.4 +openpyxl==3.1.2 # via # -r requirements.in # wagtail -packaging==24.1 +packaging==23.1 # via # deprecation # gunicorn # marshmallow - # msal-extensions -paramiko==3.4.0 +paramiko==3.3.1 # via -r requirements.in -pillow==10.3.0 +pillow==10.0.0 # via # -r requirements.in # pillow-heif # wagtail -pillow-heif==0.16.0 +pillow-heif==0.13.0 # via willow polib==1.2.0 # via wagtail-localize -portalocker==2.8.2 +portalocker==2.7.0 # via # concurrent-log-handler # msal-extensions promise==2.3 # via graphene-django -psycopg2-binary==2.9.9 +psycopg2-binary==2.9.7 # via -r requirements.in -pycparser==2.22 +pycparser==2.21 # via cffi -pycryptodome==3.20.0 +pycryptodome==3.18.0 # via -r requirements.in pyjwt[crypto]==2.8.0 # via @@ -264,45 +261,44 @@ pyjwt[crypto]==2.8.0 # pyjwt pynacl==1.5.0 # via paramiko -python-dateutil==2.9.0.post0 +python-dateutil==2.8.2 # via # -r requirements.in # botocore # faker -python-dotenv==1.0.1 +python-dotenv==1.0.0 # via # environs # uvicorn python-http-client==3.3.7 # via sendgrid -python-ipware==3.0.0 - # via django-ipware python-json-logger==2.0.7 # via -r requirements.in -python-keycloak==4.1.0 +python-keycloak==4.2.0 # via -r requirements.in -python-slugify==8.0.4 +python-slugify==8.0.1 # via -r requirements.in -pytz==2024.1 +pytz==2023.3 # via # -r requirements.in # django # django-modelcluster # django-notifications-hq + # djangorestframework # l18n pyyaml==6.0.1 # via # drf-spectacular # uvicorn -redis==5.0.6 +redis==4.6.0 # via # -r requirements.in # django-redis -referencing==0.35.1 +referencing==0.30.2 # via # jsonschema # jsonschema-specifications -requests==2.32.3 +requests==2.31.0 # via # azure-core # msal @@ -311,15 +307,15 @@ requests==2.32.3 # wagtail requests-toolbelt==1.0.0 # via python-keycloak -rpds-py==0.18.1 +rpds-py==0.9.2 # via # jsonschema # referencing -s3transfer==0.10.1 +s3transfer==0.6.1 # via boto3 -sendgrid==6.11.0 +sendgrid==6.10.0 # via -r requirements.in -sentry-sdk==2.5.1 +sentry-sdk==1.29.2 # via -r requirements.in six==1.16.0 # via @@ -329,17 +325,17 @@ six==1.16.0 # l18n # promise # python-dateutil -sniffio==1.3.1 +sniffio==1.3.0 # via # anyio # httpx -soupsieve==2.5 +soupsieve==2.4.1 # via beautifulsoup4 -sqlparse==0.5.0 +sqlparse==0.4.4 # via django starkbank-ecdsa==2.2.0 # via sendgrid -structlog==24.2.0 +structlog==23.1.0 # via -r requirements.in swapper==1.3.0 # via django-notifications-hq @@ -349,12 +345,10 @@ text-unidecode==1.3 # via # graphene-django # python-slugify -typing-extensions==4.12.2 +typing-extensions==4.7.1 # via - # anyio # asgiref # azure-core - # azure-identity # azure-storage-blob # dj-database-url # jwcrypto @@ -364,39 +358,39 @@ ua-parser==0.18.0 # via -r requirements.in uritemplate==4.1.1 # via drf-spectacular -urllib3==2.2.2 +urllib3==1.26.16 # via # botocore # requests # sentry-sdk -uvicorn[standard]==0.30.1 +uvicorn[standard]==0.23.2 # via -r requirements.in -uvloop==0.19.0 +uvloop==0.17.0 # via uvicorn -wagtail==5.2.5 +wagtail==5.1 # via # -r requirements.in # wagtail-factories # wagtail-grapple # wagtail-headless-preview # wagtail-localize -wagtail-factories==4.2.1 +wagtail-factories==4.1.0 # via -r requirements.in -wagtail-grapple==0.25.1 +wagtail-grapple==0.20.0 # via -r requirements.in -wagtail-headless-preview==0.8.0 +wagtail-headless-preview==0.6.0 # via wagtail-grapple -wagtail-localize==1.9 +wagtail-localize==1.5.1 # via -r requirements.in -watchfiles==0.22.0 +watchfiles==0.19.0 # via uvicorn webencodings==0.5.1 # via html5lib -websockets==12.0 +websockets==11.0.3 # via uvicorn -whitenoise[brotli]==6.6.0 +whitenoise[brotli]==6.5.0 # via -r requirements.in -willow[heif]==1.6.3 +willow[heif]==1.6.1 # via # wagtail # willow diff --git a/server/vbv_lernwelt/course_session_group/admin.py b/server/vbv_lernwelt/course_session_group/admin.py index f880cfa3..5bda3780 100644 --- a/server/vbv_lernwelt/course_session_group/admin.py +++ b/server/vbv_lernwelt/course_session_group/admin.py @@ -4,4 +4,5 @@ from vbv_lernwelt.course_session_group.models import CourseSessionGroup @admin.register(CourseSessionGroup) -class CourseSessionAssignmentAdmin(admin.ModelAdmin): ... +class CourseSessionAssignmentAdmin(admin.ModelAdmin): + ... diff --git a/server/vbv_lernwelt/edoniq_test/views.py b/server/vbv_lernwelt/edoniq_test/views.py index e3a71ec2..00d8ff7b 100644 --- a/server/vbv_lernwelt/edoniq_test/views.py +++ b/server/vbv_lernwelt/edoniq_test/views.py @@ -153,9 +153,9 @@ def fetch_course_session_all_users(courses: List[int], excluded_domains=None): def generate_export_response(cs_users: List[User]) -> HttpResponse: response = HttpResponse(content_type="text/csv; charset=utf-8") - response["Content-Disposition"] = ( - f"attachment; filename=edoniq_user_export_{date.today().strftime('%Y%m%d')}.csv" - ) + response[ + "Content-Disposition" + ] = f"attachment; filename=edoniq_user_export_{date.today().strftime('%Y%m%d')}.csv" response.write("\ufeff".encode("utf8")) # UTF-8 BOM diff --git a/server/vbv_lernwelt/feedback/services.py b/server/vbv_lernwelt/feedback/services.py index 51602502..d0fefe20 100644 --- a/server/vbv_lernwelt/feedback/services.py +++ b/server/vbv_lernwelt/feedback/services.py @@ -125,9 +125,9 @@ def _handle_feedback_export_action(course_seesions, file_name): response = HttpResponse( content_type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" ) - response["Content-Disposition"] = ( - f"attachment; filename={make_export_filename(file_name)}" - ) + response[ + "Content-Disposition" + ] = f"attachment; filename={make_export_filename(file_name)}" response.write(excel_bytes) return response diff --git a/server/vbv_lernwelt/notify/tests/test_service.py b/server/vbv_lernwelt/notify/tests/test_service.py index 1feb4bad..6d8af677 100644 --- a/server/vbv_lernwelt/notify/tests/test_service.py +++ b/server/vbv_lernwelt/notify/tests/test_service.py @@ -65,9 +65,9 @@ class TestNotificationService(TestCase): self.assertFalse(notification.emailed) def test_send_notification_with_email(self): - self.recipient.additional_json_data["email_notification_categories"] = ( - json.dumps(["USER_INTERACTION"]) - ) + self.recipient.additional_json_data[ + "email_notification_categories" + ] = json.dumps(["USER_INTERACTION"]) self.recipient.save() verb = "Anne hat deinen Auftrag bewertet" @@ -146,9 +146,9 @@ class TestNotificationService(TestCase): self.assertFalse(notification.emailed) # when the email was not sent, yet it will still send it afterwards... - self.recipient.additional_json_data["email_notification_categories"] = ( - json.dumps(["USER_INTERACTION"]) - ) + self.recipient.additional_json_data[ + "email_notification_categories" + ] = json.dumps(["USER_INTERACTION"]) self.recipient.save() result = self.notification_service._send_notification( @@ -188,9 +188,9 @@ class TestNotificationService(TestCase): self.assertFalse(self._has_sent_emails()) # Assert mail is sent if corresponding email notification type is enabled - self.recipient.additional_json_data["email_notification_categories"] = ( - json.dumps(["USER_INTERACTION"]) - ) + self.recipient.additional_json_data[ + "email_notification_categories" + ] = json.dumps(["USER_INTERACTION"]) self.recipient.save() self.notification_service._send_notification( sender=self.sender, diff --git a/server/vbv_lernwelt/self_evaluation_feedback/serializers.py b/server/vbv_lernwelt/self_evaluation_feedback/serializers.py index 0c73c3dc..fd24d363 100644 --- a/server/vbv_lernwelt/self_evaluation_feedback/serializers.py +++ b/server/vbv_lernwelt/self_evaluation_feedback/serializers.py @@ -39,9 +39,9 @@ class SelfEvaluationFeedbackSerializer(serializers.ModelSerializer): return obj.learning_unit.get_circle().title def get_criteria(self, obj): - performance_criteria: List[PerformanceCriteria] = ( - obj.learning_unit.performancecriteria_set.all() - ) + performance_criteria: List[ + PerformanceCriteria + ] = obj.learning_unit.performancecriteria_set.all() criteria = [] diff --git a/server/vbv_lernwelt/shop/invoice/abacus.py b/server/vbv_lernwelt/shop/invoice/abacus.py index 7ec67cc3..1af1a09a 100644 --- a/server/vbv_lernwelt/shop/invoice/abacus.py +++ b/server/vbv_lernwelt/shop/invoice/abacus.py @@ -148,14 +148,14 @@ def render_invoice_xml( SubElement(sales_order_header_fields, "PaymentCode").text = "9999" # Skender: Bestellzeitpunkt - SubElement(sales_order_header_fields, "PurchaseOrderDate").text = ( - order_date.isoformat() - ) + SubElement( + sales_order_header_fields, "PurchaseOrderDate" + ).text = order_date.isoformat() # Skender: ePayment: TRANSACTION-ID von Datatrans in Bestellreferenz - SubElement(sales_order_header_fields, "ReferencePurchaseOrder").text = ( - datatrans_transaction_id - ) + SubElement( + sales_order_header_fields, "ReferencePurchaseOrder" + ).text = datatrans_transaction_id # Skender: ePayment: OrderID. max 10 Ziffern, erste Ziffer abhängig von der Plattform (4 = LMS, 6 = myVBV, 7 = EduManager) SubElement(sales_order_header_fields, "GroupingNumberAscii1").text = str(