From fdd7c52bbdfa4f6f96af0e2c0c148d3ca215596c Mon Sep 17 00:00:00 2001
From: lxa4096 <lxa4096@tutamail.com>
Date: Mon, 15 Apr 2024 16:43:22 +0200
Subject: [PATCH] fix(flask-babel 4.0.0 breakage): pass get_locale function to
 Babel constructor

Fixes 'Babel' object has no attribute 'localeselector' for the new
flask-babel==4.0.0 version.
https://python-babel.github.io/flask-babel/index.html
For the future pipenv for dependency management may be considered
---
 lehrpreis.py          | 11 ++++++-----
 requirements.txt.lock | 20 ++++++++++++++++++++
 2 files changed, 26 insertions(+), 5 deletions(-)
 create mode 100644 requirements.txt.lock

diff --git a/lehrpreis.py b/lehrpreis.py
index 9eb235c..6486467 100755
--- a/lehrpreis.py
+++ b/lehrpreis.py
@@ -28,14 +28,15 @@ login_manager.login_view = '.login'
 login_manager.login_message = gettext('Please log in to access this page.')
 login_manager.login_message_category = 'alert-info'
 # login_manager.session_protection = 'strong' # basic
-babel = Babel(app)
 
 
-@babel.localeselector
 def get_locale():
-    if not ('lang' in session):
-        session['lang'] = request.accept_languages.best_match(['de', 'en'])
-    return session['lang']
+    if not ("lang" in session):
+        session["lang"] = request.accept_languages.best_match(["de", "en"])
+    return session["lang"]
+
+
+babel = Babel(app, locale_selector=get_locale)
 
 
 # http://flask.pocoo.org/snippets/120/
diff --git a/requirements.txt.lock b/requirements.txt.lock
new file mode 100644
index 0000000..79b14ac
--- /dev/null
+++ b/requirements.txt.lock
@@ -0,0 +1,20 @@
+Babel==2.14.0
+blinker==1.7.0
+click==8.1.7
+Flask==3.0.3
+flask-babel==4.0.0
+Flask-Login==0.6.3
+Flask-SQLAlchemy==3.1.1
+Flask-WTF==1.2.1
+greenlet==3.0.3
+itsdangerous==2.1.2
+Jinja2==3.1.3
+ldap3==2.9.1
+MarkupSafe==2.1.5
+psycopg2-binary==2.9.9
+pyasn1==0.6.0
+pytz==2024.1
+SQLAlchemy==2.0.29
+typing_extensions==4.11.0
+Werkzeug==3.0.2
+WTForms==3.1.2
-- 
GitLab