aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/models.py3
-rw-r--r--app/templates/base.html34
-rw-r--r--app/templates/todo.html33
-rw-r--r--app/views/packages.py13
4 files changed, 66 insertions, 17 deletions
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 @@
<ul class="nav navbar-nav">
<li><a href="/">{{ config.USER_APP_NAME }}</a></li>
{% for item in current_menu.children recursive %}
- <li{% if item.children %} class="dropdown"{% endif %}>
- <a href="{{ item.url }}"
+ {% if item.visible %}
+ <li{% if item.children %} class="dropdown"{% endif %}>
+ <a href="{{ item.url }}"
+ {% if item.children %}
+ class="dropdown-toggle"
+ data-toggle="dropdown"
+ role="button"
+ aria-expanded="false"
+ {% endif %}>
+ {{ item.text }}
{% if item.children %}
- class="dropdown-toggle"
- data-toggle="dropdown"
- role="button"
- aria-expanded="false"
- {% endif %}>
- {{ item.text }}
+ <span class="caret"></span>
+ {% endif %}
+ </a>
{% if item.children %}
- <span class="caret"></span>
+ <ul class="dropdown-menu" role="menu">
+ {{ loop(item.children) }}
+ </ul>
{% endif %}
- </a>
- {% if item.children %}
- <ul class="dropdown-menu" role="menu">
- {{ loop(item.children) }}
- </ul>
- {% endif %}
- </li>
+ </li>
+ {% endif %}
{% endfor %}
</ul>
<ul class="nav navbar-nav navbar-right">
diff --git a/app/templates/todo.html b/app/templates/todo.html
new file mode 100644
index 0000000..524180a
--- /dev/null
+++ b/app/templates/todo.html
@@ -0,0 +1,33 @@
+{% extends "base.html" %}
+
+{% block title %}
+{{ title }}
+{% endblock %}
+
+{% block content %}
+ <h2>Packages Awaiting Approval</h2>
+ <ul>
+ {% for p in approve_new %}
+ <li><a href="{{ p.getDetailsURL() }}">
+ {{ p.title }} by {{ p.author.display_name }}
+ </a></li>
+ {% else %}
+ <li><i>No packages available</i></ul>
+ {% endfor %}
+ </ul>
+
+ <h2>Releases Awaiting Approval</h2>
+ <ul>
+ {% for r in releases %}
+ <li>
+ <a href="{{ r.getEditURL() }}">{{ r.title }}</a>
+ on
+ <a href="{{ r.package.getDetailsURL() }}">
+ {{ r.package.title }} by {{ r.package.author.display_name }}
+ </a>
+ </li>
+ {% else %}
+ <li><i>No packages available</i></ul>
+ {% endfor %}
+ </ul>
+{% 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("/<type>s/<author>/<name>/edit/", methods=['GET', 'POST'])
@login_required