summaryrefslogtreecommitdiff
path: root/templates
diff options
context:
space:
mode:
Diffstat (limited to 'templates')
-rw-r--r--templates/devel/clock.html2
-rw-r--r--templates/devel/index.html69
-rw-r--r--templates/devel/packages.html4
-rw-r--r--templates/mirrors/mirror_details.html10
-rw-r--r--templates/mirrors/mirrors.html6
-rw-r--r--templates/packages/details.html41
-rw-r--r--templates/packages/differences.html2
-rw-r--r--templates/packages/files.html2
-rw-r--r--templates/packages/flag.html24
-rw-r--r--templates/packages/flag_confirmed.html14
-rw-r--r--templates/packages/flagged.html12
-rw-r--r--templates/packages/packages_list.html5
-rw-r--r--templates/packages/search.html6
-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.html89
-rw-r--r--templates/public/about.html1
-rw-r--r--templates/public/developer_list.html4
-rw-r--r--templates/public/download.html32
-rw-r--r--templates/public/index.html61
-rw-r--r--templates/public/userlist.html1
-rw-r--r--templates/registration/logout.html2
-rw-r--r--templates/releng/iso_overview.html40
-rw-r--r--templates/releng/result_list.html8
-rw-r--r--templates/releng/thanks.html4
-rw-r--r--templates/todolists/email_notification.txt9
-rw-r--r--templates/todolists/public_list.html4
-rw-r--r--templates/todolists/view.html5
-rw-r--r--templates/visualize/index.html43
30 files changed, 426 insertions, 158 deletions
diff --git a/templates/devel/clock.html b/templates/devel/clock.html
index cbf4b834..2eafd529 100644
--- a/templates/devel/clock.html
+++ b/templates/devel/clock.html
@@ -45,7 +45,7 @@
<script type="text/javascript">
$(document).ready(function() {
$("#clocks-table:has(tbody tr)").tablesorter(
- {widgets: ['zebra'], sortList: [[1,0]]});
+ {widgets: ['zebra'], sortList: [[0,0]]});
});
</script>
{% endblock %}
diff --git a/templates/devel/index.html b/templates/devel/index.html
index 6b50d3a0..ad024a34 100644
--- a/templates/devel/index.html
+++ b/templates/devel/index.html
@@ -1,5 +1,6 @@
{% extends "base.html" %}
{% load cache %}
+{% load package_extras %}
{% block title %}Parabola - Hacker Dashboard{% endblock %}
@@ -14,8 +15,8 @@
<thead>
<tr>
<th>Name</th>
- <th>Repo</th>
<th>Version</th>
+ <th>Repo</th>
<th>Arch</th>
<th>Flagged</th>
<th>Last Updated</th>
@@ -24,16 +25,15 @@
<tbody>
{% for pkg in flagged %}
<tr class="{% cycle 'odd' 'even' %}">
- <td><a href="{{ pkg.get_absolute_url }}"
- title="View package details for {{ pkg.pkgname }}">{{ pkg.pkgname }}</a></td>
- <td>{{ pkg.repo.name }}</td>
+ <td>{% pkg_details_link pkg %}</td>
<td>{{ pkg.full_version }}</td>
+ <td>{{ pkg.repo.name }}</td>
<td>{{ pkg.arch.name }}</td>
<td>{{ pkg.flag_date|date }}</td>
<td>{{ pkg.last_update|date }}</td>
</tr>
{% empty %}
- <tr class="empty"><td colspan="4"><em>No flagged packages to display</em></td></tr>
+ <tr class="empty"><td colspan="6"><em>No flagged packages to display</em></td></tr>
{% endfor %}
</tbody>
</table>
@@ -55,8 +55,7 @@
<tr class="{% cycle 'odd' 'even' %}">
<td><a href="{{ todopkg.list.get_absolute_url }}"
title="View todo list: {{ todopkg.list.name }}">{{ todopkg.list.name }}</a></td>
- <td><a href="{{ todopkg.pkg.get_absolute_url }}"
- title="View package details for {{ todopkg.pkg.pkgname }}">{{ todopkg.pkg.pkgname }}</a></td>
+ <td>{% pkg_details_link todopkg.pkg %}</td>
<td>{{ todopkg.pkg.repo.name }}</td>
<td>{{ todopkg.pkg.arch.name }}</td>
<td>{{ todopkg.pkg.maintainers|join:', ' }}</td>
@@ -79,7 +78,6 @@
<th>Package Count</th>
<th>Incomplete Count</th>
</tr>
- </tr>
</thead>
<tbody>
{% for todo in todos %}
@@ -93,7 +91,50 @@
<td>{{ todo.incomplete_count }}</td>
</tr>
{% empty %}
- <tr class="empty"><td colspan="3"><em>No package todo lists to display</em></td></tr>
+ <tr class="empty"><td colspan="6"><em>No package todo lists to display</em></td></tr>
+ {% endfor %}
+ </tbody>
+ </table>
+
+ <h3>Signoff Status</h3>
+
+ <table id="dash-signoffs" class="results">
+ <thead>
+ <tr>
+ <th>Name</th>
+ <th>Version</th>
+ <th>Arch</th>
+ <th>Target Repo</th>
+ <th>Last Updated</th>
+ <th>Approved</th>
+ <th>Signoffs</th>
+ </tr>
+ </thead>
+ <tbody>
+ {% for group in signoffs %}
+ <tr class="{% cycle 'odd' 'even' %}">
+ <td>{% pkg_details_link group.package %}</td>
+ <td>{{ group.version }}</td>
+ <td>{{ group.arch.name }}</td>
+ <td>{{ group.target_repo }}</td>
+ <td>{{ 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><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></td>
+ </tr>
+ {% empty %}
+ <tr class="empty"><td colspan="7"><em>No packages you maintain or have packaged need signoffs</em></td></tr>
{% endfor %}
</tbody>
</table>
@@ -136,6 +177,7 @@
<th class="key">Arch</th>
<th># Packages</th>
<th># Flagged</th>
+ <th># Signed</th>
</tr>
</thead>
<tbody>
@@ -148,6 +190,8 @@
<td><a href="/packages/?arch={{ arch.name }}&amp;flagged=Flagged"
title="View all flagged packages for the {{ arch.name }} architecture">
<strong>{{ arch.packages.flagged.count }}</strong> packages</a></td>
+
+ <td><strong>{{ arch.packages.signed.count }}</strong> packages</td>
</tr>
{% endfor %}
</tbody>
@@ -166,6 +210,7 @@
<th class="key">Repository</th>
<th># Packages</th>
<th># Flagged</th>
+ <th># Signed</th>
</tr>
</thead>
<tbody>
@@ -178,6 +223,7 @@
<td><a href="/packages/?repo={{ repo.name }}&amp;flagged=Flagged"
title="View all flagged packages in the {{ repo.name }} repository">
<strong>{{ repo.packages.flagged.count }}</strong> packages</a></td>
+ <td><strong>{{ repo.packages.signed.count }}</strong> packages</td>
</tr>
{% endfor %}
</tbody>
@@ -252,6 +298,11 @@ $(document).ready(function() {
{widgets: ['zebra'], sortList: [[0,0], [1,0]]});
$("#dash-todo:not(:has(tbody tr.empty))").tablesorter(
{widgets: ['zebra'], sortList: [[1,1]]});
+ $("#dash-signoffs:not(:has(tbody tr.empty))").tablesorter({
+ widgets: ['zebra'],
+ sortList: [[0,0]],
+ headers: { 6: {sorter: false } }
+ });
$(".dash-stats").tablesorter({
widgets: ['zebra'],
sortList: [[0,0]],
diff --git a/templates/devel/packages.html b/templates/devel/packages.html
index 8f149a5c..bd126593 100644
--- a/templates/devel/packages.html
+++ b/templates/devel/packages.html
@@ -1,5 +1,6 @@
{% extends "base.html" %}
{% load attributes %}
+{% load package_extras %}
{% block title %}Parabola - {{ title }}{% endblock %}
@@ -32,8 +33,7 @@
<tr class="{% cycle pkgr2,pkgr1 %}">
<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/mirrors/mirror_details.html b/templates/mirrors/mirror_details.html
index 1b44f65b..0f071b8c 100644
--- a/templates/mirrors/mirror_details.html
+++ b/templates/mirrors/mirror_details.html
@@ -24,16 +24,16 @@
</tr>
<tr>
<th>Has ISOs:</th>
- <td>{{ mirror.isos|yesno }}</td>
+ <td>{{ mirror.isos|yesno|capfirst }}</td>
</tr>
{% if user.is_authenticated %}
<tr>
<th>Public:</th>
- <td>{{ mirror.public|yesno }}</td>
+ <td>{{ mirror.public|yesno|capfirst }}</td>
</tr>
<tr>
<th>Active:</th>
- <td>{{ mirror.active|yesno }}</td>
+ <td>{{ mirror.active|yesno|capfirst }}</td>
</tr>
<tr>
<th>Rsync IPs:</th>
@@ -91,8 +91,8 @@
{% for m_url in urls %}
<tr class="{% cycle 'odd' 'even' %}">
<td>{% if m_url.protocol.is_download %}<a href="{{ m_url.url }}">{{ m_url.url }}</a>{% else %}{{ m_url.url }}{% endif %}</td>
- <td>{{ m_url.has_ipv4|yesno }}</td>
- <td>{{ m_url.has_ipv6|yesno }}</td>
+ <td>{{ m_url.has_ipv4|yesno|capfirst }}</td>
+ <td>{{ m_url.has_ipv6|yesno|capfirst }}</td>
<td>{{ m_url.last_sync|date:'Y-m-d H:i'|default:'unknown' }}</td>
<td>{{ m_url.completion_pct|percentage:1 }}</td>
<td>{{ m_url.delay|duration|default:'unknown' }}</td>
diff --git a/templates/mirrors/mirrors.html b/templates/mirrors/mirrors.html
index 53a68005..c9ab46db 100644
--- a/templates/mirrors/mirrors.html
+++ b/templates/mirrors/mirrors.html
@@ -27,11 +27,11 @@
title="Mirror details for {{ mirror.name }}">{{ mirror.name }}</a></td>
<td>{{mirror.get_tier_display}}</td>
<td>{{mirror.country}}</td>
- <td>{{mirror.isos|yesno}}</td>
+ <td>{{mirror.isos|yesno|capfirst}}</td>
<td class="wrap">{{mirror.supported_protocols|join:", "}}</td>
{% if user.is_authenticated %}
- <td>{{mirror.public|yesno}}</td>
- <td>{{mirror.active|yesno}}</td>
+ <td>{{mirror.public|yesno|capfirst}}</td>
+ <td>{{mirror.active|yesno|capfirst}}</td>
<td>{{mirror.admin_email}}</td>
<td class="wrap">{{mirror.notes|linebreaks}}</td>
{% endif %}
diff --git a/templates/packages/details.html b/templates/packages/details.html
index 068d1f1a..ef501c83 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="download/" 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,6 +147,9 @@
<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|date:"DATETIME_FORMAT" }} UTC</td>
</tr><tr>
@@ -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..d9b5f088 100644
--- a/templates/packages/differences.html
+++ b/templates/packages/differences.html
@@ -65,7 +65,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.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..4bb23b85 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"
- title="Visit the dev mailing list">Parabola Development mailing list</a>
+ an email to the <a href="http://mailman.archlinux.org/mailman/listinfo/arch-general"
+ title="Visit the arch-general mailing list">arch-general 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="https://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 ebb14608..62080d62 100644
--- a/templates/packages/flag_confirmed.html
+++ b/templates/packages/flag_confirmed.html
@@ -1,20 +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>
- <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><a href="{{ pkg.get_absolute_url }}"
- title="Package details for {{package.pkgname}}">{{ pkg.pkgname }} {{ pkg.full_version }}</a> [{{ 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/packages_list.html b/templates/packages/packages_list.html
index 13b8caba..ed376705 100644
--- a/templates/packages/packages_list.html
+++ b/templates/packages/packages_list.html
@@ -1,4 +1,6 @@
{% extends "base.html" %}
+{% load package_extras %}
+
{% block title %}Parabola - {{ name }} ({{ arch.name }}) - {{ list_title }}{% endblock %}
{% block navbarclass %}anb-packages{% endblock %}
@@ -23,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..2a314853 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 %}
@@ -168,7 +170,7 @@
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 53e9e46d..125b3611 100644
--- a/templates/packages/signoffs.html
+++ b/templates/packages/signoffs.html
@@ -1,4 +1,6 @@
{% extends "base.html" %}
+{% load package_extras %}
+
{% block title %}Parabola - Package Signoffs{% endblock %}
{% block navbarclass %}anb-packages{% endblock %}
@@ -7,48 +9,71 @@
<h2>Package Signoffs</h2>
- <p>{{ signoff_groups|length }} signoff group{{ signoff_groups|pluralize }} found.
+ <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 Base</th>
+ <th>Target Repo</th>
+ <th>Packager</th>
<th># of Packages</th>
- <th>Version</th>
<th>Last Updated</th>
- <th>Target Repo</th>
<th>Approved</th>
- <th>Signoff</th>
+ <th>Signoffs</th>
+ <th>Notes</th>
</tr>
</thead>
- <tbody>
+ <tbody id="tbody_signoffs">
{% for group in signoff_groups %}
- {% with group.package as pkg %}
- <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>{{ group.packages|length }}</td>
- <td>{{ pkg.full_version }}</td>
- <td>{{ pkg.last_update|date }}</td>
+ <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 class="signoff-{{group.approved|yesno}}">
- {{ group.approved|yesno:"Yes,No" }}</td>
- <td>
- <ul>
- <li><a class="signoff-link" href="{{ pkg.get_absolute_url }}signoff/"
- title="Signoff {{ pkg.pkgname }} for {{ pkg.arch }}">Signoff</a>
- </li>
- {% 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>
- </td>
+ <td>{{ group.packager|default:"Unknown" }}</td>
+ <td>{{ group.packages|length }}</td>
+ <td>{{ 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>
- {% endwith %}
{% endfor %}
</tbody>
</table>
@@ -59,8 +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: { 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 %}
diff --git a/templates/public/about.html b/templates/public/about.html
index 5c9dc16d..a01a33fe 100644
--- a/templates/public/about.html
+++ b/templates/public/about.html
@@ -57,5 +57,6 @@
</ul>
</div>
+<br /><br />
{% endblock %}
diff --git a/templates/public/developer_list.html b/templates/public/developer_list.html
index 2abbbfe4..5aa4c6b2 100644
--- a/templates/public/developer_list.html
+++ b/templates/public/developer_list.html
@@ -4,7 +4,7 @@
<p>
{% for dev in dev_list %}
<a href="#{{ dev.username }}" title="Jump to profile for {{ dev.get_full_name }}">
- {{ dev.first_name }}{{ dev.last_name.0|capfirst}}</a> &nbsp;&nbsp;
+ {{ dev.first_name }} {{ dev.last_name }}</a> &nbsp;&nbsp;
{% endfor %}
</p>
</div>
@@ -21,7 +21,7 @@
<table class="bio bio-{{ dev.username }}" cellspacing="0">
<tr>
<th>Name:</th>
- <td>{{ dev.get_full_name }}</td>
+ <td>{{ dev.get_full_name }}{% if prof.latin_name %} ({{ prof.latin_name}}){% endif %}</td>
</tr><tr>
<th>Alias:</th>
<td>{{ prof.alias }}</td>
diff --git a/templates/public/download.html b/templates/public/download.html
index 7c123b3f..7a1cd855 100644
--- a/templates/public/download.html
+++ b/templates/public/download.html
@@ -9,7 +9,8 @@
<h2>Parabola Downloads</h2>
- {% with "2010.12.29" as version %} <h3>Release Info</h3>
+ {% with "2010.12.29" as version %}
+ <h3>Release Info</h3>
<p>All available images can be burned to a CD, mounted as an ISO file,
or be directly written to a USB stick using a utility like `dd`. These
@@ -89,35 +90,22 @@
<td class="wrap">
Downloads and installs packages versions via FTP for absolute freshness.
</td>
- </tr>
- <tr>
+ </tr><tr>
<td>
Core Image
- </td>
-
- <td class="cpu-arch">
+ </td><td class="cpu-arch">
<a href="http://repo.parabolagnulinux.org/isos/i686/parabola-{{version}}-core-i686.iso.torrent"
title="Download for i686 architecture">Download</a>
- </td>
-
- <td class="cpu-arch">
+ </td><td class="cpu-arch">
<a href="http://repo.parabolagnulinux.org/isos/x86_64/parabola-{{version}}-core-x86_64.iso.torrent"
title="Download for x86-64 architecture">Download</a>
- </td>
-
- <td class="magnet-link">
- <a
- href="magnet:?xt=urn:btih:d9bb9f9641a222d2d302988da95225f570bcdb6d&dn=parabola-2010.12.29-core-i686.iso&tr=http%3A%2F%2Ftracker.publicbt.com%2Fannounce"
+ </td><td class="magnet-link">
+ <a href="magnet:?xt=urn:btih:d9bb9f9641a222d2d302988da95225f570bcdb6d&dn=parabola-2010.12.29-core-i686.iso&tr=http%3A%2F%2Ftracker.publicbt.com%2Fannounce"
title="Magnet Link for ISO image">i686 Magnet</a>
- </td>
-
- <td class="magnet-link">
- <a
- href="magnet:?xt=urn:btih:fae6de60f0dfa703165e94df5a77e9bd607ef4cf&dn=parabola-2010.12.29-core-x86_64.iso&tr=http%3A%2F%2Ftracker.publicbt.com%2Fannounce"
+ </td><td class="magnet-link">
+ <a href="magnet:?xt=urn:btih:fae6de60f0dfa703165e94df5a77e9bd607ef4cf&dn=parabola-2010.12.29-core-x86_64.iso&tr=http%3A%2F%2Ftracker.publicbt.com%2Fannounce"
title="Magnet Link for ISO image">x86_64 Magnet</a>
- </td>
-
- <td class="wrap">
+ </td><td class="wrap">
Core packages are included on the media. Good for basic off-line installation.
</td>
</tr>
diff --git a/templates/public/index.html b/templates/public/index.html
index 6254d7b0..3805b997 100644
--- a/templates/public/index.html
+++ b/templates/public/index.html
@@ -33,17 +33,40 @@
<div id="news">
- <h3>Latest News <span class="more">(<a href="{% url news-list %}"
- title="Browse the news archives">more</a>)</span></h3>
+ <h3>
+ <a href="{% url news-list %}" title="Browse the news archives">Latest News</a>
+ <span class="arrow"></span>
+ </h3>
<a href="/feeds/news/" title="Parabola News RSS Feed"
class="rss-icon"><img src="{% cdnprefix %}/media/rss.png" alt="RSS Feed" /></a>
{% for news in news_updates %}
- <h4><a href="{{ news.get_absolute_url }}"
- title="View full article: {{ news.title }}">{{ news.title }}</a></h4>
+ {% if forloop.counter0 < 5 %}
+ <h4>
+ <a href="{{ news.get_absolute_url }}"
+ title="View full article: {{ news.title }}">{{ news.title }}</a>
+ </h4>
<p class="timestamp">{{ news.postdate|date }}</p>
<div class="article-content">{{ news.content|markdown|truncatewords_html:75 }}</div>
+ {% else %}
+ {% if forloop.counter0 == 5 %}
+ <h3>
+ <a href="{% url news-list %}"
+ title="Browse the news archives">Older News</a>
+ <span class="arrow"></span>
+ </h3>
+ <dl class="newslist">
+ {% endif %}
+ <dt>{{ news.postdate|date }}</dt>
+ <dd>
+ <a href="{{ news.get_absolute_url }}"
+ title="View full article: {{ news.title }}">{{ news.title }}</a>
+ </dd>
+ {% if forloop.last %}
+ </dl>
+ {% endif %}
+ {% endif %}
{% endfor %}
</div><!-- #news -->
@@ -75,7 +98,7 @@
{% for update in pkg_updates %}
<tr>
<td class="pkg-name"><span class="{{ update.repo|lower }}">{{ update.pkgbase }} {{ update.version }}</span></td>
- <td class="pkg-arch">
+ <td class="pkg-arch">
{% for pkg in update.package_links %}<a href="{{ pkg.get_absolute_url }}"
title="Details for {{ pkg.pkgname }} [{{ pkg.repo|lower }}]">{{ pkg.arch }}</a>{% if not forloop.last %}/{% endif %}{% endfor %}
</td>
@@ -100,27 +123,13 @@
<h4>Community</h4>
<ul>
- <li>
- <a href="http://list.parabolagnulinux.org/listinfo.cgi"
- title="Community and developer mailing lists">Mailing
- Lists</a>
- </li>
-
- <li>
- <a
- href="http://list.parabolagnulinux.org/pipermail/dev-parabolagnulinux.org/"
- title="dev mailing list archives">Dev Archives</a>
- </li>
-
- <li>
- <a href="http://wiki.parabolagnulinux.org/IRC_Channels"
- title="Official and regional IRC communities">IRC Channels</a>
- </li>
-
- <li>
- <a href="http://identi.ca/group/parabola" title="Parabola at
- identi.ca">Identi.ca group</a>
- </li>
+ <li><a href="http://list.parabolagnulinux.org/listinfo.cgi"
+ title="Community and developer mailing lists">Mailing Lists</a></li>
+ <li><a href="http://list.parabolagnulinux.org/pipermail/dev-parabolagnulinux.org/"
+ title="dev mailing list archives">Dev Archives</a></li>
+ <li><a href="http://wiki.parabolagnulinux.org/IRC_Channels"
+ title="Official and regional IRC communities">IRC Channels</a></li>
+ <li><a href="http://identi.ca/group/parabola" title="Parabola at identi.ca">Identi.ca group</a></li>
</ul>
<h4>Support</h4>
diff --git a/templates/public/userlist.html b/templates/public/userlist.html
index 66543191..cfb08d80 100644
--- a/templates/public/userlist.html
+++ b/templates/public/userlist.html
@@ -14,7 +14,6 @@
{% with users as dev_list %}
{% include 'public/developer_list.html' %}
{% endwith %}
-
</div>
{% endcache %}
{% endblock %}
diff --git a/templates/registration/logout.html b/templates/registration/logout.html
index e2e5449c..9b507ec0 100644
--- a/templates/registration/logout.html
+++ b/templates/registration/logout.html
@@ -5,7 +5,7 @@
<div id="dev-logout" class="box">
<h2>Developer Logout</h2>
- <p>Logout was successful.<p>
+ <p>Logout was successful.<p>
</div>
{% endblock %}
diff --git a/templates/releng/iso_overview.html b/templates/releng/iso_overview.html
new file mode 100644
index 00000000..8280f100
--- /dev/null
+++ b/templates/releng/iso_overview.html
@@ -0,0 +1,40 @@
+{% extends "base.html" %}
+
+{% block content %}
+<div class="box">
+ <h2>Failures and Successes for Testing ISOs</h2>
+
+ <p><a href="{% url releng-test-overview %}">Go back to testing results</a></p>
+
+ <table id="releng-result" class="results">
+ <thead>
+ <tr>
+ <th>ISO</th>
+ <th>Currently Available</th>
+ <th># Successes</th>
+ <th># Failures</th>
+ </tr>
+ </thead>
+ <tbody>
+ {% for iso in isos %}
+ <tr>
+ <td>
+ <a href="{{ iso.get_absolute_url }}">{{ iso.name }}</a>
+ </td>
+ <td>{{ iso.active|yesno|capfirst }}</td>
+ <td>{{ iso.successes }}</td>
+ <td>{{ iso.failures }}</td>
+ </tr>
+ {% endfor %}
+ </tbody>
+ </table>
+</div>
+{% load cdn %}{% jquery %}
+<script type="text/javascript" src="/media/jquery.tablesorter.min.js"></script>
+<script type="text/javascript" src="/media/archweb.js"></script>
+<script type="text/javascript">
+$(document).ready(function() {
+ $(".results:not(:has(tbody tr.empty))").tablesorter({widgets: ['zebra']});
+});
+</script>
+{% endblock %}
diff --git a/templates/releng/result_list.html b/templates/releng/result_list.html
index b3ae025b..845d330d 100644
--- a/templates/releng/result_list.html
+++ b/templates/releng/result_list.html
@@ -3,7 +3,7 @@
{% block content %}
<div class="box">
<h2>Results for:
- {% if option %}{{ option|title }}: {{ value }}{% endif %}
+ {% if option %}{{ option.verbose_name|title }}: {{ value }}{% endif %}
{{ iso_name|default:"" }}
</h2>
@@ -12,9 +12,10 @@
<table id="releng-result" class="results">
<thead>
<tr>
- <th>Iso</th>
+ <th>ISO</th>
<th>Submitted By</th>
<th>Date Submitted</th>
+ <th>Architecture</th>
<th>Success</th>
</tr>
</thead>
@@ -24,7 +25,8 @@
<td>{{ test.iso.name }}</td>
<td>{{ test.user_name }}</td>
<td>{{ test.created|date }}</td>
- <td>{{ test.success|yesno }}</td>
+ <td>{{ test.architecture }}</td>
+ <td><span class="success-{{ test.success|yesno }}">{{ test.success|yesno|capfirst }}</span></td>
</tr>
{% endfor %}
</tbody>
diff --git a/templates/releng/thanks.html b/templates/releng/thanks.html
index 984a056d..fdfc4c4a 100644
--- a/templates/releng/thanks.html
+++ b/templates/releng/thanks.html
@@ -8,6 +8,8 @@
<p>Thank you for taking the time to give us this information!
Your results have been succesfully added to our database.</p>
<p>You can now <a href="{% url releng-test-overview %}">go back to the results</a>,
- or <a href="{% url releng-test-submit %}">give more feedback</a>.</p>
+ <a href="{% url releng-test-submit %}">give more feedback</a>, or
+ have a look at the <a href="{% url releng-iso-overview %}">look at
+ the ISO test overview</a>.</p>
</div>
{% endblock %}
diff --git a/templates/todolists/email_notification.txt b/templates/todolists/email_notification.txt
index 10b50f64..8b22b465 100644
--- a/templates/todolists/email_notification.txt
+++ b/templates/todolists/email_notification.txt
@@ -1,10 +1,11 @@
-{% autoescape off %}The todo list {{ todolist.name }} has had the following packages added to it for which you are a maintainer:
+{% autoescape off %}The todo list "{{ todolist.name }}" has had the following packages added to it for which you are a maintainer:
{% for tpkg in todo_packages %}
* {{ tpkg.pkg.repo.name|lower }}/{{ tpkg.pkg.pkgname }} ({{ tpkg.pkg.arch.name }}) - {{ tpkg.pkg.get_full_url }}{% endfor %}
Todo list information:
-Creator: {{todolist.creator.get_full_name}}
-Name: {{todolist.name}}
+Name: {{ todolist.name }}
+URL: {{ todolist.get_full_url }}
+Creator: {{ todolist.creator.get_full_name }}
Description:
-{{todolist.description|striptags|wordwrap:69}}{% endautoescape %}
+{{ todolist.description|striptags|wordwrap:78 }}{% endautoescape %}
diff --git a/templates/todolists/public_list.html b/templates/todolists/public_list.html
index ceb001de..fcb77c65 100644
--- a/templates/todolists/public_list.html
+++ b/templates/todolists/public_list.html
@@ -1,4 +1,5 @@
{% extends "base.html" %}
+{% load package_extras %}
{% block title %}Parabola - Todo Lists{% endblock %}
@@ -43,8 +44,7 @@
<tbody>
{% for pkg in list.packages %}
<tr class="{% cycle 'odd' 'even' %}">
- <td><a href="{{ pkg.pkg.get_absolute_url }}"
- title="View package details for {{ pkg.pkg.pkgname }}">{{ pkg.pkg.pkgname }}</a></td>
+ <td>{% pkg_details_link pkg.pkg %}</td>
<td>{{ pkg.pkg.arch.name }}</td>
<td>{{ pkg.pkg.repo.name|capfirst }}</td>
<td>{{ pkg.pkg.maintainers|join:', ' }}</td>
diff --git a/templates/todolists/view.html b/templates/todolists/view.html
index d4f5a08d..d48c362d 100644
--- a/templates/todolists/view.html
+++ b/templates/todolists/view.html
@@ -27,15 +27,14 @@
<th>Name</th>
<th>Arch</th>
<th>Repo</th>
- <th>Maintainer</th>
+ <th>Maintainers</th>
<th>Status</th>
</tr>
</thead>
<tbody>
{% for pkg in list.packages %}
<tr class="{% cycle 'odd' 'even' %}">
- <td><a href="{{ pkg.pkg.get_absolute_url }}"
- title="View package details for {{ pkg.pkg.pkgname }}">{{ pkg.pkg.pkgname }}</a></td>
+ <td>{% pkg_details_link pkg.pkg %}</td>
<td>{{ pkg.pkg.arch.name }}</td>
<td>{{ pkg.pkg.repo.name|capfirst }}</td>
<td>{{ pkg.pkg.maintainers|join:', ' }}</td>
diff --git a/templates/visualize/index.html b/templates/visualize/index.html
new file mode 100644
index 00000000..99525e69
--- /dev/null
+++ b/templates/visualize/index.html
@@ -0,0 +1,43 @@
+{% extends "base.html" %}
+
+{% block title %}Arch Linux - Visualizations{% endblock %}
+
+{% block content %}
+<div class="box">
+
+ <h2>Visualizations of Packaging Data</h2>
+
+ <h3>Package Treemap</h3>
+
+ <div class="visualize-buttons">
+ <div>
+ <span>Scale Using:</span>
+ <button id="visualize-archrepo-count" class="visualize-archrepo-scaleby active">Package Count</button>
+ <button id="visualize-archrepo-flagged" class="visualize-archrepo-scaleby">Flagged</button>
+ <button id="visualize-archrepo-csize" class="visualize-archrepo-scaleby">Compressed Size</button>
+ <button id="visualize-archrepo-isize" class="visualize-archrepo-scaleby">Installed Size</button>
+ </div>
+ <div>
+ <span>Group By:</span>
+ <button id="visualize-archrepo-repo" class="visualize-archrepo-groupby active">Repository</button>
+ <button id="visualize-archrepo-arch" class="visualize-archrepo-groupby">Architecture</button>
+ </div>
+ </div>
+ <div id="visualize-archrepo" class="visualize-chart"></div>
+</div>
+
+{% load cdn %}{% jquery %}
+<script type="text/javascript" src="/media/d3.min.js"></script>
+<script type="text/javascript" src="/media/d3.layout.min.js"></script>
+<script type="text/javascript" src="/media/archweb.js"></script>
+<script type="text/javascript" src="/media/visualize.js"></script>
+<script type="text/javascript">
+$(document).ready(function() {
+ var orderings = {
+ "repo": { url: "{% url visualize-byrepo %}", color_attr: "repo" },
+ "arch": { url: "{% url visualize-byarch %}", color_attr: "arch" },
+ };
+ packages_treemap("#visualize-archrepo", orderings, "repo");
+});
+</script>
+{% endblock %}