Finish screenshot approval feature
This commit is contained in:
parent
53df124973
commit
fb2552ab55
|
@ -83,7 +83,8 @@ class Permission(enum.Enum):
|
||||||
|
|
||||||
if self == Permission.APPROVE_NEW or \
|
if self == Permission.APPROVE_NEW or \
|
||||||
self == Permission.APPROVE_CHANGES 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)
|
return user.rank.atLeast(UserRank.EDITOR)
|
||||||
else:
|
else:
|
||||||
raise Exception("Non-global permission checked globally. Use Package.checkPerm or User.checkPerm instead.")
|
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)
|
author=self.author.username, name=self.name)
|
||||||
|
|
||||||
def getMainScreenshotURL(self):
|
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
|
return screenshot.url if screenshot is not None else None
|
||||||
|
|
||||||
def getDownloadRelease(self):
|
def getDownloadRelease(self):
|
||||||
|
|
|
@ -5,6 +5,8 @@
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
<img src="{{ screenshot.getThumbnailURL() }}" alt="{{ screenshot.title }}" />
|
||||||
|
|
||||||
{% from "macros/forms.html" import render_field, render_submit_field %}
|
{% from "macros/forms.html" import render_field, render_submit_field %}
|
||||||
<form method="POST" action="" enctype="multipart/form-data">
|
<form method="POST" action="" enctype="multipart/form-data">
|
||||||
{{ form.hidden_tag() }}
|
{{ form.hidden_tag() }}
|
||||||
|
|
|
@ -41,11 +41,13 @@
|
||||||
|
|
||||||
<ul class="screenshot_list">
|
<ul class="screenshot_list">
|
||||||
{% for ss in package.screenshots %}
|
{% for ss in package.screenshots %}
|
||||||
<li>
|
{% if ss.approved or package.checkPerm(current_user, "ADD_SCREENSHOTS") %}
|
||||||
<a href="{% if package.checkPerm(current_user, 'ADD_SCREENSHOTS') %}{{ ss.getEditURL() }}{% else %}{{ ss.url }}{% endif %}">
|
<li>
|
||||||
<img src="{{ ss.getThumbnailURL() }}" alt="{{ ss.title }}" />
|
<a href="{% if package.checkPerm(current_user, 'ADD_SCREENSHOTS') %}{{ ss.getEditURL() }}{% else %}{{ ss.url }}{% endif %}">
|
||||||
</a>
|
<img src="{{ ss.getThumbnailURL() }}" alt="{{ ss.title }}" />
|
||||||
</li>
|
</a>
|
||||||
|
</li>
|
||||||
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
{% if canApproveNew %}
|
{% if canApproveNew %}
|
||||||
<h2>Packages Awaiting Approval</h2>
|
<h2>Packages Awaiting Approval</h2>
|
||||||
<ul>
|
<ul>
|
||||||
{% for p in approve_new %}
|
{% for p in packages %}
|
||||||
<li><a href="{{ p.getDetailsURL() }}">
|
<li><a href="{{ p.getDetailsURL() }}">
|
||||||
{{ p.title }} by {{ p.author.display_name }}
|
{{ p.title }} by {{ p.author.display_name }}
|
||||||
</a></li>
|
</a></li>
|
||||||
|
@ -18,6 +18,23 @@
|
||||||
</ul>
|
</ul>
|
||||||
{% endif %}
|
{% 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 %}
|
{% if canApproveRel %}
|
||||||
<h2>Releases Awaiting Approval</h2>
|
<h2>Releases Awaiting Approval</h2>
|
||||||
<ul>
|
<ul>
|
||||||
|
|
|
@ -195,6 +195,10 @@ def approve_package_page(package):
|
||||||
else:
|
else:
|
||||||
package.approved = True
|
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,
|
triggerNotif(package.author, current_user,
|
||||||
"{} approved".format(package.title), package.getDetailsURL())
|
"{} approved".format(package.title), package.getDetailsURL())
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
|
|
|
@ -26,6 +26,7 @@ from app.models import *
|
||||||
def todo_page():
|
def todo_page():
|
||||||
canApproveNew = Permission.APPROVE_NEW.check(current_user)
|
canApproveNew = Permission.APPROVE_NEW.check(current_user)
|
||||||
canApproveRel = Permission.APPROVE_RELEASE.check(current_user)
|
canApproveRel = Permission.APPROVE_RELEASE.check(current_user)
|
||||||
|
canApproveScn = Permission.APPROVE_SCREENSHOT.check(current_user)
|
||||||
|
|
||||||
packages = None
|
packages = None
|
||||||
if canApproveNew:
|
if canApproveNew:
|
||||||
|
@ -35,6 +36,10 @@ def todo_page():
|
||||||
if canApproveRel:
|
if canApproveRel:
|
||||||
releases = PackageRelease.query.filter_by(approved=False).all()
|
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",
|
return render_template("todo.html", title="Reports and Work Queue",
|
||||||
approve_new=packages, releases=releases,
|
packages=packages, releases=releases, screenshots=screenshots,
|
||||||
canApproveNew=canApproveNew, canApproveRel=canApproveRel)
|
canApproveNew=canApproveNew, canApproveRel=canApproveRel, canApproveScn=canApproveScn)
|
||||||
|
|
Loading…
Reference in New Issue