diff options
| author | rubenwardy <rw@rubenwardy.com> | 2018-06-02 18:22:57 +0100 |
|---|---|---|
| committer | rubenwardy <rw@rubenwardy.com> | 2018-06-02 18:26:17 +0100 |
| commit | 70afb94d3b985e314ff1f922294875e43c56fefc (patch) | |
| tree | 6743df30af1b00f5ed457155bbca0724f639c97d /app/views | |
| parent | 8984adaa728c6c1c9bafb8c1ba5ea227bb17aa5b (diff) | |
| download | cheatdb-70afb94d3b985e314ff1f922294875e43c56fefc.tar.xz | |
Add topics todo list based on forum parser
Diffstat (limited to 'app/views')
| -rw-r--r-- | app/views/admin.py | 5 | ||||
| -rw-r--r-- | app/views/packages/todo.py | 22 | ||||
| -rw-r--r-- | app/views/users.py | 20 |
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()]) |
