diff --git a/requirements.txt b/requirements.txt
index d7fc7953e502266e4d55fc142e49320b69ed4df4..c017117c0b2fe081aaa222f0eb60122b1911a456 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,41 +1,46 @@
-Babel==2.7.0
-blinker==1.4
-certifi==2019.6.16
-chardet==3.0.4
-Click==7.0
-config==0.4.2
-decorator==4.4.0
-dnspython==1.16.0
-email-validator==1.0.4
-Flask==1.1.1
-Flask-Limiter==1.0.1
-Flask-Login==0.4.1
+Babel==2.12.1
+blinker==1.6.2
+certifi==2023.5.7
+charset-normalizer==3.1.0
+click==8.1.3
+decorator==5.1.1
+Deprecated==1.2.13
+dnspython==2.3.0
+email-validator==2.0.0.post2
+Flask==2.3.2
+Flask-Limiter==3.3.1
+Flask-Login==0.6.2
 Flask-Mail==0.9.1
-Flask-QRcode==3.0.0
-Flask-SQLAlchemy==2.4.0
-Flask-WTF==0.14.2
-idna==2.8
-infinity==1.4
-intervals==0.8.1
-itsdangerous==1.1.0
-Jinja2==2.10.1
-limits==1.3
-Mako==1.0.14
-MarkupSafe==1.1.1
-Pillow==6.2.0
-psycopg2-binary==2.8.3
-py3dns==3.2.0
-python-dateutil==2.8.0
-python-editor==1.0.4
-pytz==2019.1
-qrcode==6.1
-requests==2.22.0
-six==1.12.0
-SQLAlchemy==1.3.6
-urllib3==1.25.3
-validate-email==1.3
-validators==0.13.0
-Werkzeug==0.15.5
-WTForms==2.2.1
-WTForms-Components==0.10.4
-zammad-py==0.1.7
+Flask-QRcode==3.1.0
+Flask-SQLAlchemy==3.0.3
+Flask-WTF==1.1.1
+greenlet==2.0.2
+idna==3.4
+importlib-resources==5.12.0
+infinity==1.5
+intervals==0.9.2
+itsdangerous==2.1.2
+Jinja2==3.1.2
+limits==3.4.0
+markdown-it-py==2.2.0
+MarkupSafe==2.1.2
+mdurl==0.1.2
+ordered-set==4.1.0
+packaging==23.1
+Pillow==9.5.0
+Pygments==2.15.1
+pypng==0.20220715.0
+python-dateutil==2.8.2
+qrcode==7.4.2
+requests==2.30.0
+rich==13.3.5
+six==1.16.0
+SQLAlchemy==2.0.12
+typing_extensions==4.5.0
+urllib3==2.0.2
+validators==0.20.0
+Werkzeug==2.3.3
+wrapt==1.15.0
+WTForms==3.0.1
+WTForms-Components==0.10.5
+zammad-py==2.0.1
diff --git a/transporte/forms.py b/transporte/forms.py
index 5385fb0660a87fcfff5d603247ec8955f9a97a99..ca42986388b8d47b8d216d86bc07a5dc009a11a1 100644
--- a/transporte/forms.py
+++ b/transporte/forms.py
@@ -5,7 +5,7 @@ from flask_wtf import FlaskForm
 from flask_wtf.file import FileField
 from wtforms import SelectField, StringField, SubmitField, TextAreaField
 from wtforms.fields import BooleanField
-from wtforms.fields.html5 import TimeField
+from wtforms.fields import TimeField
 from wtforms.validators import DataRequired, Email, Optional
 # DateField from wtforms_components supports min/max depending on DateRange
 from wtforms_components import DateField, DateRange
diff --git a/transporte/transporte.py b/transporte/transporte.py
index 7f44e5c1a654325c6c233978dd8b3763b69907a1..a28198c3701fc1c4befdbc06481dc507ffc09597 100644
--- a/transporte/transporte.py
+++ b/transporte/transporte.py
@@ -8,7 +8,7 @@ from . import create_app
 
 app = create_app()
 
-limiter = Limiter(app, key_func=get_remote_address)
+limiter = Limiter(get_remote_address, app=app,storage_uri="memory://")
 
 QRcode(app)
 
diff --git a/transporte/views.py b/transporte/views.py
index 23505071ba2a9690faa97c55ac901c129022738b..7a430e5e02c23ea17accb87a8ecd8174d61e79f0 100644
--- a/transporte/views.py
+++ b/transporte/views.py
@@ -11,7 +11,7 @@ from flask import (escape, flash, redirect, render_template, request,
                    send_from_directory, url_for)
 from flask_login import current_user, login_required, login_user, logout_user
 from flask_wtf import FlaskForm
-from jinja2 import evalcontextfilter
+from jinja2 import pass_eval_context
 from werkzeug.utils import secure_filename
 
 from . import db, login_manager
@@ -159,12 +159,12 @@ def edit_transport(id=None):
             #
             # if ticket is new, update object with zammad ticket id
             #
-            if transport.ticket_id is None:
-                transport.ticket_id = update_ticket(transport)
-                db.session.add(transport)
-                db.session.commit()
-            else:
-                update_ticket(transport)
+            #if transport.ticket_id is None:
+            #    transport.ticket_id = update_ticket(transport)
+            #    db.session.add(transport)
+            #    db.session.commit()
+            #else:
+            #    update_ticket(transport)
 
             for file in request.files.getlist('file_upload'):
                 if file.filename:
@@ -214,8 +214,8 @@ def list_transports():
     filterform = TransportFilterForm(day=request.args.get('day'))
     filterform.day.choices = [('None', 'Filter by date')] + [(date[0], date[0]) for date in dates]
 
-    if filterform.day.data != 'None':
-        transportlist = transportlist.filter(Transport.date == parser.parse(filterform.day.data).date())
+    if filterform.day.object_data is not None:
+        transportlist = transportlist.filter(Transport.date == parser.parse(filterform.day.object_data).date())
 
     return render_template('transport_list.html', transportlist=transportlist, filterform=filterform)
 
@@ -408,7 +408,7 @@ def format_datetime(value):
 _paragraph_re = re.compile(r'(?:\r\n|\r|\n)')
 
 
-@evalcontextfilter
+@pass_eval_context
 def nl2br(eval_ctx, value):
     result = u'<br />\n'.join(_paragraph_re.split(escape(value)))
     if eval_ctx.autoescape: