aboutsummaryrefslogtreecommitdiff
path: root/app/views
diff options
context:
space:
mode:
authorrubenwardy <rw@rubenwardy.com>2018-06-02 18:22:57 +0100
committerrubenwardy <rw@rubenwardy.com>2018-06-02 18:26:17 +0100
commit70afb94d3b985e314ff1f922294875e43c56fefc (patch)
tree6743df30af1b00f5ed457155bbca0724f639c97d /app/views
parent8984adaa728c6c1c9bafb8c1ba5ea227bb17aa5b (diff)
downloadcheatdb-70afb94d3b985e314ff1f922294875e43c56fefc.tar.xz
Add topics todo list based on forum parser
Diffstat (limited to 'app/views')
-rw-r--r--app/views/admin.py5
-rw-r--r--app/views/packages/todo.py22
-rw-r--r--app/views/users.py20
3 files changed, 37 insertions, 10 deletions
diff --git a/app/views/admin.py b/app/views/admin.py
index fa6639c..65d5264 100644
--- a/app/views/admin.py
+++ b/app/views/admin.py
@@ -21,7 +21,7 @@ from flask.ext import menu
from app import app
from app.models import *
from app.tasks.importtasks import importRepoScreenshot, importAllDependencies
-from app.tasks.forumtasks import importUsersFromModList
+from app.tasks.forumtasks import importUsersFromModList, importKrocksModList
from flask_wtf import FlaskForm
from wtforms import *
from app.utils import loginUser, rank_required
@@ -34,6 +34,9 @@ def admin_page():
if action == "importusers":
task = importUsersFromModList.delay()
return redirect(url_for("check_task", id=task.id, r=url_for("user_list_page")))
+ elif action == "importmodlist":
+ task = importKrocksModList.delay()
+ return redirect(url_for("check_task", id=task.id, r=url_for("todo_topics_page")))
elif action == "importscreenshots":
packages = Package.query \
.filter_by(soft_deleted=False) \
diff --git a/app/views/packages/todo.py b/app/views/packages/todo.py
index 2635604..9553ef2 100644
--- a/app/views/packages/todo.py
+++ b/app/views/packages/todo.py
@@ -40,6 +40,24 @@ def todo_page():
if canApproveScn:
screenshots = PackageScreenshot.query.filter_by(approved=False).all()
- return render_template("todo.html", title="Reports and Work Queue",
+
+ topics_to_add = KrockForumTopic.query \
+ .filter(~ db.exists().where(Package.forums==KrockForumTopic.topic_id)) \
+ .count()
+
+ return render_template("todo/list.html", title="Reports and Work Queue",
packages=packages, releases=releases, screenshots=screenshots,
- canApproveNew=canApproveNew, canApproveRel=canApproveRel, canApproveScn=canApproveScn)
+ canApproveNew=canApproveNew, canApproveRel=canApproveRel, canApproveScn=canApproveScn,
+ topics_to_add=topics_to_add)
+
+
+@app.route("/todo/topics/")
+@login_required
+def todo_topics_page():
+ total = KrockForumTopic.query.count()
+
+ topics = KrockForumTopic.query \
+ .filter(~ db.exists().where(Package.forums==KrockForumTopic.topic_id)) \
+ .all()
+
+ return render_template("todo/topics.html", topics=topics, total=total)
diff --git a/app/views/users.py b/app/views/users.py
index 84e6828..86219f9 100644
--- a/app/views/users.py
+++ b/app/views/users.py
@@ -50,12 +50,6 @@ def user_profile_page(username):
if not user:
abort(404)
- packages = user.packages.filter_by(soft_deleted=False)
- if not current_user.is_authenticated or (user != current_user and not current_user.canAccessTodoList()):
- packages = packages.filter_by(approved=True)
-
- packages = packages.order_by(db.asc(Package.title))
-
form = None
if user.checkPerm(current_user, Permission.CHANGE_DNAME) or \
user.checkPerm(current_user, Permission.CHANGE_EMAIL) or \
@@ -97,9 +91,21 @@ def user_profile_page(username):
# Redirect to home page
return redirect(url_for("user_profile_page", username=username))
+ packages = user.packages.filter_by(soft_deleted=False)
+ if not current_user.is_authenticated or (user != current_user and not current_user.canAccessTodoList()):
+ packages = packages.filter_by(approved=True)
+ packages = packages.order_by(db.asc(Package.title))
+
+ topics_to_add = None
+ if current_user == user or user.checkPerm(current_user, Permission.CHANGE_AUTHOR):
+ topics_to_add = KrockForumTopic.query \
+ .filter_by(author_id=user.id) \
+ .filter(~ db.exists().where(Package.forums==KrockForumTopic.topic_id)) \
+ .all()
+
# Process GET or invalid POST
return render_template("users/user_profile_page.html",
- user=user, form=form, packages=packages)
+ user=user, form=form, packages=packages, topics_to_add=topics_to_add)
class SetPasswordForm(FlaskForm):
email = StringField("Email (Optional)", [Optional(), Email()])