diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index df2ce370fda49ab03c96cc3c810dcfdee73f67f4..94e2784b07934b8f32f7581828ff7b598c9711a8 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -2,14 +2,14 @@ exclude: ^.*.min.*|migrations|yarn.lock|venv$
 
 repos:
   - repo: https://github.com/pre-commit/pre-commit-hooks
-    rev: v2.3.0
+    rev: v5.0.0
     hooks:
       - id: check-yaml
       - id: check-toml
       - id: check-merge-conflict
       - id: check-ast
   - repo: https://github.com/astral-sh/ruff-pre-commit
-    rev: v0.1.5
+    rev: v0.8.0
     hooks:
       - id: ruff
         args: [--fix]
@@ -19,25 +19,25 @@ repos:
     hooks:
       - id: check-json5
   - repo: https://github.com/pdm-project/pdm
-    rev: 2.19.2
+    rev: 2.20.1
     hooks:
       - name: check production requirements
         id: pdm-export
         args: ["-o", "requirements.txt", "--without-hashes", "--prod"]
         files: ^pdm.lock$
   - repo: https://github.com/pdm-project/pdm
-    rev: 2.19.2
+    rev: 2.20.1
     hooks:
       - name: check development requirements
         id: pdm-export
         args: ["-o", "requirements.dev.txt", "--without-hashes", "--dev"]
         files: ^pdm.lock$
   - repo: https://github.com/pdm-project/pdm
-    rev: 2.19.2
+    rev: 2.20.1
     hooks:
       - id: pdm-lock-check
   - repo: https://github.com/djlint/djLint
-    rev: v1.35.2
+    rev: v1.36.1
     hooks:
       - id: djlint-reformat-django
       - id: djlint-reformat-jinja
diff --git a/pdm.lock b/pdm.lock
index 1ebc77d7e4bff3efb9fe7069ad59a0e5c6ed2553..3f90458bbadf6301dba2b7baf3f11e234ea74402 100644
--- a/pdm.lock
+++ b/pdm.lock
@@ -2,10 +2,10 @@
 # It is not intended for manual editing.
 
 [metadata]
-groups = ["default", "dev", "django-csp", "lint", "local", "static-analysis", "typing", "watchfiles"]
+groups = ["default", "dev", "lint", "local", "static-analysis", "typing", "watchfiles"]
 strategy = ["inherit_metadata"]
 lock_version = "4.5.0"
-content_hash = "sha256:1e5c1e57c2e2a93e38b0b129351d7efb840b97cca3e7b69b9277b9766e03f521"
+content_hash = "sha256:6cd999df91d09b33edb8b107d34fb834eab68578ffd4ef259d54d373443858bd"
 
 [[metadata.targets]]
 requires_python = "==3.13.*"
@@ -138,23 +138,23 @@ files = [
 
 [[package]]
 name = "boto3"
-version = "1.35.68"
+version = "1.35.71"
 requires_python = ">=3.8"
 summary = "The AWS SDK for Python"
 groups = ["default"]
 dependencies = [
-    "botocore<1.36.0,>=1.35.68",
+    "botocore<1.36.0,>=1.35.71",
     "jmespath<2.0.0,>=0.7.1",
     "s3transfer<0.11.0,>=0.10.0",
 ]
 files = [
-    {file = "boto3-1.35.68-py3-none-any.whl", hash = "sha256:9b26fa31901da7793c1dcd65eee9bab7e897d8aa1ffed0b5e1c3bce93d2aefe4"},
-    {file = "boto3-1.35.68.tar.gz", hash = "sha256:091d6bed1422370987a839bff3f8755df7404fc15e9fac2a48e8505356f07433"},
+    {file = "boto3-1.35.71-py3-none-any.whl", hash = "sha256:e2969a246bb3208122b3c349c49cc6604c6fc3fc2b2f65d99d3e8ccd745b0c16"},
+    {file = "boto3-1.35.71.tar.gz", hash = "sha256:3ed7172b3d4fceb6218bb0ec3668c4d40c03690939c2fca4f22bb875d741a07f"},
 ]
 
 [[package]]
 name = "botocore"
-version = "1.35.68"
+version = "1.35.71"
 requires_python = ">=3.8"
 summary = "Low-level, data-driven core of boto 3."
 groups = ["default"]
@@ -165,8 +165,8 @@ dependencies = [
     "urllib3<1.27,>=1.25.4; python_version < \"3.10\"",
 ]
 files = [
-    {file = "botocore-1.35.68-py3-none-any.whl", hash = "sha256:599139d5564291f5be873800711f9e4e14a823395ae9ce7b142be775e9849b94"},
-    {file = "botocore-1.35.68.tar.gz", hash = "sha256:42c3700583a82f2b5316281a073d644a521d6358837e2b446dc458ba5d990fb4"},
+    {file = "botocore-1.35.71-py3-none-any.whl", hash = "sha256:fc46e7ab1df3cef66dfba1633f4da77c75e07365b36f03bd64a3793634be8fc1"},
+    {file = "botocore-1.35.71.tar.gz", hash = "sha256:f9fa058e0393660c3fe53c1e044751beb64b586def0bd2212448a7c328b0cbba"},
 ]
 
 [[package]]
@@ -429,7 +429,7 @@ files = [
 
 [[package]]
 name = "django"
-version = "5.1.2"
+version = "5.1.3"
 requires_python = ">=3.10"
 summary = "A high-level Python web framework that encourages rapid development and clean, pragmatic design."
 groups = ["default", "typing", "watchfiles"]
@@ -439,8 +439,8 @@ dependencies = [
     "tzdata; sys_platform == \"win32\"",
 ]
 files = [
-    {file = "Django-5.1.2-py3-none-any.whl", hash = "sha256:f11aa87ad8d5617171e3f77e1d5d16f004b79a2cf5d2e1d2b97a6a1f8e9ba5ed"},
-    {file = "Django-5.1.2.tar.gz", hash = "sha256:bd7376f90c99f96b643722eee676498706c9fd7dc759f55ebfaf2c08ebcdf4f0"},
+    {file = "Django-5.1.3-py3-none-any.whl", hash = "sha256:8b38a9a12da3ae00cb0ba72da985ec4b14de6345046b1e174b1fd7254398f818"},
+    {file = "Django-5.1.3.tar.gz", hash = "sha256:c0fa0e619c39325a169208caef234f90baa925227032ad3f44842ba14d75234a"},
 ]
 
 [[package]]
@@ -513,7 +513,7 @@ files = [
 
 [[package]]
 name = "django-modeltranslation"
-version = "0.18.13"
+version = "0.19.11"
 summary = "Translates Django models using a registration approach."
 groups = ["default"]
 dependencies = [
@@ -521,8 +521,8 @@ dependencies = [
     "typing-extensions>=4.0.1; python_version < \"3.11\"",
 ]
 files = [
-    {file = "django_modeltranslation-0.18.13-py3-none-any.whl", hash = "sha256:5da153f8eb08adbd63d2d41be7aa15aa250adec8034b0553eea6e6746bfcd3c9"},
-    {file = "django_modeltranslation-0.18.13.tar.gz", hash = "sha256:4665ff19617e3a868f4c8173fe1b359d6a50362552165e665a0d32f78edafddd"},
+    {file = "django_modeltranslation-0.19.11-py3-none-any.whl", hash = "sha256:fe36ecb8d943aaa406e4045d34e2160e90b170b0c71c8d0b5336e5031030b202"},
+    {file = "django_modeltranslation-0.19.11.tar.gz", hash = "sha256:c65a2652554c22bbe11f5db2e81e0c66d58434077d31dce7089cc7bd3ce4e79c"},
 ]
 
 [[package]]
@@ -704,7 +704,7 @@ files = [
 
 [[package]]
 name = "djlint"
-version = "1.36.1"
+version = "1.36.2"
 requires_python = ">=3.9"
 summary = "HTML Template Linter and Formatter"
 groups = ["lint"]
@@ -721,12 +721,12 @@ dependencies = [
     "tqdm>=4.62.2",
 ]
 files = [
-    {file = "djlint-1.36.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7f31646435385eec1d4b03dad7bebb5e4078d9893c60d490a685535bd6303c83"},
-    {file = "djlint-1.36.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4399477ac51f9c8147eedbef70aa8465eccba6759d875d1feec6782744aa168a"},
-    {file = "djlint-1.36.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f08c217b17d3ae3c0e3b5fff57fb708029cceda6e232f5a54ff1b3aeb43a7540"},
-    {file = "djlint-1.36.1-cp313-cp313-win_amd64.whl", hash = "sha256:1577490802ca4697af3488ed13066c9214ef0f625a96aa20d4f297e37aa19303"},
-    {file = "djlint-1.36.1-py3-none-any.whl", hash = "sha256:950782b396dd82b74622c09d7e4c52328e56a3b03c8ac790c319708e5caa0686"},
-    {file = "djlint-1.36.1.tar.gz", hash = "sha256:f7260637ed72c270fa6dd4a87628e1a21c49b24a46df52e4e26f44d4934fb97c"},
+    {file = "djlint-1.36.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:dbdffa74fed2fdd29c587f80179ae302247e51d3f78a617c4cde43b028bc161f"},
+    {file = "djlint-1.36.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:8bc05e3735960dad5b025037a0e5e823300224ac44d9d8c9cbae6fb962c77a84"},
+    {file = "djlint-1.36.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f3e16b4d104d2aedc474c2da819fb2c09a5183e2867616fe4df2fa685d2c191f"},
+    {file = "djlint-1.36.2-cp313-cp313-win_amd64.whl", hash = "sha256:8e815b61a6f50eb55fd4c76cff6b3f447ecd5d063a714cd353fec47ce131e4c7"},
+    {file = "djlint-1.36.2-py3-none-any.whl", hash = "sha256:98193159b1563a8644b58b7adfcbad04246bb9078ad49c389ac586fec181c48d"},
+    {file = "djlint-1.36.2.tar.gz", hash = "sha256:00d1a79de3c43b50e46a0ce6f279535b88bbf203d3f50ada92f56740fca4f590"},
 ]
 
 [[package]]
@@ -1322,8 +1322,8 @@ files = [
 
 [[package]]
 name = "pdm"
-version = "2.20.1"
-requires_python = ">=3.8"
+version = "2.21.0"
+requires_python = ">=3.9"
 summary = "A modern Python package and dependency manager supporting the latest PEP standards"
 groups = ["default"]
 dependencies = [
@@ -1332,11 +1332,10 @@ dependencies = [
     "dep-logic>=0.4.4",
     "filelock>=3.13",
     "findpython<1.0.0a0,>=0.6.0",
-    "hishel<0.1.0,>=0.0.32",
+    "hishel>=0.0.32",
     "httpcore>=1.0.6",
     "httpx[socks]<1,>0.20",
     "importlib-metadata>=3.6; python_version < \"3.10\"",
-    "importlib-resources>=5; python_version < \"3.9\"",
     "installer<0.8,>=0.7",
     "msgpack>=1.0",
     "packaging!=22.0,>=20.9",
@@ -1354,8 +1353,8 @@ dependencies = [
     "virtualenv>=20",
 ]
 files = [
-    {file = "pdm-2.20.1-py3-none-any.whl", hash = "sha256:27904e5a703e6ce6598a2a92a6e4c95b2099746b1aba9402154978afce4ed6a7"},
-    {file = "pdm-2.20.1.tar.gz", hash = "sha256:5348e9d33de381f998904a63ab18efdd6d1cf6377d45572e8b996d58dfc5b996"},
+    {file = "pdm-2.21.0-py3-none-any.whl", hash = "sha256:c01a50622072a9529bd9c7f8c1ce8d050b7e340d25d051233bce9fcdd8449614"},
+    {file = "pdm-2.21.0.tar.gz", hash = "sha256:9c928d6db62d104ab86318fe09aaf9bdfc6f616176af407e4df00f59e001930f"},
 ]
 
 [[package]]
@@ -1509,7 +1508,7 @@ files = [
 
 [[package]]
 name = "pydantic"
-version = "2.10.1"
+version = "2.10.2"
 requires_python = ">=3.8"
 summary = "Data validation using Python type hints"
 groups = ["default"]
@@ -1519,8 +1518,8 @@ dependencies = [
     "typing-extensions>=4.12.2",
 ]
 files = [
-    {file = "pydantic-2.10.1-py3-none-any.whl", hash = "sha256:a8d20db84de64cf4a7d59e899c2caf0fe9d660c7cfc482528e7020d7dd189a7e"},
-    {file = "pydantic-2.10.1.tar.gz", hash = "sha256:a4daca2dc0aa429555e0656d6bf94873a7dc5f54ee42b1f5873d666fb3f35560"},
+    {file = "pydantic-2.10.2-py3-none-any.whl", hash = "sha256:cfb96e45951117c3024e6b67b25cdc33a3cb7b2fa62e239f7af1378358a1d99e"},
+    {file = "pydantic-2.10.2.tar.gz", hash = "sha256:2bc2d7f17232e0841cbba4641e65ba1eb6fafb3a08de3a091ff3ce14a197c4fa"},
 ]
 
 [[package]]
@@ -1746,8 +1745,8 @@ files = [
 
 [[package]]
 name = "requests"
-version = "2.31.0"
-requires_python = ">=3.7"
+version = "2.32.3"
+requires_python = ">=3.8"
 summary = "Python HTTP for Humans."
 groups = ["default"]
 dependencies = [
@@ -1757,22 +1756,21 @@ dependencies = [
     "urllib3<3,>=1.21.1",
 ]
 files = [
-    {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"},
-    {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"},
+    {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"},
+    {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"},
 ]
 
 [[package]]
 name = "requests-file"
-version = "1.5.1"
+version = "2.1.0"
 summary = "File transport adapter for Requests"
 groups = ["default"]
 dependencies = [
     "requests>=1.0.0",
-    "six",
 ]
 files = [
-    {file = "requests-file-1.5.1.tar.gz", hash = "sha256:07d74208d3389d01c38ab89ef403af0cfec63957d53a0081d8eca738d0247d8e"},
-    {file = "requests_file-1.5.1-py2.py3-none-any.whl", hash = "sha256:dfe5dae75c12481f68ba353183c53a65e6044c923e64c24b2209f6c7570ca953"},
+    {file = "requests_file-2.1.0-py2.py3-none-any.whl", hash = "sha256:cf270de5a4c5874e84599fc5778303d496c10ae5e870bfa378818f35d21bda5c"},
+    {file = "requests_file-2.1.0.tar.gz", hash = "sha256:0f549a3f3b0699415ac04d167e9cb39bccfb730cb832b4d20be3d9867356e658"},
 ]
 
 [[package]]
@@ -1869,7 +1867,7 @@ files = [
 
 [[package]]
 name = "sentry-sdk"
-version = "2.17.0"
+version = "2.19.0"
 requires_python = ">=3.6"
 summary = "Python client for Sentry (https://sentry.io)"
 groups = ["default"]
@@ -1878,8 +1876,8 @@ dependencies = [
     "urllib3>=1.26.11",
 ]
 files = [
-    {file = "sentry_sdk-2.17.0-py2.py3-none-any.whl", hash = "sha256:625955884b862cc58748920f9e21efdfb8e0d4f98cca4ab0d3918576d5b606ad"},
-    {file = "sentry_sdk-2.17.0.tar.gz", hash = "sha256:dd0a05352b78ffeacced73a94e86f38b32e2eae15fff5f30ca5abb568a72eacf"},
+    {file = "sentry_sdk-2.19.0-py2.py3-none-any.whl", hash = "sha256:7b0b3b709dee051337244a09a30dbf6e95afe0d34a1f8b430d45e0982a7c125b"},
+    {file = "sentry_sdk-2.19.0.tar.gz", hash = "sha256:ee4a4d2ae8bfe3cac012dcf3e4607975904c137e1738116549fc3dbbb6ff0e36"},
 ]
 
 [[package]]
diff --git a/pyproject.toml b/pyproject.toml
index 48c77b34fe935b379b4349371f87cb985329fb47..6c9041f25fe7ea2e3164a768f37929a5f3c81497 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -12,15 +12,15 @@ dependencies = [
     "django-bootstrap5~=24.3",
     "django-cors-headers~=4.5",
     "django-debug-toolbar~=4.4.6",
-    "django-environ~=0.11.2,<1",
-    "django-modeltranslation~=0.18.9",
+    "django-environ~=0.11.2,<0.12",
+    "django-modeltranslation>=0.19.0,<0.20",
     "django-oauth-toolkit~=3.0.1",
     "django-ratelimit~=4.1.0",
     "django-redis~=5.4.0",
     "django-storages~=1.14.4",
     "django-timezone-field~=7.0.0",
     "django-widget-tweaks~=1.5.0",
-    "Django==5.1.2,<6",
+    "Django>=5.1.2,<5.2.0",
     "djangorestframework~=3.15.2",
     "freezegun~=1.5.1",
     "Jinja2~=3.1.4,<4",
@@ -34,10 +34,10 @@ dependencies = [
     "Pillow~=11.0",
     "Pygments~=2.18",
     "pyjwt~=2.9.0",
-    "requests-file~=1.5.1,<2",
-    "requests~=2.31.0",
+    "requests-file>=2.0.0,<3",
+    "requests>=2.31.0,<3",
     "segno~=1.6.1",
-    "sentry-sdk~=2.17.0",
+    "sentry-sdk>=2.17.0,<3",
     "tzdata~=2024.2",
     "pdm>=2.11.2",
     "psycopg[binary,pool]>=3.2.3",
diff --git a/requirements.dev.txt b/requirements.dev.txt
index 93aee3222cd3181cf681427344935cf3a125e245..4160fd4e900fd563bad44286857c0d8bffd037a4 100644
--- a/requirements.dev.txt
+++ b/requirements.dev.txt
@@ -10,8 +10,8 @@ babel==2.16.0
 beautifulsoup4==4.12.3
 bleach==6.2.0
 blinker==1.9.0
-boto3==1.35.68
-botocore==1.35.68
+boto3==1.35.71
+botocore==1.35.71
 cachetools==5.5.0
 certifi==2024.8.30
 cffi==1.17.1; platform_python_implementation != "PyPy"
@@ -28,13 +28,13 @@ defusedxml==0.7.1
 dep-logic==0.4.9
 dill==0.3.9; python_version >= "3.11"
 distlib==0.3.9
-django==5.1.2
+django==5.1.3
 django-bootstrap5==24.3
 django-cors-headers==4.6.0
 django-csp==3.8
 django-debug-toolbar==4.4.6
 django-environ==0.11.2
-django-modeltranslation==0.18.13
+django-modeltranslation==0.19.11
 django-oauth-toolkit==3.0.1
 django-ratelimit==4.1.0
 django-redis==5.4.0
@@ -45,7 +45,7 @@ django-stubs[mypy-compatible]==5.1.1
 django-timezone-field==7.0
 django-widget-tweaks==1.5.0
 djangorestframework==3.15.2
-djlint==1.36.1
+djlint==1.36.2
 docutils==0.21.2
 editorconfig==0.12.4
 et-xmlfile==2.0.0
@@ -86,7 +86,7 @@ packaging==24.2
 pandas==2.2.3
 pathspec==0.12.1
 pbs-installer==2024.10.16
-pdm==2.20.1
+pdm==2.21.0
 pillow==11.0.0
 platformdirs==4.3.6
 pluggy==1.5.0
@@ -95,7 +95,7 @@ psycopg-binary==3.2.3; implementation_name != "pypy"
 psycopg-pool==3.2.4
 psycopg[binary,pool]==3.2.3
 pycparser==2.22; platform_python_implementation != "PyPy"
-pydantic==2.10.1
+pydantic==2.10.2
 pydantic-core==2.27.1
 pygments==2.18.0
 pyjwt==2.9.0
@@ -110,15 +110,15 @@ pytz==2024.2
 pyyaml==6.0.2
 redis==5.2.0
 regex==2024.11.6
-requests==2.31.0
-requests-file==1.5.1
+requests==2.32.3
+requests-file==2.1.0
 resolvelib==1.1.0
 rich==13.9.4
 ruff==0.8.0
 rules==3.5
 s3transfer==0.10.4
 segno==1.6.1
-sentry-sdk==2.17.0
+sentry-sdk==2.19.0
 shellingham==1.5.4
 six==1.16.0
 sniffio==1.3.1
diff --git a/requirements.txt b/requirements.txt
index f74cfcd121fb438008f1261a2006d3d645bbce29..9c1e18bd6c550b572878d3cd2d7a8e964709cb3d 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -8,8 +8,8 @@ babel==2.16.0
 beautifulsoup4==4.12.3
 bleach==6.2.0
 blinker==1.9.0
-boto3==1.35.68
-botocore==1.35.68
+boto3==1.35.71
+botocore==1.35.71
 certifi==2024.8.30
 cffi==1.17.1; platform_python_implementation != "PyPy"
 charset-normalizer==3.4.0
@@ -17,13 +17,13 @@ cryptography==43.0.3
 defusedxml==0.7.1
 dep-logic==0.4.9
 distlib==0.3.9
-django==5.1.2
+django==5.1.3
 django-bootstrap5==24.3
 django-cors-headers==4.6.0
 django-csp==3.8
 django-debug-toolbar==4.4.6
 django-environ==0.11.2
-django-modeltranslation==0.18.13
+django-modeltranslation==0.19.11
 django-oauth-toolkit==3.0.1
 django-ratelimit==4.1.0
 django-redis==5.4.0
@@ -61,14 +61,14 @@ ordered-set==4.1.0
 packaging==24.2
 pandas==2.2.3
 pbs-installer==2024.10.16
-pdm==2.20.1
+pdm==2.21.0
 pillow==11.0.0
 platformdirs==4.3.6
 psycopg-binary==3.2.3; implementation_name != "pypy"
 psycopg-pool==3.2.4
 psycopg[binary,pool]==3.2.3
 pycparser==2.22; platform_python_implementation != "PyPy"
-pydantic==2.10.1
+pydantic==2.10.2
 pydantic-core==2.27.1
 pygments==2.18.0
 pyjwt==2.9.0
@@ -77,14 +77,14 @@ python-dateutil==2.9.0.post0
 python-dotenv==1.0.1
 pytz==2024.2
 redis==5.2.0
-requests==2.31.0
-requests-file==1.5.1
+requests==2.32.3
+requests-file==2.1.0
 resolvelib==1.1.0
 rich==13.9.4
 rules==3.5
 s3transfer==0.10.4
 segno==1.6.1
-sentry-sdk==2.17.0
+sentry-sdk==2.19.0
 shellingham==1.5.4
 six==1.16.0
 sniffio==1.3.1