2021-01-29 20:38:14 +01:00
|
|
|
{% extends "todo/todo_base.html" %}
|
2018-03-21 20:24:45 +01:00
|
|
|
|
|
|
|
{% block title %}
|
2021-01-29 20:38:14 +01:00
|
|
|
{{ _("Editor Work Queue") }}
|
2018-03-21 20:24:45 +01:00
|
|
|
{% endblock %}
|
|
|
|
|
|
|
|
{% block content %}
|
2019-03-29 21:32:13 +01:00
|
|
|
<h2 class="mb-4">Approval Queue</h2>
|
2020-12-04 00:36:24 +01:00
|
|
|
{% if canApproveScn and screenshots %}
|
|
|
|
<div class="card my-4">
|
|
|
|
<h3 class="card-header">Screenshots
|
2021-01-29 20:38:14 +01:00
|
|
|
<form class="float-right" method="post" action="{{ url_for('todo.view_editor') }}">
|
2020-12-04 00:36:24 +01:00
|
|
|
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}" />
|
|
|
|
<input type="hidden" name="action" value="screenshots_approve_all" />
|
|
|
|
<input class="btn btn-sm btn-primary" type="submit" value="Approve All" />
|
|
|
|
</form>
|
|
|
|
</h3>
|
|
|
|
<ul class="card-body d-flex p-0 flex-row flex-wrap justify-content-start align-content-start p-4">
|
|
|
|
{% for s in screenshots %}
|
|
|
|
<li class="packagetile flex-fill"><a href="{{ s.getEditURL() }}"
|
|
|
|
style="background-image: url({{ s.getThumbnailURL(3) or '/static/placeholder.png' }});">
|
|
|
|
<div class="packagegridscrub"></div>
|
|
|
|
<div class="packagegridinfo">
|
|
|
|
<h3>
|
|
|
|
{{ s.title }}
|
|
|
|
<br />
|
|
|
|
<small>{{ s.package.title }} by {{ s.package.author.display_name }}</small>
|
|
|
|
</h3>
|
|
|
|
<p></p>
|
|
|
|
</div>
|
|
|
|
</a></li>
|
|
|
|
{% else %}
|
|
|
|
<li><i>No screenshots need reviewing.</i></li>
|
|
|
|
{% endfor %}
|
|
|
|
{% for i in range(4) %}
|
|
|
|
<li class="packagetile flex-fill"></li>
|
|
|
|
{% endfor %}
|
|
|
|
</ul>
|
|
|
|
</div>
|
|
|
|
{% endif %}
|
2018-06-02 20:41:13 +02:00
|
|
|
|
2019-03-29 21:32:13 +01:00
|
|
|
<div class="row">
|
2020-09-16 18:51:03 +02:00
|
|
|
{% if canApproveNew and (packages or wip_packages) %}
|
2019-03-29 21:32:13 +01:00
|
|
|
<div class="col-sm-6">
|
|
|
|
<div class="card">
|
|
|
|
<h3 class="card-header">Packages</h3>
|
|
|
|
<div class="list-group list-group-flush">
|
|
|
|
{% for p in packages %}
|
|
|
|
<a href="{{ p.getDetailsURL() }}" class="list-group-item list-group-item-action">
|
2020-12-04 04:59:02 +01:00
|
|
|
<span class="float-right" title="Created {{ p.created_at | datetime }}">
|
|
|
|
<small>
|
|
|
|
{{ p.created_at | timedelta }} ago
|
|
|
|
</small>
|
|
|
|
</span>
|
|
|
|
|
2020-09-16 18:51:03 +02:00
|
|
|
{% if "Other" in p.license.name or "Other" in p.media_license.name %}
|
|
|
|
<span class="mr-2 badge badge-info">License</span>
|
|
|
|
{% else %}
|
2019-03-30 16:41:38 +01:00
|
|
|
<span class="mr-2 badge badge-success">Ready</span>
|
|
|
|
{% endif %}
|
|
|
|
|
2019-03-29 21:32:13 +01:00
|
|
|
{{ p.title }} by {{ p.author.display_name }}
|
2020-12-04 04:59:02 +01:00
|
|
|
|
|
|
|
|
2019-03-29 21:32:13 +01:00
|
|
|
</a>
|
|
|
|
{% else %}
|
|
|
|
<li class="list-group-item"><i>No packages need reviewing.</i></li>
|
|
|
|
{% endfor %}
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
{% endif %}
|
2018-03-21 20:24:45 +01:00
|
|
|
|
2019-03-29 21:32:13 +01:00
|
|
|
{% if canApproveRel and releases %}
|
|
|
|
<div class="col-sm-6">
|
|
|
|
<div class="card">
|
|
|
|
<h3 class="card-header">Releases</h3>
|
2020-12-04 04:59:02 +01:00
|
|
|
<ul class="list-group list-group-flush" style="max-height: 500px; overflow: hidden auto;">
|
2019-03-29 21:32:13 +01:00
|
|
|
{% for r in releases %}
|
|
|
|
<li class="list-group-item">
|
2019-11-15 00:38:55 +01:00
|
|
|
{% if r.task_id %}
|
|
|
|
<span class="mr-2 badge badge-warning">Importing</span>
|
|
|
|
{% endif %}
|
2019-03-29 21:32:13 +01:00
|
|
|
<a href="{{ r.getEditURL() }}">{{ r.title }}</a>
|
|
|
|
on
|
|
|
|
<a href="{{ r.package.getDetailsURL() }}">
|
|
|
|
{{ r.package.title }} by {{ r.package.author.display_name }}
|
|
|
|
</a>
|
|
|
|
</li>
|
|
|
|
{% else %}
|
|
|
|
<li class="list-group-item"><i>No releases need reviewing.</i></li>
|
|
|
|
{% endfor %}
|
|
|
|
</ul>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
{% endif %}
|
|
|
|
</div>
|
2018-05-25 20:06:05 +02:00
|
|
|
|
2018-06-02 20:41:13 +02:00
|
|
|
{% if not (packages or screenshots or releases) %}
|
|
|
|
<p>
|
|
|
|
<i>All done!</i>
|
|
|
|
</p>
|
|
|
|
{% endif %}
|
|
|
|
|
2020-07-15 01:21:20 +02:00
|
|
|
|
|
|
|
<h2 class="mt-5">Tag Packages</h2>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
{{ total_to_tag }} / {{ total_packages }} packages don't have any tags.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<div class="progress my-4">
|
|
|
|
{% set perc = 100 * (total_packages - total_to_tag) / total_packages %}
|
|
|
|
<div class="progress-bar bg-success" role="progressbar"
|
|
|
|
style="width: {{ perc }}%" aria-valuenow="{{ perc }}" aria-valuemin="0" aria-valuemax="100"></div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<a class="btn btn-primary" href="{{ url_for('todo.tags') }}">View Tags</a>
|
|
|
|
|
|
|
|
|
2020-08-18 18:28:42 +02:00
|
|
|
{% if unfulfilled_meta_packages %}
|
|
|
|
<h2 class="mt-5">
|
|
|
|
<span class="fas fa-exclamation-triangle pr-2" style="color: orange;"></span>
|
|
|
|
{{ unfulfilled_meta_packages }} Unfulfilled Dependencies
|
|
|
|
</h2>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
Meta packages that have hard dependers, but are not fulfilled.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<a class="btn btn-primary" href="{{ url_for('todo.metapackages') }}">View</a>
|
|
|
|
{% endif %}
|
|
|
|
|
|
|
|
|
2021-01-29 20:38:14 +01:00
|
|
|
<h2 class="mt-5">{{ _("Outdated packages") }}</h2>
|
2018-06-02 19:22:57 +02:00
|
|
|
|
2021-01-29 20:38:14 +01:00
|
|
|
{% if outdated_packages > 0 %}
|
2019-11-16 01:05:35 +01:00
|
|
|
<p>
|
2021-01-29 20:38:14 +01:00
|
|
|
{{ _("There are %(count)s potentially outdated packages packages", count=outdated_packages) }}
|
2019-11-16 01:05:35 +01:00
|
|
|
</p>
|
2021-01-29 20:38:14 +01:00
|
|
|
<a class="btn btn-primary" href="{{ url_for('todo.outdated') }}">{{ _("View Outdated") }}</a>
|
2019-11-16 01:05:35 +01:00
|
|
|
{% else %}
|
|
|
|
<p>
|
2021-01-29 20:38:14 +01:00
|
|
|
<i>{{ _("No outdated packages") }}</i>
|
2019-11-16 01:05:35 +01:00
|
|
|
</p>
|
|
|
|
{% endif %}
|
2021-01-29 20:38:14 +01:00
|
|
|
|
|
|
|
|
|
|
|
<h2 class="mt-5">WIP</h2>
|
|
|
|
|
|
|
|
{% if canApproveNew and (packages or wip_packages) %}
|
|
|
|
<div class="card">
|
|
|
|
<h3 class="card-header">WIP Packages</h3>
|
|
|
|
<div class="list-group list-group-flush" style="max-height: 300px; overflow: hidden auto;">
|
|
|
|
{% for p in wip_packages %}
|
|
|
|
<a href="{{ p.getDetailsURL() }}" class="list-group-item list-group-item-action">
|
|
|
|
<span class="float-right" title="Created {{ p.created_at | datetime }}">
|
|
|
|
<small>
|
|
|
|
{{ p.created_at | timedelta }} ago
|
|
|
|
</small>
|
|
|
|
</span>
|
|
|
|
|
|
|
|
{% if p.state == p.state.WIP %}
|
|
|
|
<span class="mr-2 badge badge-warning">WIP</span>
|
|
|
|
{% else %}
|
|
|
|
<span class="mr-2 badge badge-danger">{{ p.state.value }}</span>
|
|
|
|
{% endif %}
|
|
|
|
|
|
|
|
{{ p.title }} by {{ p.author.display_name }}
|
|
|
|
</a>
|
|
|
|
{% else %}
|
|
|
|
<li class="list-group-item"><i>No packages need reviewing.</i></li>
|
|
|
|
{% endfor %}
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
{% endif %}
|
2018-03-21 20:24:45 +01:00
|
|
|
{% endblock %}
|