1 {% extends "base.html" %}
8 <h2 class="mb-4">Approval Queue</h2>
11 {% if canApproveNew and (packages or wip_packages) %}
12 <div class="col-sm-6">
14 <h3 class="card-header">Packages</h3>
15 <div class="list-group list-group-flush">
16 {% for p in packages %}
17 <a href="{{ p.getDetailsURL() }}" class="list-group-item list-group-item-action">
18 {% if "Other" in p.license.name or "Other" in p.media_license.name %}
19 <span class="mr-2 badge badge-info">License</span>
21 <span class="mr-2 badge badge-success">Ready</span>
24 {{ p.title }} by {{ p.author.display_name }}
27 <li class="list-group-item"><i>No packages need reviewing.</i></li>
32 <div class="card mt-5">
33 <h3 class="card-header">WIP Packages</h3>
34 <div class="list-group list-group-flush">
35 {% for p in wip_packages %}
36 <a href="{{ p.getDetailsURL() }}" class="list-group-item list-group-item-action">
37 <span class="mr-2 badge badge-warning">{{ p.state.value }}</span>
39 {{ p.title }} by {{ p.author.display_name }}
42 <li class="list-group-item"><i>No packages need reviewing.</i></li>
49 {% if canApproveRel and releases %}
50 <div class="col-sm-6">
52 <h3 class="card-header">Releases</h3>
53 <ul class="list-group list-group-flush">
54 {% for r in releases %}
55 <li class="list-group-item">
57 <span class="mr-2 badge badge-warning">Importing</span>
59 <a href="{{ r.getEditURL() }}">{{ r.title }}</a>
61 <a href="{{ r.package.getDetailsURL() }}">
62 {{ r.package.title }} by {{ r.package.author.display_name }}
66 <li class="list-group-item"><i>No releases need reviewing.</i></li>
74 {% if canApproveScn and screenshots %}
75 <div class="card my-4">
76 <h3 class="card-header">Screenshots
77 <form class="float-right" method="post" action="{{ url_for('todo.view') }}">
78 <input type="hidden" name="csrf_token" value="{{ csrf_token() }}" />
79 <input type="hidden" name="action" value="screenshots_approve_all" />
80 <input class="btn btn-sm btn-primary" type="submit" value="Approve All" />
83 <ul class="card-body d-flex p-0 flex-row flex-wrap justify-content-start align-content-start p-4">
84 {% for s in screenshots %}
85 <li class="packagetile flex-fill"><a href="{{ s.getEditURL() }}"
86 style="background-image: url({{ s.getThumbnailURL(3) or '/static/placeholder.png' }});">
87 <div class="packagegridscrub"></div>
88 <div class="packagegridinfo">
92 <small>{{ s.package.title }} by {{ s.package.author.display_name }}</small>
98 <li><i>No screenshots need reviewing.</i></li>
100 {% for i in range(4) %}
101 <li class="packagetile flex-fill"></li>
107 {% if not (packages or screenshots or releases) %}
114 <h2 class="mt-5">Tag Packages</h2>
117 {{ total_to_tag }} / {{ total_packages }} packages don't have any tags.
120 <div class="progress my-4">
121 {% set perc = 100 * (total_packages - total_to_tag) / total_packages %}
122 <div class="progress-bar bg-success" role="progressbar"
123 style="width: {{ perc }}%" aria-valuenow="{{ perc }}" aria-valuemin="0" aria-valuemax="100"></div>
126 <a class="btn btn-primary" href="{{ url_for('todo.tags') }}">View Tags</a>
129 {% if unfulfilled_meta_packages %}
131 <span class="fas fa-exclamation-triangle pr-2" style="color: orange;"></span>
132 {{ unfulfilled_meta_packages }} Unfulfilled Dependencies
136 Meta packages that have hard dependers, but are not fulfilled.
139 <a class="btn btn-primary" href="{{ url_for('todo.metapackages') }}">View</a>
143 <h2 class="mt-5">Unadded Topic List</h2>
145 {% if total_topics > 0 %}
147 {{ total_topics - topics_to_add }} / {{ total_topics }} packages have been been added to cdb,
148 based on cdb's forum parser. {{ topics_to_add }} remaining.
151 <div class="progress my-4">
152 {% set perc = 100 * (total_topics - topics_to_add) / total_topics %}
153 <div class="progress-bar bg-success" role="progressbar"
154 style="width: {{ perc }}%" aria-valuenow="{{ perc }}" aria-valuemin="0" aria-valuemax="100"></div>
157 <a class="btn btn-primary" href="{{ url_for('todo.topics') }}">View Unadded Topic List</a>
160 The forum topic crawler needs to run at least once for this section to work.