diff --git a/ihatemoney/api/common.py b/ihatemoney/api/common.py index 44727f5a..caf8148b 100644 --- a/ihatemoney/api/common.py +++ b/ihatemoney/api/common.py @@ -3,7 +3,7 @@ from functools import wraps from flask import current_app, request from flask_restful import Resource, abort from werkzeug.security import check_password_hash -from wtforms.fields.core import BooleanField +from wtforms.fields import BooleanField from ihatemoney.currency_convertor import CurrencyConverter from ihatemoney.emails import send_creation_email diff --git a/ihatemoney/forms.py b/ihatemoney/forms.py index fe966778..0e99f534 100644 --- a/ihatemoney/forms.py +++ b/ihatemoney/forms.py @@ -9,9 +9,23 @@ from flask_wtf.file import FileAllowed, FileField, FileRequired from flask_wtf.form import FlaskForm from markupsafe import Markup from werkzeug.security import check_password_hash, generate_password_hash -from wtforms.fields.core import Label, SelectField, SelectMultipleField -from wtforms.fields.html5 import DateField, DecimalField, URLField -from wtforms.fields.simple import BooleanField, PasswordField, StringField, SubmitField +from wtforms.fields import ( + BooleanField, + DateField, + DecimalField, + Label, + PasswordField, + SelectField, + SelectMultipleField, + StringField, + SubmitField, +) + +try: + # Compat for WTForms <= 2.3.3 + from wtforms.fields.html5 import URLField +except ModuleNotFoundError: + from wtforms.fields import URLField from wtforms.validators import ( URL, DataRequired, @@ -312,6 +326,7 @@ class BillForm(FlaskForm): original_currency = SelectField(_("Currency"), validators=[DataRequired()]) external_link = URLField( _("External link"), + default="", validators=[Optional(), URL()], description=_("A link to an external document, related to this bill"), ) diff --git a/setup.cfg b/setup.cfg index 5cedf791..ded7642a 100644 --- a/setup.cfg +++ b/setup.cfg @@ -35,7 +35,7 @@ install_requires = Flask-SQLAlchemy>=2.4,<3 Flask-Talisman>=0.8,<1 Flask-WTF>=0.14.3,<2 - WTForms>=2.3.1,<2.4 + WTForms>=2.3.1,<3.1 Flask>=2,<3 itsdangerous>=2,<3 Jinja2>=3,<4