From e5de870b4794026ce3a0c50514337c9b5d7baa27 Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Wed, 21 Mar 2018 19:24:45 +0000 Subject: [PATCH] Add work queue --- app/models.py | 3 +++ app/templates/base.html | 34 ++++++++++++++++++---------------- app/templates/todo.html | 33 +++++++++++++++++++++++++++++++++ app/views/packages.py | 13 ++++++++++++- 4 files changed, 66 insertions(+), 17 deletions(-) create mode 100644 app/templates/todo.html diff --git a/app/models.py b/app/models.py index 839bc49..2ab3655 100644 --- a/app/models.py +++ b/app/models.py @@ -36,6 +36,9 @@ class Permission(enum.Enum): CHANGE_RELEASE_URL = "CHANGE_RELEASE_URL" def check(self, user): + if not user.is_authenticated: + return False + if self == Permission.APPROVE_NEW: return user.rank.atLeast(UserRank.EDITOR) else: diff --git a/app/templates/base.html b/app/templates/base.html index 687d718..f4baef4 100644 --- a/app/templates/base.html +++ b/app/templates/base.html @@ -14,25 +14,27 @@ + +

Releases Awaiting Approval

+ + {% endfor %} + +{% endblock %} diff --git a/app/views/packages.py b/app/views/packages.py index 60ba596..f7773b4 100644 --- a/app/views/packages.py +++ b/app/views/packages.py @@ -30,6 +30,17 @@ def txp_page(): packages = Package.query.filter_by(type=PackageType.TXP, approved=True).all() return render_template('packages.html', title="Texture Packs", packages=packages) +def canSeeWorkQueue(): + return Permission.APPROVE_NEW.check(current_user) + +@menu.register_menu(app, '.todo', "Work Queue", order=20, visible_when=lambda: canSeeWorkQueue) +@app.route("/todo/") +@login_required +def todo_page(): + packages = Package.query.filter_by(approved=False).all() + releases = PackageRelease.query.filter_by(approved=False).all() + return render_template('todo.html', title="Reports and Work Queue", approve_new=packages, releases=releases) + def getPageByInfo(type, author, name): user = User.query.filter_by(username=author).first() @@ -70,7 +81,7 @@ class PackageForm(FlaskForm): forums = IntegerField("Forum Topic ID", [InputRequired(), NumberRange(0,999999)]) submit = SubmitField('Save') -@menu.register_menu(app, '.new', 'Create', order=20) +@menu.register_menu(app, '.new', 'Create', order=21, visible_when=lambda: current_user.is_authenticated) @app.route("/new/", methods=['GET', 'POST']) @app.route("/s///edit/", methods=['GET', 'POST']) @login_required