diff --git a/app/blueprints/admin/licenseseditor.py b/app/blueprints/admin/licenseseditor.py index e4a5be13..de13678d 100644 --- a/app/blueprints/admin/licenseseditor.py +++ b/app/blueprints/admin/licenseseditor.py @@ -17,8 +17,7 @@ from flask import redirect, render_template, abort, url_for, request, flash from flask_wtf import FlaskForm -from wtforms import StringField, BooleanField, SubmitField -from wtforms.fields.html5 import URLField +from wtforms import StringField, BooleanField, SubmitField, URLField from wtforms.validators import InputRequired, Length, Optional from app.utils import rank_required, nonEmptyOrNone diff --git a/app/blueprints/api/tokens.py b/app/blueprints/api/tokens.py index 4e1b888c..acd737bb 100644 --- a/app/blueprints/api/tokens.py +++ b/app/blueprints/api/tokens.py @@ -20,7 +20,7 @@ from flask_babel import lazy_gettext from flask_login import login_required, current_user from flask_wtf import FlaskForm from wtforms import * -from wtforms.ext.sqlalchemy.fields import QuerySelectField +from wtforms_sqlalchemy.fields import QuerySelectField from wtforms.validators import * from app.models import db, User, APIToken, Package, Permission diff --git a/app/blueprints/packages/packages.py b/app/blueprints/packages/packages.py index 65a0b07c..856e71ba 100644 --- a/app/blueprints/packages/packages.py +++ b/app/blueprints/packages/packages.py @@ -24,7 +24,7 @@ from flask_login import login_required from sqlalchemy import or_, func from sqlalchemy.orm import joinedload, subqueryload from wtforms import * -from wtforms.ext.sqlalchemy.fields import QuerySelectField, QuerySelectMultipleField +from wtforms_sqlalchemy.fields import QuerySelectField, QuerySelectMultipleField from wtforms.validators import * from app.querybuilder import QueryBuilder diff --git a/app/blueprints/packages/releases.py b/app/blueprints/packages/releases.py index 303a1b8a..23ee56ed 100644 --- a/app/blueprints/packages/releases.py +++ b/app/blueprints/packages/releases.py @@ -20,7 +20,7 @@ from flask_babel import gettext, lazy_gettext from flask_login import login_required from flask_wtf import FlaskForm from wtforms import * -from wtforms.ext.sqlalchemy.fields import QuerySelectField +from wtforms_sqlalchemy.fields import QuerySelectField from wtforms.validators import * from app.logic.releases import do_create_vcs_release, LogicError, do_create_zip_release @@ -52,7 +52,7 @@ def get_mt_releases(is_max): class CreatePackageReleaseForm(FlaskForm): - title = StringField(lazy_gettext("Title"), [InputRequired(), Length(1, 30)]) + title = StringField(lazy_gettext("Title"), [InputRequired(), Length(1, 30)]) uploadOpt = RadioField(lazy_gettext("Method"), choices=[("upload", lazy_gettext("File Upload"))], default="upload") vcsLabel = StringField(lazy_gettext("Git reference (ie: commit hash, branch, or tag)"), default=None) fileUpload = FileField(lazy_gettext("File Upload")) @@ -60,7 +60,8 @@ class CreatePackageReleaseForm(FlaskForm): query_factory=lambda: get_mt_releases(False), get_pk=lambda a: a.id, get_label=lambda a: a.name) max_rel = QuerySelectField(lazy_gettext("Maximum Minetest Version"), [InputRequired()], query_factory=lambda: get_mt_releases(True), get_pk=lambda a: a.id, get_label=lambda a: a.name) - submit = SubmitField(lazy_gettext("Save")) + submit = SubmitField(lazy_gettext("Save")) + class EditPackageReleaseForm(FlaskForm): title = StringField(lazy_gettext("Title"), [InputRequired(), Length(1, 30)]) diff --git a/app/blueprints/packages/screenshots.py b/app/blueprints/packages/screenshots.py index 59bf6ab4..58e84584 100644 --- a/app/blueprints/packages/screenshots.py +++ b/app/blueprints/packages/screenshots.py @@ -20,7 +20,7 @@ from flask_babel import gettext, lazy_gettext from flask_wtf import FlaskForm from flask_login import login_required from wtforms import * -from wtforms.ext.sqlalchemy.fields import QuerySelectField +from wtforms_sqlalchemy.fields import QuerySelectField from wtforms.validators import * from app.utils import * diff --git a/app/templates/packages/screenshot_new.html b/app/templates/packages/screenshot_new.html index 6ac156b4..a82d89c9 100644 --- a/app/templates/packages/screenshot_new.html +++ b/app/templates/packages/screenshot_new.html @@ -1,7 +1,7 @@ {% extends "base.html" %} {% block title %} - {{ _("Add a screenshot") }} | {{ package.title }} + {{ _("Add a screenshot") }} - {{ package.title }} {% endblock %} {% block content %} diff --git a/config.example.cfg b/config.example.cfg index fa974eca..31b820b8 100644 --- a/config.example.cfg +++ b/config.example.cfg @@ -5,7 +5,7 @@ BASE_URL = "http://" + SERVER_NAME SECRET_KEY = "" WTF_CSRF_SECRET_KEY = "" -SQLALCHEMY_DATABASE_URI = "postgres://contentdb:password@db:5432/contentdb" +SQLALCHEMY_DATABASE_URI = "postgresql://contentdb:password@db:5432/contentdb" SQLALCHEMY_TRACK_MODIFICATIONS = False GITHUB_CLIENT_ID = "" diff --git a/requirements.lock.txt b/requirements.lock.txt index e185b5a5..6bb3df5c 100644 --- a/requirements.lock.txt +++ b/requirements.lock.txt @@ -1,79 +1,88 @@ -alembic==1.5.3 -amqp==5.0.5 -attrs==20.3.0 +alembic==1.7.5 +amqp==5.0.9 +attrs==21.4.0 Babel==2.9.1 bcrypt==3.2.0 -beautifulsoup4==4.9.3 -billiard==3.6.3.0 -bleach==3.3.0 +beautifulsoup4==4.10.0 +billiard==3.6.4.0 +bleach==4.1.0 blinker==1.4 -celery==5.0.5 -certifi==2020.12.5 -chardet==4.0.0 +cached-property==1.5.2 +celery==5.1.2 +certifi==2021.10.8 +cffi==1.15.0 +charset-normalizer==2.0.10 click==7.1.2 -click-didyoumean==0.0.3 +click-didyoumean==0.3.0 click-plugins==1.1.1 -click-repl==0.1.6 -coverage==5.4 -decorator==4.4.2 -dnspython==2.1.0 -email-validator==1.1.2 -Flask==1.1.2 -Flask-Babel==1.0.0 -Flask-FlatPages==0.7.2 +click-repl==0.2.0 +coverage==6.2 +dataclasses==0.8 +decorator==5.1.1 +Deprecated==1.2.13 +dnspython==2.2.0 +email-validator==1.1.3 +Flask==2.0.2 +Flask-Babel==2.0.0 +Flask-FlatPages==0.8.1 Flask-Gravatar==0.5.0 Flask-Login==0.5.0 Flask-Mail==0.9.1 -Flask-Migrate==2.6.0 -Flask-SQLAlchemy==2.4.4 -Flask-WTF==0.14.3 +Flask-Migrate==3.1.0 +Flask-SQLAlchemy==2.5.1 +Flask-WTF==1.0.0 git-archive-all==1.23.0 -gitdb==4.0.5 +gitdb==4.0.9 GitHub-Flask==3.2.0 -GitPython==3.1.12 -gunicorn==20.0.4 -importlib-metadata==3.4.0 +GitPython==3.1.18 +greenlet==1.1.2 +gunicorn==20.1.0 +idna==3.3 +importlib-metadata==4.8.3 +importlib-resources==5.4.0 iniconfig==1.1.1 -itsdangerous==1.1.0 -Jinja2==2.11.3 -kombu==5.0.2 -lxml==4.6.3 -Mako==1.1.4 -Markdown==3.3.3 -MarkupSafe==1.1.1 -packaging==20.9 +itsdangerous==2.0.1 +Jinja2==3.0.3 +kombu==5.1.0 +lxml==4.7.1 +Mako==1.1.6 +Markdown==3.3.6 +MarkupSafe==2.0.1 +packaging==21.3 passlib==1.7.4 -Pillow==8.3.2 -pluggy==0.13.1 -prompt-toolkit==3.0.14 -psycopg2==2.8.6 -py==1.10.0 -Pygments==2.7.4 -pyparsing==2.4.7 +Pillow==8.4.0 +pluggy==1.0.0 +prompt-toolkit==3.0.26 +psycopg2-binary==2.9.3 +py==1.11.0 +pycparser==2.21 +Pygments==2.11.2 +pyparsing==3.0.7 pyScss==1.3.7 -pytest==6.2.2 -pytest-cov==2.11.1 -python-dateutil==2.8.1 -python-editor==1.0.4 -pytz==2021.1 -PyYAML==5.4.1 -redis==3.5.3 -requests==2.25.1 -six==1.15.0 -smmap==3.0.5 -soupsieve==2.1 -SQLAlchemy==1.3.23 -SQLAlchemy-Searchable==1.2.0 -SQLAlchemy-Utils==0.36.8 +pytest==6.2.5 +pytest-cov==3.0.0 +pytz==2021.3 +PyYAML==6.0 +redis==4.1.2 +requests==2.27.1 +six==1.16.0 +smmap==5.0.0 +soupsieve==2.3.1 +SQLAlchemy==1.4.31 +SQLAlchemy-Searchable==1.4.1 +SQLAlchemy-Utils==0.38.2 toml==0.10.2 -typing-extensions==3.7.4.3 +tomli==1.2.3 +typing_extensions==4.0.1 ua-parser==0.10.0 -urllib3==1.26.5 +urllib3==1.26.8 user-agents==2.2.0 validators==0.18.2 vine==5.0.0 wcwidth==0.2.5 webencodings==0.5.1 -Werkzeug==0.16.1 -WTForms==2.2.1 -zipp==3.4.0 +Werkzeug==2.0.2 +wrapt==1.13.3 +WTForms==3.0.0 +WTForms-SQLAlchemy==0.3 +zipp==3.6.0 diff --git a/requirements.txt b/requirements.txt index fe28f4c2..9b401821 100644 --- a/requirements.txt +++ b/requirements.txt @@ -38,8 +38,9 @@ ua-parser user-agents Werkzeug -WTForms SQLAlchemy +WTForms +WTForms-SQLAlchemy requests alembic