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: