summaryrefslogtreecommitdiff
path: root/templates/packages
diff options
context:
space:
mode:
Diffstat (limited to 'templates/packages')
-rw-r--r--templates/packages/details.html43
-rw-r--r--templates/packages/differences.html31
-rw-r--r--templates/packages/files-list.html6
-rw-r--r--templates/packages/files.html2
-rw-r--r--templates/packages/flag.html22
-rw-r--r--templates/packages/flag_confirmed.html15
-rw-r--r--templates/packages/flagged.html12
-rw-r--r--templates/packages/flaghelp.html5
-rw-r--r--templates/packages/packages_list.html6
-rw-r--r--templates/packages/search.html19
-rw-r--r--templates/packages/signoff_cell.html25
-rw-r--r--templates/packages/signoff_options.html18
-rw-r--r--templates/packages/signoff_report.txt41
-rw-r--r--templates/packages/signoffs.html96
14 files changed, 256 insertions, 85 deletions
diff --git a/templates/packages/details.html b/templates/packages/details.html
index d1e6eee9..4570627f 100644
--- a/templates/packages/details.html
+++ b/templates/packages/details.html
@@ -1,5 +1,6 @@
{% extends "base.html" %}
{% load cache %}
+{% load package_extras %}
{% block title %}Parabola - {{ pkg.pkgname }} {{ pkg.full_version }} - Package Details{% endblock %}
{% block navbarclass %}anb-packages{% endblock %}
@@ -18,6 +19,7 @@
<li><a href="{% bugs_list pkg %}" title="View existing bug tickets for {{ pkg.pkgname }}">Bug Reports</a></li>
<li><a href="{% bug_report pkg %}" title="Report bug for {{ pkg.pkgname }}">Report a Bug</a></li>
<li><a href="{% flag_unfree pkg %}" title="Report {{ pkg.pkgname }} as unfree">Report as unfree</a></li>
+ <li><a href="{% get_wiki_link pkg %}" title="Search wiki for {{ pkg.pkgname }}">Search Wiki</a></li>
{% if pkg.flag_date %}
<li><span class="flagged">Flagged out-of-date on {{ pkg.flag_date|date }}</span></li>
{% with pkg.in_testing as tp %}{% if tp %}
@@ -37,6 +39,7 @@
onclick="return !window.open('/packages/flaghelp/','FlagHelp',
'height=350,width=450,location=no,scrollbars=yes,menubars=no,toolbars=no,resizable=no');">(?)</a></li>
{% endif %}
+ <li><a href="{% get_download_link pkg %}" rel="nofollow" title="Download {{ pkg.pkgname }} from mirror">Download From Mirror</a></li>
</ul>
{% if perms.main.change_package %}
@@ -80,20 +83,14 @@
{% with pkg.split_packages as splits %}{% if splits %}
<tr>
<th>Split Packages:</th>
- <td>
- {% for s in splits %}
- <a href="{{ s.get_absolute_url }}"
- title="Package details for {{ s.pkgname }}">{{ s.pkgname }}</a><br/>
- {% endfor %}
- </td>
+ <td>{% for s in splits %}{% pkg_details_link s %}<br/>{% endfor %}</td>
</tr>
{% endif %}{% endwith %}
{% else %}
<tr>
<th>Base Package:</th>
{% if pkg.base_package %}
- <td><a href="{{ pkg.base_package.get_absolute_url }}"
- title="Package details for {{ pkg.base_package.pkgname }}">{{ pkg.pkgbase }}</a></td>
+ <td>{% pkg_details_link pkg.base_package %}</td>
{% else %}
<td><a href="../{{ pkg.pkgbase }}/"
title="Split package details for {{ pkg.pkgbase }}">{{ pkg.pkgbase }}</a></td>
@@ -106,7 +103,7 @@
</tr><tr>
<th>Upstream URL:</th>
<td>{% if pkg.url %}<a href="{{ pkg.url }}"
- title="Visit the website for {{ pkg.pkgname }}">{{ pkg.url }}</a>{% endif %}</td>
+ title="Visit the website for {{ pkg.pkgname }}">{{ pkg.url|url_unquote }}</a>{% endif %}</td>
</tr><tr>
<th>License(s):</th>
<td>{{ pkg.licenses.all|join:", " }}</td>
@@ -121,7 +118,16 @@
{% else %}None{% endif %}
</td>
{% endwith %}
- </tr><tr>
+ </tr>
+ {% with pkg.provides.all as provides %}
+ {% if provides %}
+ <tr>
+ <th>Provides:</th>
+ <td>{% for p in provides %}{{ p.name }}{% if p.version %}={{ p.version }}{% endif %}<br/>{% endfor %}</td>
+ </tr>
+ {% endif %}
+ {% endwith %}
+ <tr>
<th>Maintainers:</th>
{% with pkg.maintainers as maints %}
<td>{% if maints %}
@@ -141,8 +147,11 @@
<th>Last Packager:</th>
<td>{% with pkg.packager as pkgr %}{% if pkgr %}{% userpkgs pkgr %}{% else %}{{ pkg.packager_str }}{% endif %}{% endwith %}</td>
</tr><tr>
+ <th>Signed:</th>
+ <td>{{ pkg.is_signed|yesno|capfirst }}</td>
+ </tr><tr>
<th>Build Date:</th>
- <td>{{ pkg.build_date }} UTC</td>
+ <td>{{ pkg.build_date|date:"DATETIME_FORMAT" }} UTC</td>
</tr><tr>
<th>Last Updated:</th>
<td>{{ pkg.last_update|date }}</td>
@@ -161,10 +170,12 @@
<ul>
{% for depend in deps %}
{% ifequal depend.pkg None %}
- <li>{{ depend.dep.depname }} <span class="virtual-dep">(virtual)</span></li>
+ {% if depend.providers %}
+ <li>{{ depend.dep.depname }} <span class="virtual-dep">({% multi_pkg_details depend.providers %})</span></li>
+ {% else %}<li>{{ depend.dep.depname }} <span class="virtual-dep">(virtual)</span></li>
+ {% endif %}
{% else %}
- <li><a href="{{ depend.pkg.get_absolute_url }}"
- title="View package details for {{ depend.dep.depname }}">{{ depend.dep.depname }}</a>{{ depend.dep.depvcmp|default:"" }}
+ <li>{% pkg_details_link depend.pkg %}{{ depend.dep.depvcmp|default:"" }}
{% if depend.pkg.repo.testing %}<span class="testing-dep">(testing)</span>{% endif %}
{% if depend.dep.optional %}<span class="opt-dep">(optional)</span>{% endif %}
{% if depend.dep.description %}- <span class="dep-desc">{{ depend.dep.description }}</span>{% endif %}
@@ -186,8 +197,8 @@
{% if rqdby %}
<ul>
{% for req in rqdby %}
- <li><a href="{{ req.pkg.get_absolute_url }}"
- title="View package details for {{ req.pkg.pkgname }}">{{ req.pkg.pkgname }}</a>
+ <li>{% pkg_details_link req.pkg %}
+ {% if req.depname != pkg.pkgname %}<span class="virtual-dep">(requires {{ req.depname }})</span>{% endif %}
{% if req.pkg.repo.testing %}<span class="testing-dep">(testing)</span>{% endif %}
{% if req.optional %}<span class="opt-dep">(optional)</span>{% endif %}
</li>
diff --git a/templates/packages/differences.html b/templates/packages/differences.html
index 69c39756..0412f8c2 100644
--- a/templates/packages/differences.html
+++ b/templates/packages/differences.html
@@ -6,6 +6,35 @@
{% if differences %}
<div id="differences-filter" class="box filter-criteria">
<h2>Package Differences by Architecture</h2>
+ <h3>Select architectures</h3>
+ <form id="arch_selector" method="get" action=".">
+ <fieldset>
+ <legend>Select arches</legend>
+ <div><label for="arch_a" title="Architecture A">Architecture A</label>
+ <select name="arch_a" id="arch_a">
+ {% for arch in arches %}
+ <option
+ {% if arch == arch_a %}
+ selected="selected"
+ {% endif %}
+ >{{ arch }}</option>
+ {% endfor %}
+ </select>
+ </div>
+ <div><label for="arch_b" title="Architecture B">Architecture B</label>
+ <select name="arch_b" id="arch_b">
+ {% for arch in arches %}
+ <option
+ {% if arch == arch_b %}
+ selected="selected"
+ {% endif %}
+ >{{ arch }}</option>
+ {% endfor %}
+ </select>
+ </div>
+ <div><label>&nbsp;</label><input type="submit" title="Show difference between selected architectures"></div>
+ </fieldset>
+ </form>
<h3>Filter Differences View</h3>
<form id="diff_filter" method="post" action=".">
<fieldset>
@@ -65,7 +94,7 @@ $(document).ready(function() {
$('.results').tablesorter({widgets: ['zebra'], sortList: [[1,0], [0,0]]});
$('#diff_filter select').change(filter_packages);
$('#diff_filter input').change(filter_packages);
- $('#criteria_reset').click(filter_reset);
+ $('#criteria_reset').click(filter_packages_reset);
// fire function on page load to ensure the current form selections take effect
filter_packages();
});
diff --git a/templates/packages/files-list.html b/templates/packages/files-list.html
index bb89b663..95a85d24 100644
--- a/templates/packages/files-list.html
+++ b/templates/packages/files-list.html
@@ -2,12 +2,16 @@
<p class="message">Note: This file list was generated from a previous version
of the package; it may be out of date.</p>
{% endif %}
-{% if files.count %}
+{% if pkg.files_last_update %}
+{% if files|length %}
<ul>
{% for file in files %}
<li>{{ file.directory }}{{ file.filename|default:'' }}</li>
{% endfor %}
</ul>
{% else %}
+<p class="message">Package has no files.</p>
+{% endif %}
+{% else %}
<p class="message">No file list available.</p>
{% endif %}
diff --git a/templates/packages/files.html b/templates/packages/files.html
index 149154a6..78a40def 100644
--- a/templates/packages/files.html
+++ b/templates/packages/files.html
@@ -1,5 +1,5 @@
{% extends "base.html" %}
-{% block title %}Parabola - {{ pkg.pkgname }} {{ pkg.full_version }} - Package File List{% endblock %}
+{% block title %}Parabola - {{ pkg.pkgname }} {{ pkg.full_version }} ({{ pkg.arch.name }}) - File List{% endblock %}
{% block navbarclass %}anb-packages{% endblock %}
{% block content %}
diff --git a/templates/packages/flag.html b/templates/packages/flag.html
index 74f6982c..bb6b274f 100644
--- a/templates/packages/flag.html
+++ b/templates/packages/flag.html
@@ -1,32 +1,36 @@
{% extends "base.html" %}
-{% block title %}Parabola - Flag Package - {{ package.pkgname }}{% endblock %}
+{% load package_extras %}
+
+{% block title %}Arch Linux - Flag Package - {{ package.pkgname }} {{ package.full_version }} ({{ package.arch.name }}){% endblock %}
+{% block head %}<meta name="robots" content="noindex"/>{% endblock %}
{% block navbarclass %}anb-packages{% endblock %}
{% block content %}
<div id="pkg-flag" class="box">
- <h2>Flag Package: {{ package.pkgname }}</h2>
+ <h2>Flag Package: {{ package.pkgname }} {{ package.full_version }} ({{ package.arch.name }})</h2>
<p>If you notice a package is out-of-date (i.e., there is a newer
<strong>stable</strong> release available), then please notify us using
- the form below.</p>
+ the form below. Do <em>not</em> report bugs via this form!</p>
- <p>Note that all of the following packages will be marked out of date:</p>
+ <p>Note that the following {{ packages|length }} package{{ packages|pluralize }} will be marked out of date:</p>
<ul>
{% for pkg in packages %}
- <li>{{ pkg.pkgname }} {{ pkg.full_version }} [{{ pkg.repo.name|lower }}] ({{ pkg.arch.name }})</li>
+ <li>{% pkg_details_link pkg %} {{ pkg.full_version }} [{{ pkg.repo.name|lower }}] ({{ pkg.arch.name }})</li>
{% endfor %}
</ul>
<p>The message box portion of the flag utility is optional, and meant
for short messages only. If you need more than 200 characters for your
message, then file a bug report, email the maintainer directly, or send
- an email to the <a href="http://list.parabolagnulinux.org/listinfo.cgi/dev-parabolagnulinux.org"
+ an email to the <a href="//lists.parabolagnulinux.org/mailman/listinfo/dev"
title="Visit the dev mailing list">Parabola Development mailing list</a>
with your additional text.</p>
- <p><strong>Note:</strong> Please do <em>not</em> use this facility if the
- package is broken! Please <a href="https://bugs.parabolagnulinux.org"
- title="Parabola Bugtracker">file a bug</a> instead.</p>
+ <p><strong>Note:</strong> Do <em>not</em> use this facility if the
+ package is broken! The package will be unflagged and the report will be ignored!
+ <a href="//bugs.parabolagnulinux.org/" title="Parabola Bugtracker">Use the
+ bugtracker to file a bug</a> instead.</p>
<p>Please confirm your flag request for {{package.pkgname}}:</p>
diff --git a/templates/packages/flag_confirmed.html b/templates/packages/flag_confirmed.html
index baa466dd..62080d62 100644
--- a/templates/packages/flag_confirmed.html
+++ b/templates/packages/flag_confirmed.html
@@ -1,19 +1,22 @@
{% extends "base.html" %}
-{% block title %}Parabola - Package Flagged - {{ package.pkgname }}{% endblock %}
+{% load package_extras %}
+
+{% block title %}Parabola - Package Flagged - {{ package.pkgname }} {{ package.full_version }} ({{ package.arch.name }}){% endblock %}
+{% block head %}<meta name="robots" content="noindex"/>{% endblock %}
{% block navbarclass %}anb-packages{% endblock %}
{% block content %}
<div id="pkg-flag" class="box">
- <h2>Package Flagged - {{ package.pkgname }}</h2>
+ <h2>Package Flagged - {{ package.pkgname }}</h2>
- <p>Thank you, the maintainers have been notified the following packages are out-of-date:</p>
+ <p>Thank you, the maintainers have been notified the following
+ {{ packages|length }} package{{ packages|pluralize }} are out-of-date:</p>
<ul>
{% for pkg in packages %}
- <li>{{ pkg.pkgname }} {{ pkg.full_version }} [{{ pkg.repo.name|lower }}] ({{ pkg.arch.name }})</li>
+ <li>{% pkg_details_link pkg %} {{ pkg.full_version }} [{{ pkg.repo.name|lower }}] ({{ pkg.arch.name }})</li>
{% endfor %}
</ul>
- <p>You can return to the package details page for
- <a href="{{ package.get_absolute_url }}" title="Package details for {{package.pkgname}}">{{package.pkgname}}</a>.</p>
+ <p>You can return to the package details page for {% pkg_details_link package %}.</p>
</div>
{% endblock %}
diff --git a/templates/packages/flagged.html b/templates/packages/flagged.html
index 97a14ff2..f7940cd1 100644
--- a/templates/packages/flagged.html
+++ b/templates/packages/flagged.html
@@ -1,16 +1,16 @@
{% extends "base.html" %}
-{% block title %}Parabola - Flag Package - {{ pkg.pkgname }}{% endblock %}
+{% load package_extras %}
+
+{% block title %}Parabola - Flag Package - {{ pkg.pkgname }} {{ pkg.full_version }} ({{ pkg.arch.name }}){% endblock %}
+{% block head %}<meta name="robots" content="noindex"/>{% endblock %}
{% block navbarclass %}anb-packages{% endblock %}
{% block content %}
<div id="pkg-flagged-error" class="box">
-
- <h2>Error: Package already flagged</h2>
+ <h2>Package {{ pkg.pkgname }} {{ pkg.full_version }} ({{ pkg.arch.name }}) already flagged</h2>
<p><strong>{{pkg.pkgname}}</strong> has already been flagged out-of-date.</p>
- <p>You can return to the package details page for
- <a href="{{ pkg.get_absolute_url }}" title="Package details for {{pkg.pkgname}}">{{pkg.pkgname}}</a>.</p>
-
+ <p>You can return to the package details page for {% pkg_details_link pkg %}.</p>
</div>
{% endblock %}
diff --git a/templates/packages/flaghelp.html b/templates/packages/flaghelp.html
index 4a9d1cdf..eac13f83 100644
--- a/templates/packages/flaghelp.html
+++ b/templates/packages/flaghelp.html
@@ -25,13 +25,12 @@
<p>The message box portion of the flag utility is optional, and meant
for short messages only. If you need more than 200 characters for your
message, then file a bug report, email the maintainer directly, or send
- an email to the <a target="_blank"
- href="http://list.parabolagnulinux.org/listinfo.cgi/dev-parabolagnulinux.org"
+ an email to the <a target="_blank" href="//lists.parabolagnulinux.org/mailman/listinfo/dev"
title="Visit the parabola dev mailing list">parabola mailing list</a>
with your additional text.</p>
<p><strong>Note:</strong> Please do <em>not</em> use this facility if the
- package is broken! Use the <a target="_blank" href="https://bugs.parabolagnulinux.org"
+ package is broken! Use the <a target="_blank" href="//bugs.parabolagnulinux.org"
title="Parabola Bugtracker">bugtracker</a> instead.</p>
</body>
diff --git a/templates/packages/packages_list.html b/templates/packages/packages_list.html
index 2508d8fd..ed376705 100644
--- a/templates/packages/packages_list.html
+++ b/templates/packages/packages_list.html
@@ -1,10 +1,13 @@
{% extends "base.html" %}
+{% load package_extras %}
+
{% block title %}Parabola - {{ name }} ({{ arch.name }}) - {{ list_title }}{% endblock %}
{% block navbarclass %}anb-packages{% endblock %}
{% block content %}
<div class="box">
<h2>{{ list_title }} - {{ name }} ({{ arch.name }})</h2>
+ <p>{{ packages|length }} package{{ packages|pluralize }} found.</p>
<table class="results">
<thead>
<tr>
@@ -22,8 +25,7 @@
<tr class="{% cycle 'odd' 'even' %}">
<td>{{ pkg.arch.name }}</td>
<td>{{ pkg.repo.name|capfirst }}</td>
- <td><a href="{{ pkg.get_absolute_url }}"
- title="Package details for {{ pkg.pkgname }}">{{ pkg.pkgname }}</a></td>
+ <td>{% pkg_details_link pkg %}</td>
{% if pkg.flag_date %}
<td><span class="flagged">{{ pkg.full_version }}</span></td>
{% else %}
diff --git a/templates/packages/search.html b/templates/packages/search.html
index ae9e55f2..bb5c1c8b 100644
--- a/templates/packages/search.html
+++ b/templates/packages/search.html
@@ -1,10 +1,12 @@
{% extends "base.html" %}
{% load package_extras %}
+{% load adminmedia %}
+
{% block title %}Parabola - Package Database{% endblock %}
{% block navbarclass %}anb-packages{% endblock %}
{% block head %}
-<link rel="stylesheet" type="text/css" href="/media/admin_media/css/widgets.css" />
+<link rel="stylesheet" type="text/css" href="{% admin_media_prefix %}css/widgets.css" />
{% endblock %}
{% block content %}
@@ -154,21 +156,20 @@
</div><!-- #pkglist-results -->
{% else %}
<div class="box">
- <p>We couldn't find any packages matching your query. Try searching again
- using different criteria.</p>
+ <p>We couldn't find any packages matching your query. Try searching again
+ using different criteria.</p>
</div>
{% endif %}
<div id="pkglist-about" class="box">
- <p>You are browsing the Parabola package database. From here you can
- find detailed information about packages located in the official
- supported repositories. If you need the sourceball from where a
- package is built, you can look at our <a
- href='http://repo.parabolagnulinux.org/sources/packages'
+ <p>You are browsing the Parabola package database. From here you can find
+ detailed information about packages located in the official supported repositories.
+ If you need the sourceball from where a package is built, you can look at our <a
+ href='//repo.parabolagnulinux.org/sources/packages'
title='Sourceballed packages'>sources repo</a>.</p> </div>
<script type="text/javascript" src="/jsi18n/"></script>
-{% load adminmedia %}<script type="text/javascript" src="{% admin_media_prefix %}js/core.js"></script>
<script type="text/javascript">window.__admin_media_prefix__ = "{% filter escapejs %}{% admin_media_prefix %}{% endfilter %}";</script>
+<script type="text/javascript" src="{% admin_media_prefix %}js/core.js"></script>
{{search_form.media}}
{% endblock %}
diff --git a/templates/packages/signoff_cell.html b/templates/packages/signoff_cell.html
new file mode 100644
index 00000000..01a5d58d
--- /dev/null
+++ b/templates/packages/signoff_cell.html
@@ -0,0 +1,25 @@
+{% spaceless %}
+{% if group.signoffs %}
+<ul class="signoff-list">
+ {% for signoff in group.signoffs %}
+ <li class="signed-username" title="Signed off by {{ signoff.user }}">{{ signoff.user }}{% if signoff.revoked %} (revoked){% endif %}</li>
+ {% endfor %}
+</ul>
+{% endif %}
+{% if group.user_signed_off %}
+<div>
+ <a class="signoff-link" href="{{ group.package.get_absolute_url }}signoff/revoke/"
+ title="Revoke signoff {{ group.pkgbase }} for {{ group.arch }}">Revoke Signoff</a></div>
+{% else %}
+{% if not group.specification.known_bad and group.specification.enabled %}
+<div>
+ <a class="signoff-link" href="{{ group.package.get_absolute_url }}signoff/"
+ title="Signoff {{ group.pkgbase }} for {{ group.arch }}">Signoff</a></div>
+{% endif %}
+{% endif %}
+{% if user == group.packager or user in group.maintainers %}
+<div>
+ <a class="signoff-options" href="{{ group.package.get_absolute_url }}signoff/options/">Signoff Options</a>
+</div>
+{% endif %}
+{% endspaceless %}
diff --git a/templates/packages/signoff_options.html b/templates/packages/signoff_options.html
new file mode 100644
index 00000000..ee9b8b47
--- /dev/null
+++ b/templates/packages/signoff_options.html
@@ -0,0 +1,18 @@
+{% extends "base.html" %}
+
+{% block title %}Arch Linux - Package Signoff Options - {{ package.pkgbase }} {{ package.full_version }} ({{ package.arch.name }}){% endblock %}
+{% block head %}<meta name="robots" content="noindex"/>{% endblock %}
+{% block navbarclass %}anb-packages{% endblock %}
+
+{% block content %}
+<div id="signoff-options" class="box">
+ <h2>Package Signoff Options: {{ package.pkgbase }} {{ package.full_version }} ({{ package.arch.name }})</h2>
+ <form id="signoff-options-form" method="post">{% csrf_token %}
+ <fieldset>
+ {{ form.as_p }}
+ </fieldset>
+ <p><label></label> <input title="Set Signoff Options" type="submit" value="Set Signoff Options" /></p>
+ </form>
+
+</div>
+{% endblock %}
diff --git a/templates/packages/signoff_report.txt b/templates/packages/signoff_report.txt
new file mode 100644
index 00000000..046c2f1e
--- /dev/null
+++ b/templates/packages/signoff_report.txt
@@ -0,0 +1,41 @@
+=== {% autoescape off %}Signoff report for [{{ repo|lower }}] ===
+{{ signoffs_url }}
+
+There are currently:
+* {{ new|length }} new package{{ new|length|pluralize }} in last {{ new_hours }} hours
+* {{ bad|length }} known bad package{{ bad|length|pluralize }}
+* {{ disabled|length }} package{{ disabled|length|pluralize }} not accepting signoffs
+* {{ complete|length }} fully signed off package{{ complete|length|pluralize }}
+* {{ incomplete|length }} package{{ incomplete|length|pluralize }} missing signoffs
+* {{ old|length }} package{{ old|length|pluralize }} older than {{ old_days }} days
+
+(Note: the word 'package' as used here refers to packages as grouped by
+pkgbase, architecture, and repository; e.g., one PKGBUILD produces one
+package per architecture, even if it is a split package.)
+
+
+{% if new %}== New packages in [{{ repo|lower}}] in last {{ new_hours }} hours ({{ new|length }} total) ==
+{% for group in new %}
+* {{ group.pkgbase }}-{{ group.version }} ({{ group.arch }}){% endfor %}
+
+{% endif %}{% regroup incomplete by target_repo as by_repo %}{% for target_repo in by_repo %}
+== Incomplete signoffs for [{{ target_repo.grouper|lower }}] ({{ target_repo.list|length }} total) ==
+{% for group in target_repo.list %}
+* {{ group.pkgbase }}-{{ group.version }} ({{ group.arch }})
+ {{ group.completed }}/{{ group.required }} signoffs{% endfor %}
+{% endfor %}
+
+{% if complete %}== Completed signoffs ({{ complete|length }} total) ==
+{% for group in complete %}
+* {{ group.pkgbase }}-{{ group.version }} ({{ group.arch }}){% endfor %}
+
+
+{% endif %}{% if old %}== All packages in [{{ repo|lower }}] for more than {{ old_days }} days ({{ old|length }} total) ==
+{% for group in old %}
+* {{ group.pkgbase }}-{{ group.version }} ({{ group.arch }}), since {{ group.last_update|date }}{% endfor %}
+
+
+{% endif %}== Top five in signoffs in last {{ new_hours }} hours ==
+{% for leader in leaders %}
+{{ forloop.counter }}. {{ leader.user }} - {{ leader.count }} signoffs{% endfor %}
+{% endautoescape %}
diff --git a/templates/packages/signoffs.html b/templates/packages/signoffs.html
index 157843ac..c24774a9 100644
--- a/templates/packages/signoffs.html
+++ b/templates/packages/signoffs.html
@@ -1,49 +1,80 @@
{% extends "base.html" %}
+{% load package_extras %}
+
{% block title %}Parabola - Package Signoffs{% endblock %}
{% block navbarclass %}anb-packages{% endblock %}
{% block content %}
-{% if packages %}
<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>&nbsp;</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>Package</th>
- <th>Version</th>
- <th>Last Updated</th>
<th>Target Repo</th>
+ <th>Packager</th>
+ <th># of Packages</th>
+ <th>Last Updated</th>
<th>Approved</th>
- <th>Signoff</th>
+ <th>Signoffs</th>
+ <th>Notes</th>
</tr>
</thead>
- <tbody>
- {% for pkg,target in packages %}
- <tr class="{% cycle 'odd' 'even' %}">
- <td>{{ pkg.arch.name }}</td>
- <td><a href="{{ pkg.get_absolute_url }}"
- title="View package details for {{ pkg.pkgname }}">{{ pkg.pkgname }}</a></td>
- <td>{{ pkg.full_version }}</td>
- <td>{{ pkg.last_update }}</td>
- <td>{{ target }}</td>
- <td class="signoff-{{pkg.approved_for_signoff|yesno}}">
- {{ pkg.approved_for_signoff|yesno:"Yes,No" }}</td>
- <td>
- <ul>
- <li><a class="signoff-link" href="/packages/signoff_package/{{pkg.arch}}/{{pkg.pkgname}}/"
- title="Signoff {{pkg.pkgname}} for {{pkg.arch}}">Signoff</a>
- </li>
- {% for signoff in pkg.signoffs %}
- <li class="signed-username" title="Signed off by {{signoff.packager}}">
- {{signoff.packager}}</li>
- {% endfor %}
- </ul>
- </td>
+ <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 %}
+ {% endfor %}
</tbody>
</table>
</div>
@@ -53,9 +84,12 @@
<script type="text/javascript">
$(document).ready(function() {
$('a.signoff-link').click(signoff_package);
- $(".results").tablesorter({widgets: ['zebra'], sortList: [[1,0]],
- headers: { 6: { sorter: false } } });
+ $(".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>
-{% endif %}
{% endblock %}