From 722eacbee791d68e250f50bb5db2ade404a74555 Mon Sep 17 00:00:00 2001 From: samuelzielke Date: Sun, 13 Sep 2026 01:28:44 +0200 Subject: [PATCH] Release 26.1 Fix: - Freezed Screen - Python versio Readme --- README.md | 13 +++++++++-- app/templates/app/base.html | 10 ++++----- app/templates/app/home.html | 8 +++---- app/templates/app/updateinfo.html | 36 ++++++++++--------------------- app/urls.py | 1 + app/views.py | 21 ++++++++++-------- piomint/context_processors.py | 7 ++++++ piomint/pwa_settings.py | 2 +- piomint/settings.py | 9 ++++++++ 9 files changed, 61 insertions(+), 46 deletions(-) create mode 100644 piomint/context_processors.py diff --git a/README.md b/README.md index 4a24d3d..7701f0f 100644 --- a/README.md +++ b/README.md @@ -95,13 +95,16 @@ piomint/ ## Lokale Entwicklung -Voraussetzung: Python 3.12+ +Voraussetzung: **Python 3.10+** (Django 5.2 erfordert das; auf macOS zeigt `python3` +je nach System noch auf eine ältere Version – im Zweifel `python3 --version` prüfen und +notfalls `python3.12`/`python3.13` explizit installieren, z. B. via +`brew install python@3.12`). ```bash git clone https://git.samuelzielke.de/samuelzielke/piomint.git cd piomint -python3 -m venv venv +python3.12 -m venv venv # ggf. durch die passende 3.10+-Version ersetzen source venv/bin/activate # Windows: venv\Scripts\activate pip install -r requirements.txt @@ -143,6 +146,12 @@ bisherigen Versions-URLs auf die aktuellste weiter. 4. `versionnumber` in `app/templates/app/updateinfo.html` hochzählen 5. Changelog-Text in `updateinfo.html` schreiben (erscheint als Update-Hinweis beim ersten Öffnen der neuen Version) +6. **`STATIC_VERSION` in `piomint/settings.py` hochzählen** – hängt als `?v=...` an + allen CSS/JS-`{% static %}`-Links (siehe `piomint/context_processors.py`) und sorgt + dafür, dass bereits installierte Geräte garantiert die neuen Dateien laden statt eine + alte, gecachte Version zu behalten. Ohne diesen Schritt können CSS/JS und HTML + auseinanderlaufen (führte schon zu eingefrorenen Screens bei Bestandsnutzern) – + **nicht vergessen!** ## Roadmap / offene Punkte diff --git a/app/templates/app/base.html b/app/templates/app/base.html index 759a597..e765bf7 100644 --- a/app/templates/app/base.html +++ b/app/templates/app/base.html @@ -6,10 +6,10 @@ - - - - + + + + {% progressive_web_app_meta %} @@ -85,6 +85,6 @@ {% endblock %} - + \ No newline at end of file diff --git a/app/templates/app/home.html b/app/templates/app/home.html index be2b614..82c903c 100644 --- a/app/templates/app/home.html +++ b/app/templates/app/home.html @@ -334,8 +334,8 @@ }) - - - - + + + + {% endblock %} diff --git a/app/templates/app/updateinfo.html b/app/templates/app/updateinfo.html index 42d39c1..c5d05c5 100644 --- a/app/templates/app/updateinfo.html +++ b/app/templates/app/updateinfo.html @@ -1,36 +1,22 @@
- 🎉 -

Großes Update 26.0

-
ist da!
+

Kurzer Hotfix 26.1


Hey! 👋 -
Dieses Update ist eines der größten bisher – ich habe richtig viel Zeit reingesteckt, - damit sich PioMint für dich noch besser anfühlt. Ich hoffe, es macht dir genauso viel - Freude wie mir beim Bauen. 💚 +
Kurz hinterher: Bei manchen bereits installierten Geräten konnte diese + Update-Ansicht hängen bleiben – kein Scrollen möglich, "Alles klar"-Button nicht + erreichbar. +
Das ist jetzt behoben.

- -

✨ Was ist neu?

- -

- Danke, dass du PioMint nutzt und mir dein Feedback gibst – genau das macht die App - besser! 🙏 + War dein Bildschirm gerade eingefroren? Einmal die App schließen, kurz warten und + neu öffnen – jetzt sollte wieder alles normal laufen. +

+

+ Danke für die Geduld und fürs Melden! 🙏
Gruß Samuel


- + diff --git a/app/urls.py b/app/urls.py index 2a4e9e8..5d45856 100644 --- a/app/urls.py +++ b/app/urls.py @@ -19,4 +19,5 @@ urlpatterns = [ path("v1335/", views.v1335), path("v1340/", views.v1340), path("v260/", views.v260), + path("v261/", views.v261), ] diff --git a/app/views.py b/app/views.py index d7ede8c..e982ad6 100644 --- a/app/views.py +++ b/app/views.py @@ -8,34 +8,37 @@ def install(request): return render(request, "app/install.html") def home(request): - return redirect("/app/v260") + return redirect("/app/v261") def login(request): return render(request, "app/login.html") def v1321(request): - return redirect("/app/v260") + return redirect("/app/v261") def v1322(request): - return redirect("/app/v260") + return redirect("/app/v261") def v133(request): - return redirect("/app/v260") + return redirect("/app/v261") def v1332(request): - return redirect("/app/v260") + return redirect("/app/v261") def v1333(request): - return redirect("/app/v260") + return redirect("/app/v261") def v1334(request): - return redirect("/app/v260") + return redirect("/app/v261") def v1335(request): - return redirect("/app/v260") + return redirect("/app/v261") def v1340(request): - return redirect("/app/v260") + return redirect("/app/v261") def v260(request): + return redirect("/app/v261") + +def v261(request): return render(request, "app/home.html") diff --git a/piomint/context_processors.py b/piomint/context_processors.py new file mode 100644 index 0000000..2453623 --- /dev/null +++ b/piomint/context_processors.py @@ -0,0 +1,7 @@ +from django.conf import settings + + +def static_version(request): + """Stellt STATIC_VERSION allen Templates zur Verfügung, um CSS/JS-URLs mit + ?v= zu versehen (Cache-Busting bei Bestandsnutzern, siehe settings.py).""" + return {'STATIC_VERSION': getattr(settings, 'STATIC_VERSION', '')} diff --git a/piomint/pwa_settings.py b/piomint/pwa_settings.py index 42e8a5a..ae32cde 100644 --- a/piomint/pwa_settings.py +++ b/piomint/pwa_settings.py @@ -9,7 +9,7 @@ PWA_APP_BACKGROUND_COLOR = '#9FEDD7' PWA_APP_DISPLAY = 'standalone' PWA_APP_SCOPE = '/' PWA_APP_ORIENTATION = 'portrait' -PWA_APP_START_URL = '/app/v260/' +PWA_APP_START_URL = '/app/v261/' PWA_APP_STATUS_BAR_COLOR = 'black-translucent' PWA_SERVICE_WORKER_PATH = os.path.join(BASE_DIR, 'app/static/app/js', 'serviceworker.js') PWA_APP_ICONS = [ diff --git a/piomint/settings.py b/piomint/settings.py index d1458e8..b5838dd 100644 --- a/piomint/settings.py +++ b/piomint/settings.py @@ -72,6 +72,7 @@ TEMPLATES = [ 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', + 'piomint.context_processors.static_version', ], }, }, @@ -140,6 +141,14 @@ USE_TZ = True STATIC_URL = 'static/' STATIC_ROOT = '/var/www/piomint/static/' # Directory to collect static files. +# Cache-Busting für CSS/JS: wird als ?v= an alle {% static %}-Links in +# base.html/home.html angehängt (siehe piomint/context_processors.py). Ohne das können +# bereits installierte PWAs auf einer alten, gecachten CSS/JS-Version hängen bleiben, +# während schon neues HTML ausgeliefert wird - das führte u.a. zu eingefrorenen Screens +# (kein Scroll, kein Button erreichbar) bei Bestandsnutzern. Bei jedem Release erhöhen, +# zusammen mit der Versions-URL in app/urls.py / app/views.py. +STATIC_VERSION = '26.1' + # Default primary key field type # https://docs.djangoproject.com/en/5.1/ref/settings/#default-auto-field