diff options
| author | rubenwardy <rw@rubenwardy.com> | 2018-05-25 19:06:05 +0100 |
|---|---|---|
| committer | rubenwardy <rw@rubenwardy.com> | 2018-05-25 19:06:05 +0100 |
| commit | fb2552ab558b227f03a3b092eeb6a5f7bc406900 (patch) | |
| tree | b15887f939528d1239e1c5080f93aedcded2f690 | |
| parent | 53df124973c15b90e070f9225fcbeccdb0e64e55 (diff) | |
| download | cheatdb-fb2552ab558b227f03a3b092eeb6a5f7bc406900.tar.xz | |
Finish screenshot approval feature
| -rw-r--r-- | app/models.py | 5 | ||||
| -rw-r--r-- | app/templates/packages/screenshot_edit.html | 2 | ||||
| -rw-r--r-- | app/templates/packages/view.html | 12 | ||||
| -rw-r--r-- | app/templates/todo.html | 19 | ||||
| -rw-r--r-- | app/views/packages/__init__.py | 4 | ||||
| -rw-r--r-- | app/views/packages/todo.py | 9 |
6 files changed, 41 insertions, 10 deletions
diff --git a/app/models.py b/app/models.py index e8b66fb..aa67c6a 100644 --- a/app/models.py +++ b/app/models.py @@ -83,7 +83,8 @@ class Permission(enum.Enum): if self == Permission.APPROVE_NEW or \ self == Permission.APPROVE_CHANGES or \ - self == Permission.APPROVE_RELEASE: + self == Permission.APPROVE_RELEASE or \ + self == Permission.APPROVE_SCREENSHOT: return user.rank.atLeast(UserRank.EDITOR) else: raise Exception("Non-global permission checked globally. Use Package.checkPerm or User.checkPerm instead.") @@ -353,7 +354,7 @@ class Package(db.Model): author=self.author.username, name=self.name) def getMainScreenshotURL(self): - screenshot = self.screenshots.first() + screenshot = self.screenshots.filter_by(approved=True).first() return screenshot.url if screenshot is not None else None def getDownloadRelease(self): diff --git a/app/templates/packages/screenshot_edit.html b/app/templates/packages/screenshot_edit.html index 7e0f9dc..b53c07e 100644 --- a/app/templates/packages/screenshot_edit.html +++ b/app/templates/packages/screenshot_edit.html @@ -5,6 +5,8 @@ {% endblock %} {% block content %} + <img src="{{ screenshot.getThumbnailURL() }}" alt="{{ screenshot.title }}" /> + {% from "macros/forms.html" import render_field, render_submit_field %} <form method="POST" action="" enctype="multipart/form-data"> {{ form.hidden_tag() }} diff --git a/app/templates/packages/view.html b/app/templates/packages/view.html index 85a0b7d..e0f03c0 100644 --- a/app/templates/packages/view.html +++ b/app/templates/packages/view.html @@ -41,11 +41,13 @@ <ul class="screenshot_list"> {% for ss in package.screenshots %} - <li> - <a href="{% if package.checkPerm(current_user, 'ADD_SCREENSHOTS') %}{{ ss.getEditURL() }}{% else %}{{ ss.url }}{% endif %}"> - <img src="{{ ss.getThumbnailURL() }}" alt="{{ ss.title }}" /> - </a> - </li> + {% if ss.approved or package.checkPerm(current_user, "ADD_SCREENSHOTS") %} + <li> + <a href="{% if package.checkPerm(current_user, 'ADD_SCREENSHOTS') %}{{ ss.getEditURL() }}{% else %}{{ ss.url }}{% endif %}"> + <img src="{{ ss.getThumbnailURL() }}" alt="{{ ss.title }}" /> + </a> + </li> + {% endif %} {% endfor %} </ul> diff --git a/app/templates/todo.html b/app/templates/todo.html index 35aee9a..b20f26c 100644 --- a/app/templates/todo.html +++ b/app/templates/todo.html @@ -8,7 +8,7 @@ {% if canApproveNew %} <h2>Packages Awaiting Approval</h2> <ul> - {% for p in approve_new %} + {% for p in packages %} <li><a href="{{ p.getDetailsURL() }}"> {{ p.title }} by {{ p.author.display_name }} </a></li> @@ -18,6 +18,23 @@ </ul> {% endif %} + {% if canApproveScn %} + <h2>Screenshots Awaiting Approval</h2> + <ul> + {% for s in screenshots %} + <li> + <a href="{{ s.getEditURL() }}">{{ s.title }}</a> + on + <a href="{{ s.package.getDetailsURL() }}"> + {{ s.package.title }} by {{ s.package.author.display_name }} + </a> + </li> + {% else %} + <li><i>No screenshots need reviewing.</i></ul> + {% endfor %} + </ul> + {% endif %} + {% if canApproveRel %} <h2>Releases Awaiting Approval</h2> <ul> diff --git a/app/views/packages/__init__.py b/app/views/packages/__init__.py index 4260b1c..48b50e4 100644 --- a/app/views/packages/__init__.py +++ b/app/views/packages/__init__.py @@ -195,6 +195,10 @@ def approve_package_page(package): else: package.approved = True + screenshots = PackageScreenshot.query.filter_by(package=package, approved=False).all() + for s in screenshots: + screenshots.approved = True + triggerNotif(package.author, current_user, "{} approved".format(package.title), package.getDetailsURL()) db.session.commit() diff --git a/app/views/packages/todo.py b/app/views/packages/todo.py index 63f843b..2635604 100644 --- a/app/views/packages/todo.py +++ b/app/views/packages/todo.py @@ -26,6 +26,7 @@ from app.models import * def todo_page(): canApproveNew = Permission.APPROVE_NEW.check(current_user) canApproveRel = Permission.APPROVE_RELEASE.check(current_user) + canApproveScn = Permission.APPROVE_SCREENSHOT.check(current_user) packages = None if canApproveNew: @@ -35,6 +36,10 @@ def todo_page(): if canApproveRel: releases = PackageRelease.query.filter_by(approved=False).all() + screenshots = None + if canApproveScn: + screenshots = PackageScreenshot.query.filter_by(approved=False).all() + return render_template("todo.html", title="Reports and Work Queue", - approve_new=packages, releases=releases, - canApproveNew=canApproveNew, canApproveRel=canApproveRel) + packages=packages, releases=releases, screenshots=screenshots, + canApproveNew=canApproveNew, canApproveRel=canApproveRel, canApproveScn=canApproveScn) |
