From 7be9912c28e587e51716f41a29314fa4b0a4a370 Mon Sep 17 00:00:00 2001 From: Nicolai Spohrer Date: Wed, 6 May 2026 14:24:49 +0200 Subject: [PATCH 1/6] Django upgrade phase 1: fix pre-4.0 deprecations - Replace ugettext_lazy with gettext_lazy (removed in Django 4.0) - Replace {% load staticfiles %} with {% load static %} (removed in Django 4.0) - Replace django.conf.urls.url with django.urls.re_path (removed in Django 4.0) Co-Authored-By: Claude Sonnet 4.6 --- barsys/forms.py | 2 +- barsys/templates/barsys/admin/base.html | 2 +- barsys/urls.py | 2 +- pybarsys/urls.py | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/barsys/forms.py b/barsys/forms.py index 2593505..bcab58c 100644 --- a/barsys/forms.py +++ b/barsys/forms.py @@ -4,7 +4,7 @@ from crispy_forms.helper import FormHelper from django import forms from django.contrib.auth import forms as auth_forms -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from .models import * from pybarsys.settings import PybarsysPreferences diff --git a/barsys/templates/barsys/admin/base.html b/barsys/templates/barsys/admin/base.html index f3d28c6..f0c8ca4 100644 --- a/barsys/templates/barsys/admin/base.html +++ b/barsys/templates/barsys/admin/base.html @@ -1,7 +1,7 @@ {% extends 'bootstrap3/bootstrap3.html' %} {% load bootstrap3 %} -{% load staticfiles %} +{% load static %} {% block bootstrap3_title %}Barsys management{% endblock %} {% block bootstrap3_extra_head %} {% endblock %} diff --git a/barsys/urls.py b/barsys/urls.py index 086f6f7..4add104 100644 --- a/barsys/urls.py +++ b/barsys/urls.py @@ -1,4 +1,4 @@ -from django.conf.urls import url +from django.urls import re_path as url from . import views diff --git a/pybarsys/urls.py b/pybarsys/urls.py index b5a32f9..df20c6a 100644 --- a/pybarsys/urls.py +++ b/pybarsys/urls.py @@ -15,7 +15,7 @@ """ from django.conf import settings -from django.conf.urls import include, url +from django.urls import include, re_path as url from django.contrib.auth import views as auth_views from barsys.forms import LoginForm From 45870c0ead04ab374b02f9570e821fce3ac3985a Mon Sep 17 00:00:00 2001 From: Nicolai Spohrer Date: Wed, 6 May 2026 14:31:58 +0200 Subject: [PATCH 2/6] Django upgrade phase 2: bump to Django 3.2 LTS - Django 2.2 -> 3.2 - django-crispy-forms 1.7.2 -> 1.12.0 (dropped django.utils.lru_cache) - django-debug-toolbar 1.11 -> 3.8 - django-environ 0.4.5 -> 0.9.0 - Add DEFAULT_AUTO_FIELD = AutoField to suppress 3.2 system check warning Co-Authored-By: Claude Sonnet 4.6 --- pybarsys/settings.py | 2 ++ requirements.txt | 8 ++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/pybarsys/settings.py b/pybarsys/settings.py index cf4f663..2b076be 100644 --- a/pybarsys/settings.py +++ b/pybarsys/settings.py @@ -63,6 +63,8 @@ DATABASES = {"default": env.db()} +DEFAULT_AUTO_FIELD = "django.db.models.AutoField" # keep 32-bit PKs; avoids migrations on existing tables + AUTH_USER_MODEL = "barsys.User" # custom Barsys user model # Password validation diff --git a/requirements.txt b/requirements.txt index 39c5bf8..4719f31 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,9 +1,9 @@ -Django~=2.2.0 +Django~=3.2.0 django-bootstrap3~=21.2 -django-crispy-forms~=1.7.2 -django-debug-toolbar~=1.11 +django-crispy-forms~=1.12.0 +django-debug-toolbar~=3.8 django-filter~=21.1 djangorestframework~=3.11.2 -django-environ~=0.4.5 +django-environ~=0.9.0 babel~=2.9.0 gunicorn~=20.1.0 From 47c1139ab6181b002bf57784370f4dbb984500fd Mon Sep 17 00:00:00 2001 From: Nicolai Spohrer Date: Wed, 6 May 2026 14:37:51 +0200 Subject: [PATCH 3/6] Django upgrade phase 3: bump to Django 4.2 LTS - Django 3.2 -> 4.2 - django-crispy-forms 1.12 -> 2.3 + add crispy-bootstrap3 (template pack split) - django-bootstrap3 21.2 -> 23.1 - django-debug-toolbar 3.8 -> 4.3 - django-filter 21.1 -> 23.3 - djangorestframework 3.11 -> 3.14 - django-environ 0.9 -> 0.11 - Add crispy_bootstrap3 to INSTALLED_APPS Co-Authored-By: Claude Sonnet 4.6 --- pybarsys/settings.py | 1 + requirements.txt | 15 ++++++++------- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/pybarsys/settings.py b/pybarsys/settings.py index 2b076be..2b79f2b 100644 --- a/pybarsys/settings.py +++ b/pybarsys/settings.py @@ -26,6 +26,7 @@ "barsys.apps.BarsysConfig", "django_filters", "crispy_forms", + "crispy_bootstrap3", "rest_framework", ] diff --git a/requirements.txt b/requirements.txt index 4719f31..8ac11c9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,9 +1,10 @@ -Django~=3.2.0 -django-bootstrap3~=21.2 -django-crispy-forms~=1.12.0 -django-debug-toolbar~=3.8 -django-filter~=21.1 -djangorestframework~=3.11.2 -django-environ~=0.9.0 +Django~=4.2.0 +django-bootstrap3~=23.1 +django-crispy-forms~=2.3 +crispy-bootstrap3>=2023.1 +django-debug-toolbar~=4.3 +django-filter~=23.3 +djangorestframework~=3.14 +django-environ~=0.11 babel~=2.9.0 gunicorn~=20.1.0 From fe23a22c46e174e9aad54016354b8fb6a7b8e564 Mon Sep 17 00:00:00 2001 From: Nicolai Spohrer Date: Wed, 6 May 2026 14:41:40 +0200 Subject: [PATCH 4/6] Django upgrade phase 4: bump to Django 5.2 LTS - Django 4.2 -> 5.2 - Also fix wrong hardcoded bootstrap path Co-Authored-By: Claude Sonnet 4.6 --- barsys/forms.py | 2 +- requirements.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/barsys/forms.py b/barsys/forms.py index bcab58c..ff6c7e5 100644 --- a/barsys/forms.py +++ b/barsys/forms.py @@ -53,7 +53,7 @@ def __init__(self, *args, **kwargs): ) self.helper = FormHelper() - self.helper.template = "bootstrap/table_inline_formset.html" + self.helper.template = "bootstrap3/table_inline_formset.html" self.helper.form_tag = False diff --git a/requirements.txt b/requirements.txt index 8ac11c9..6cae390 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -Django~=4.2.0 +Django~=5.2.0 django-bootstrap3~=23.1 django-crispy-forms~=2.3 crispy-bootstrap3>=2023.1 From e8cc68a7427244b6a51782e0527817f26f1b9446 Mon Sep 17 00:00:00 2001 From: Nicolai Spohrer Date: Sat, 16 May 2026 13:35:57 +0200 Subject: [PATCH 5/6] Bump more requirement versions Co-Authored-By: Claude Sonnet 4.6 --- pybarsys/settings.py | 2 +- requirements.txt | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/pybarsys/settings.py b/pybarsys/settings.py index 2b79f2b..9b2e34f 100644 --- a/pybarsys/settings.py +++ b/pybarsys/settings.py @@ -31,7 +31,6 @@ ] MIDDLEWARE = [ - "debug_toolbar.middleware.DebugToolbarMiddleware", "django.middleware.security.SecurityMiddleware", "django.contrib.sessions.middleware.SessionMiddleware", "django.middleware.common.CommonMiddleware", @@ -114,6 +113,7 @@ TEMPLATES[0]["OPTIONS"]["string_if_invalid"] = "!INVALID!" if env.bool("SHOW_DEBUG_TOOLBAR", default=False): INSTALLED_APPS.append("debug_toolbar") + MIDDLEWARE.append("debug_toolbar.middleware.DebugToolbarMiddleware") DEBUG_TOOLBAR_CONFIG = { "SHOW_TOOLBAR_CALLBACK": lambda e: True, "DISABLE_PANELS": { diff --git a/requirements.txt b/requirements.txt index 6cae390..20e3231 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,10 +1,10 @@ Django~=5.2.0 -django-bootstrap3~=23.1 -django-crispy-forms~=2.3 -crispy-bootstrap3>=2023.1 -django-debug-toolbar~=4.3 -django-filter~=23.3 -djangorestframework~=3.14 -django-environ~=0.11 -babel~=2.9.0 -gunicorn~=20.1.0 +django-bootstrap3~=26.1 +django-crispy-forms~=2.6 +crispy-bootstrap3~=2024.1 +django-debug-toolbar~=6.3 +django-filter~=25.2 +djangorestframework~=3.17 +django-environ~=0.13 +babel~=2.18 +gunicorn~=26.0 From 339ba2dac82e1b7e538c55c1bef131a4b62de295 Mon Sep 17 00:00:00 2001 From: Nicolai Spohrer Date: Sat, 16 May 2026 14:06:50 +0200 Subject: [PATCH 6/6] Slight updates to Debug Toolbar defaults Remove deprecated RedirectPanel, use HistoryPanel instead. --- pybarsys/settings.py | 7 ++----- pybarsys/urls.py | 2 +- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/pybarsys/settings.py b/pybarsys/settings.py index 9b2e34f..dfd15dc 100644 --- a/pybarsys/settings.py +++ b/pybarsys/settings.py @@ -116,10 +116,7 @@ MIDDLEWARE.append("debug_toolbar.middleware.DebugToolbarMiddleware") DEBUG_TOOLBAR_CONFIG = { "SHOW_TOOLBAR_CALLBACK": lambda e: True, - "DISABLE_PANELS": { - "debug_toolbar.panels.redirects.RedirectsPanel", - "debug_toolbar.panels.templates.TemplatesPanel", - }, + "DISABLE_PANELS": set(), } DEBUG_TOOLBAR_PANELS = [ @@ -134,7 +131,7 @@ "debug_toolbar.panels.cache.CachePanel", "debug_toolbar.panels.signals.SignalsPanel", "debug_toolbar.panels.logging.LoggingPanel", - "debug_toolbar.panels.redirects.RedirectsPanel", + "debug_toolbar.panels.history.HistoryPanel", "debug_toolbar.panels.profiling.ProfilingPanel", ] diff --git a/pybarsys/urls.py b/pybarsys/urls.py index df20c6a..05a7d00 100644 --- a/pybarsys/urls.py +++ b/pybarsys/urls.py @@ -39,7 +39,7 @@ ), ] -if settings.DEBUG: +if "debug_toolbar" in settings.INSTALLED_APPS: import debug_toolbar urlpatterns = [