943ef2e8e4
This moves our site static files into the sitestatic directory if they are shared resources, and also moves a handful of things (such as the artwork logos) into application-specific static/ directories. This allows the staticfiles contrib app to work after a few settings tweaks, a run of collectstatic, and massaging the hardcoded '/media/' prefix out of our templates. Django 1.4 is going to make this a lot easier to move things to a CDN and provides better template tags; for now this is setting the stage before we can move to that. Signed-off-by: Dan McGee <dan@archlinux.org>
96 lines
4.7 KiB
HTML
96 lines
4.7 KiB
HTML
{% extends "base.html" %}
|
|
{% load package_extras %}
|
|
|
|
{% block title %}Arch Linux - Package Signoffs{% endblock %}
|
|
{% block navbarclass %}anb-packages{% endblock %}
|
|
|
|
{% block content %}
|
|
<div id="dev-signoffs" class="box">
|
|
|
|
<h2>Package Signoffs</h2>
|
|
|
|
<p>{{ signoff_groups|length }} total signoff group{{ signoff_groups|pluralize }} found.
|
|
A "signoff group" consists of packages grouped by pkgbase, architecture, and repository.</p>
|
|
|
|
<div class="box filter-criteria">
|
|
<h3>Filter Displayed Signoffs</h3>
|
|
<form id="signoffs_filter" method="post" action=".">
|
|
<fieldset>
|
|
<legend>Select filter criteria</legend>
|
|
{% for arch in arches %}
|
|
<div><label for="id_arch_{{ arch.name }}" title="Architecture {{ arch.name }}">Arch {{ arch.name }}</label>
|
|
<input type="checkbox" name="arch_{{ arch.name }}" id="id_arch_{{ arch.name }}" class="arch_filter" value="{{ arch.name }}" checked="checked"/></div>
|
|
{% endfor %}
|
|
{% for repo_name in repo_names %}
|
|
<div><label for="id_repo_{{ repo_name|lower }}" title="Target Repository {{ repo_name }}">[{{ repo_name|lower }}]</label>
|
|
<input type="checkbox" name="repo_{{ repo_name|lower }}" id="id_repo_{{ repo_name|lower }}" class="repo_filter" value="{{ repo_name|lower }}" checked="checked"/></div>
|
|
{% endfor %}
|
|
<div><label for="id_pending" title="Packages with not enough signoffs">Only Pending Approval</label>
|
|
<input type="checkbox" name="pending" id="id_pending" value="pending"/></div>
|
|
<div><label> </label><input title="Reset search criteria" type="button" id="criteria_reset" value="Reset"/></div>
|
|
<div class="clear"></div>
|
|
<div id="filter-info"><span id="filter-count">{{ signoff_groups|length }}</span> signoff groups displayed.</div>
|
|
</fieldset>
|
|
</form>
|
|
</div>
|
|
|
|
<table id="signoffs" class="results">
|
|
<thead>
|
|
<tr>
|
|
<th>Package Base/Version</th>
|
|
<th>Arch</th>
|
|
<th>Target Repo</th>
|
|
<th>Packager</th>
|
|
<th># of Packages</th>
|
|
<th>Last Updated</th>
|
|
<th>Approved</th>
|
|
<th>Signoffs</th>
|
|
<th>Notes</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody id="tbody_signoffs">
|
|
{% for group in signoff_groups %}
|
|
<tr class="{% cycle 'odd' 'even' %} {{ group.arch.name }} {{ group.target_repo|lower }}">
|
|
<td>{% pkg_details_link group.package %} {{ group.version }}</td>
|
|
<td>{{ group.arch.name }}</td>
|
|
<td>{{ group.target_repo }}</td>
|
|
<td>{{ group.packager|default:"Unknown" }}</td>
|
|
<td>{{ group.packages|length }}</td>
|
|
<td class="epoch-{{ group.last_update|date:'U' }}">{{ group.last_update|date }}</td>
|
|
{% if group.specification.known_bad %}
|
|
<td class="approval signoff-bad">Bad</td>
|
|
{% else %}
|
|
{% if not group.specification.enabled %}
|
|
<td class="approval signoff-disabled">Disabled</td>
|
|
{% else %}
|
|
<td class="approval signoff-{{ group.approved|yesno }}">{{ group.approved|yesno|capfirst }}</td>
|
|
{% endif %}
|
|
{% endif %}
|
|
<td>{% include "packages/signoff_cell.html" %}</td>
|
|
<td class="wrap">{% if not group.default_spec %}{% with group.specification as spec %}
|
|
{% if spec.required != 2 %}Required signoffs: {{ spec.required }}<br/>{% endif %}
|
|
{% if not spec.enabled %}Signoffs are not currently enabled<br/>{% endif %}
|
|
{% if spec.known_bad %}Package is known to be bad<br/>{% endif %}
|
|
{{ spec.comments|default:""|linebreaksbr }}
|
|
{% endwith %}{% endif %}</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
{% load cdn %}{% jquery %}
|
|
<script type="text/javascript" src="{{ STATIC_URL }}jquery.tablesorter.min.js"></script>
|
|
<script type="text/javascript" src="{{ STATIC_URL }}archweb.js"></script>
|
|
<script type="text/javascript">
|
|
$(document).ready(function() {
|
|
$('a.signoff-link').click(signoff_package);
|
|
$(".results").tablesorter({widgets: ['zebra'], sortList: [[0,0]],
|
|
headers: { 5: { sorter: 'epochdate' }, 7: { sorter: false }, 8: {sorter: false } } });
|
|
$('#signoffs_filter input').change(filter_signoffs);
|
|
$('#criteria_reset').click(filter_signoffs_reset);
|
|
// fire function on page load to ensure the current form selections take effect
|
|
filter_signoffs();
|
|
});
|
|
</script>
|
|
{% endblock %}
|