]> git.lizzy.rs Git - cheatdb.git/commitdiff
Finish screenshot approval feature
authorrubenwardy <rw@rubenwardy.com>
Fri, 25 May 2018 18:06:05 +0000 (19:06 +0100)
committerrubenwardy <rw@rubenwardy.com>
Fri, 25 May 2018 18:06:05 +0000 (19:06 +0100)
app/models.py
app/templates/packages/screenshot_edit.html
app/templates/packages/view.html
app/templates/todo.html
app/views/packages/__init__.py
app/views/packages/todo.py

index e8b66fbaaccb64042b43900c267007d8a598577d..aa67c6a85b7eb50cb3c09aac0839dbbe68de99ad 100644 (file)
@@ -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):
index 7e0f9dc505a84a368ead638d90d4f0fcdef4b337..b53c07e0ca8065cf08084d81561faa7e196afe9f 100644 (file)
@@ -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() }}
index 85a0b7d76282732d5d6ff9317a2bfffe4c1e98cf..e0f03c016f466326d224bf7199bb0a83ee37203f 100644 (file)
 
        <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>
 
index 35aee9acd0bc72aaa9ad605fbc7e4e9a3619f2b7..b20f26c639fd301ca8533d35be441882610c703e 100644 (file)
@@ -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>
                </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>
index 4260b1cdad89d311df944848f4a0166f17954f5c..48b50e4b296614e44f84b2442cd5951ff2b7d96b 100644 (file)
@@ -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()
index 63f843b7df9e3253d0213e165f5673fbc42f1294..26356049c9c57af91e3d3dfd9deb892ff1b2525f 100644 (file)
@@ -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)