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.")
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):
{% 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() }}
<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>
{% 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>
</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>
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()
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:
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)