summaryrefslogtreecommitdiff
path: root/templates
diff options
context:
space:
mode:
Diffstat (limited to 'templates')
-rw-r--r--templates/devel/index.html50
-rw-r--r--templates/devel/packages.html58
-rw-r--r--templates/feeds/news_description.html2
-rw-r--r--templates/feeds/news_title.html2
-rw-r--r--templates/feeds/packages_description.html2
-rw-r--r--templates/feeds/packages_title.html2
-rw-r--r--templates/mirrors/mirror_details.html111
-rw-r--r--templates/mirrors/mirrorlist.txt2
-rw-r--r--templates/mirrors/mirrorlist_status.txt2
-rw-r--r--templates/mirrors/mirrors.html2
-rw-r--r--templates/mirrors/status.html9
-rw-r--r--templates/mirrors/status_table.html2
-rw-r--r--templates/packages/details.html9
-rw-r--r--templates/packages/flag.html28
-rw-r--r--templates/packages/flag_confirmed.html19
-rw-r--r--templates/packages/outofdate.txt8
-rw-r--r--templates/packages/stale_relations.html6
-rw-r--r--templates/public/index.html16
-rw-r--r--templates/releng/add.html27
-rw-r--r--templates/releng/result_list.html41
-rw-r--r--templates/releng/result_section.html28
-rw-r--r--templates/releng/results.html29
-rw-r--r--templates/releng/thanks.html13
-rw-r--r--templates/todolists/email_notification.txt2
24 files changed, 382 insertions, 88 deletions
diff --git a/templates/devel/index.html b/templates/devel/index.html
index 11f73f3a..5913cdde 100644
--- a/templates/devel/index.html
+++ b/templates/devel/index.html
@@ -1,5 +1,7 @@
{% extends "base.html" %}
-{% block title %}Parabola - Developer Dashboard{% endblock %}
+{% load cache %}
+
+{% block title %}Parabola - Hacker Dashboard{% endblock %}
{% block content %}
<div id="dev-dashboard" class="box">
@@ -72,25 +74,44 @@
<tr>
<th>Name</th>
<th>Creation Date</th>
+ <th>Creator</th>
<th>Description</th>
+ <th>Package Count</th>
+ <th>Incomplete Count</th>
+ </tr>
</tr>
</thead>
<tbody>
{% for todo in todos %}
- <tr class="{% cycle 'odd' 'even' %}">
- <td><a href="{{ todo.get_absolute_url }}"
- title="View todo list: {{ todo.name }}">{{ todo.name }}</a></td>
- <td>{{ todo.date_added|date }}</td>
- <td class="wrap">{{ todo.description|urlize }}</td>
- </tr>
+ <tr class="{% cycle 'odd' 'even' %}">
+ <td><a href="{{ todo.get_absolute_url }}"
+ title="View todo list: {{ todo.name }}">{{ todo.name }}</a></td>
+ <td>{{ todo.date_added|date }}</td>
+ <td>{{ todo.creator.get_full_name }}</td>
+ <td class="wrap">{{ todo.description|urlize }}</td>
+ <td>{{ todo.pkg_count }}</td>
+ <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="3"><em>No package todo lists to display</em></td></tr>
{% endfor %}
</tbody>
</table>
+ <h3>Developer Reports</h3>
+ <ul>
+ <li><a href="reports/big/">Big</a>: All packages with compressed size &gt; 50 MiB</li>
+ <li><a href="reports/old/">Old</a>: Packages last built more than two years ago</li>
+ <li><a href="reports/uncompressed-man/">Uncompressed Manpages</a>: Self-explanatory</li>
+ <li><a href="reports/uncompressed-info/">Uncompressed Info Pages</a>: Self-explanatory</li>
+ <li><a href="reports/unneeded-orphans/">Unneeded Orphans</a>: Packages
+ that have no maintainer and are not required by any other package in
+ any repository</li>
+ </ul>
+
</div><!-- #dev-dashboard -->
+{% cache 60 dev-dash-by-arch %}
<div id="dash-by-arch" class="box">
<h2>Stats by Architecture</h2>
@@ -117,9 +138,10 @@
{% endfor %}
</tbody>
</table>
+</div>{# #dash-by-arch #}
+{% endcache %}
-</div><!-- #dash-by-arch -->
-
+{% cache 60 dev-dash-by-repo %}
<div id="dash-by-repo" class="box">
<h2>Stats by Repository</h2>
@@ -146,9 +168,10 @@
{% endfor %}
</tbody>
</table>
+</div>{# dash-by-arch #}
+{% endcache %}
-</div><!-- dash-by-arch -->
-
+{% cache 60 dev-dash-by-maintainer %}
<div id="dash-by-maintainer" class="box">
<h2>Stats by Maintainer</h2>
@@ -184,8 +207,9 @@
{% endfor %}
</tbody>
</table>
+</div>{# #dash-by-maintainer #}
+{% endcache %}
-</div><!-- #dash-by-maintainer -->
{% load cdn %}{% jquery %}
<script type="text/javascript" src="/media/jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="/media/archweb.js"></script>
diff --git a/templates/devel/packages.html b/templates/devel/packages.html
new file mode 100644
index 00000000..e0988c03
--- /dev/null
+++ b/templates/devel/packages.html
@@ -0,0 +1,58 @@
+{% extends "base.html" %}
+{% load attributes %}
+
+{% block title %}Arch Linux - {{ title }}{% endblock %}
+
+{% block content %}
+<div class="box">
+ <h2>{{ title }}</h2>
+ <p>{{ packages|length }} package{{ packages|pluralize }} found.</p>
+ <table class="results">
+ <thead>
+ <tr>
+ <th>Arch</th>
+ <th>Repo</th>
+ <th>Name</th>
+ <th>Version</th>
+ <th>Description</th>
+ <th>Last Updated</th>
+ <th>Build Date</th>
+ <th>Flag Date</th>
+ {% for name in column_names %}
+ <th>{{ name }}</th>
+ {% endfor %}
+ </tr>
+ </thead>
+ <tbody>
+ {% for pkg in packages %}
+ <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>
+ {% if pkg.flag_date %}
+ <td><span class="flagged">{{ pkg.full_version }}</span></td>
+ {% else %}
+ <td>{{ pkg.full_version }}</td>
+ {% endif %}
+ <td class="wrap">{{ pkg.pkgdesc }}</td>
+ <td>{{ pkg.last_update|date }}</td>
+ <td>{{ pkg.build_date|date }}</td>
+ <td>{{ pkg.flag_date|date }}</td>
+ {% for attr in column_attrs %}
+ <td>{{ pkg|attribute:attr }}</td>
+ {% endfor %}
+ </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").tablesorter({widgets: ['zebra']});
+});
+</script>
+{% endblock %}
diff --git a/templates/feeds/news_description.html b/templates/feeds/news_description.html
index a1e6446f..e75d0af7 100644
--- a/templates/feeds/news_description.html
+++ b/templates/feeds/news_description.html
@@ -1,3 +1,3 @@
{% load markup %}
<p>{{obj.author.get_full_name}} wrote:</p>
-{{ obj.content|markdown }}
+{{ obj.content|markdown }} \ No newline at end of file
diff --git a/templates/feeds/news_title.html b/templates/feeds/news_title.html
index d355de5b..7899fce3 100644
--- a/templates/feeds/news_title.html
+++ b/templates/feeds/news_title.html
@@ -1 +1 @@
-{{ obj.title }}
+{{ obj.title }} \ No newline at end of file
diff --git a/templates/feeds/packages_description.html b/templates/feeds/packages_description.html
index 6b9c47b3..cfc42616 100644
--- a/templates/feeds/packages_description.html
+++ b/templates/feeds/packages_description.html
@@ -1 +1 @@
-{{ obj.pkgdesc }}
+{{ obj.pkgdesc }} \ No newline at end of file
diff --git a/templates/feeds/packages_title.html b/templates/feeds/packages_title.html
index 5c54ba65..f92ac684 100644
--- a/templates/feeds/packages_title.html
+++ b/templates/feeds/packages_title.html
@@ -1 +1 @@
-{{ obj.pkgname }} {{ obj.full_version }} {{ obj.arch.name }}
+{{ obj.pkgname }} {{ obj.full_version }} {{ obj.arch.name }} \ No newline at end of file
diff --git a/templates/mirrors/mirror_details.html b/templates/mirrors/mirror_details.html
index 2edc61d4..1b44f65b 100644
--- a/templates/mirrors/mirror_details.html
+++ b/templates/mirrors/mirror_details.html
@@ -1,4 +1,5 @@
{% extends "base.html" %}
+{% load mirror_status %}
{% block title %}Parabola - {{ mirror.name }} - Mirror Details{% endblock %}
@@ -12,47 +13,105 @@
<tr>
<th>Name:</th>
<td>{{ mirror.name }}</td>
- </tr><tr>
+ </tr>
+ <tr>
<th>Tier:</th>
<td>{{ mirror.get_tier_display }}</td>
- </tr><tr>
+ </tr>
+ <tr>
+ <th>Country:</th>
+ <td>{{ mirror.country }}</td>
+ </tr>
+ <tr>
+ <th>Has ISOs:</th>
+ <td>{{ mirror.isos|yesno }}</td>
+ </tr>
+ {% if user.is_authenticated %}
+ <tr>
+ <th>Public:</th>
+ <td>{{ mirror.public|yesno }}</td>
+ </tr>
+ <tr>
+ <th>Active:</th>
+ <td>{{ mirror.active|yesno }}</td>
+ </tr>
+ <tr>
+ <th>Rsync IPs:</th>
+ <td class="wrap">{{mirror.rsync_ips.all|join:', '}}</td>
+ </tr>
+ <tr>
+ <th>Admin Email:</th>
+ <td>{% if mirror.admin_email %}<a href="mailto:{{ mirror.admin_email }}">{{ mirror.admin_email }}</a>{% else %}None{% endif %}</td>
+ </tr>
+ <tr>
+ <th>Notes:</th>
+ <td>{{ mirror.notes|linebreaks }}</td>
+ </tr>
+ <tr>
<th>Upstream:</th>
- <!-- TODO: linking to non-public mirrors -->
<td>{% if mirror.upstream %}
<a href="{{ mirror.upstream.get_absolute_url }}"
title="Mirror details for {{ mirror.upstream.name }}">{{ mirror.upstream.name }}</a>
{% else %}None{% endif %}</td>
- </tr><tr>
+ </tr>
+ <tr>
<th>Downstream:</th>
{% with mirror.downstream as ds_mirrors %}
<td>{% if ds_mirrors %}
{% for ds in ds_mirrors %}
<a href="{{ ds.get_absolute_url }}"
- title="Mirror details for {{ ds.name }}">{{ ds.name }}</a><br/>
+ title="Mirror details for {{ ds.name }}">{{ ds.name }}</a>
+ {% if not ds.active %}<span class="testing-dep">(inactive)</span>{% endif %}
+ {% if not ds.public %}<span class="testing-dep">(private)</span>{% endif %}
+ <br/>
{% endfor %}
- {% else %}None{% endif %}
- </td>
- {% endwith %}
- </tr><tr>
- <th>Country:</th>
- <td>{{ mirror.country }}</td>
- </tr><tr>
- <th>Has ISOs:</th>
- <td>{{ mirror.isos|yesno }}</td>
- </tr><tr>
- <th>Protocols:</th>
- <td>{{ mirror.supported_protocols }}</td>
- </tr><tr>
- <th>Mirror URLs:</th>
- {% with mirror.urls.all as urls %}
- <td>{% if urls %}
- {% for u in urls %}
- <a href="{{ u.url }}">{{ u.url }}</a><br/>
- {% endfor %}
- {% else %}None{% endif %}
- </td>
+ {% else %}None{% endif %}</td>
{% endwith %}
</tr>
+ {% endif %}
+ </table>
+
+ <h3>Available URLs</h3>
+
+ <table id="available_urls" class="results">
+ <thead>
+ <tr>
+ <th>Mirror URL</th>
+ <th>IPv4</th>
+ <th>IPv6</th>
+ <th>Last Sync</th>
+ <th>Completion %</th>
+ <th>μ Delay (hh:mm)</th>
+ <th>μ Duration (secs)</th>
+ <th>σ Duration (secs)</th>
+ <th>Mirror Score</th>
+ </tr>
+ </thead>
+ <tbody>
+ {% 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.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>
+ <td>{{ m_url.duration_avg|floatformat:2 }}</td>
+ <td>{{ m_url.duration_stddev|floatformat:2 }}</td>
+ <td>{{ m_url.score|floatformat:1|default:'∞' }}</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() {
+ $("#available_urls:has(tbody tr)").tablesorter(
+ {widgets: ['zebra'], sortList: [[0,0]],
+ headers: { 6: { sorter: 'mostlydigit' }, 7: { sorter: 'mostlydigit' }, 8: { sorter: 'mostlydigit' } } });
+});
+</script>
{% endblock %}
diff --git a/templates/mirrors/mirrorlist.txt b/templates/mirrors/mirrorlist.txt
index c5197e91..b91c52a2 100644
--- a/templates/mirrors/mirrorlist.txt
+++ b/templates/mirrors/mirrorlist.txt
@@ -8,6 +8,6 @@ content right, and then go back later to fix it all up.
## Generated on {% now "Y-m-d" %}
##{% for mirror_url in mirror_urls %}{% ifchanged %}
-## {{ mirror_url.mirror.country }}{% endifchanged %}
+## {{ mirror_url.real_country }}{% endifchanged %}
#Server = {{ mirror_url.url}}$repo/os/$arch{% endfor %}
{% endautoescape %}
diff --git a/templates/mirrors/mirrorlist_status.txt b/templates/mirrors/mirrorlist_status.txt
index dbc03911..5bf94287 100644
--- a/templates/mirrors/mirrorlist_status.txt
+++ b/templates/mirrors/mirrorlist_status.txt
@@ -8,6 +8,6 @@ content right, and then go back later to fix it all up.
## Sorted by mirror score from mirror status page
## Generated on {% now "Y-m-d" %}
{% for mirror_url in mirror_urls %}
-## Score: {{ mirror_url.score|floatformat:1|default:'unknown' }}, {{ mirror_url.mirror.country }}
+## Score: {{ mirror_url.score|floatformat:1|default:'unknown' }}, {{ mirror_url.real_country }}
#Server = {{ mirror_url.url}}$repo/os/$arch{% endfor %}
{% endautoescape %}
diff --git a/templates/mirrors/mirrors.html b/templates/mirrors/mirrors.html
index 7562cb6f..41cca6fa 100644
--- a/templates/mirrors/mirrors.html
+++ b/templates/mirrors/mirrors.html
@@ -15,7 +15,6 @@
{% if user.is_authenticated %}
<th>Public</th>
<th>Active</th>
- <th>Rsync IPs</th>
<th>Admin Email</th>
<th>Notes</th>
{% endif %}
@@ -33,7 +32,6 @@
{% if user.is_authenticated %}
<td>{{mirror.public|yesno}}</td>
<td>{{mirror.active|yesno}}</td>
- <td class="wrap">{{mirror.rsync_ips.all|join:', '}}</td>
<td>{{mirror.admin_email}}</td>
<td class="wrap">{{mirror.notes|linebreaks}}</td>
{% endif %}
diff --git a/templates/mirrors/status.html b/templates/mirrors/status.html
index cd56f8f9..f315f7c3 100644
--- a/templates/mirrors/status.html
+++ b/templates/mirrors/status.html
@@ -91,7 +91,7 @@
<tr class="{% cycle 'odd' 'even' %}">
<td>{{ log.url__url }}</td>
<td>{{ log.url__protocol__protocol }}</td>
- <td>{{ log.url__mirror__country }}</td>
+ <td>{{ log.country }}</td>
<td>{{ log.error }}</td>
<td>{{ log.last_occurred|date:'Y-m-d H:i' }}</td>
<td>{{ log.error_count }}</td>
@@ -106,12 +106,11 @@
<script type="text/javascript" src="/media/archweb.js"></script>
<script type="text/javascript">
$(document).ready(function() {
+ var headers = { 5: { sorter: 'duration' }, 6: { sorter: 'mostlydigit' }, 7: { sorter: 'mostlydigit' }, 8: { sorter: 'mostlydigit' } };
$("#outofsync_mirrors:has(tbody tr)").tablesorter(
- {widgets: ['zebra'], sortList: [[3,1]],
- headers: { 6: { sorter: 'mostlydigit' }, 7: { sorter: 'mostlydigit' }, 8: { sorter: 'mostlydigit' } } });
+ {widgets: ['zebra'], sortList: [[3,1]], headers: headers });
$("#successful_mirrors:has(tbody tr)").tablesorter(
- {widgets: ['zebra'], sortList: [[8,0]],
- headers: { 6: { sorter: 'mostlydigit' }, 7: { sorter: 'mostlydigit' }, 8: { sorter: 'mostlydigit' } } });
+ {widgets: ['zebra'], sortList: [[8,0]], headers: headers });
$("#errorlog_mirrors:has(tbody tr)").tablesorter(
{widgets: ['zebra'], sortList: [[4,1], [5,1]]});
});
diff --git a/templates/mirrors/status_table.html b/templates/mirrors/status_table.html
index 240a5452..72de25dc 100644
--- a/templates/mirrors/status_table.html
+++ b/templates/mirrors/status_table.html
@@ -18,7 +18,7 @@
<tr class="{% cycle 'odd' 'even' %}">
<td>{{ m_url.url }}</td>
<td>{{ m_url.protocol }}</td>
- <td>{{ m_url.mirror.country }}</td>
+ <td>{{ m_url.real_country }}</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/packages/details.html b/templates/packages/details.html
index 83673867..a8b2346e 100644
--- a/templates/packages/details.html
+++ b/templates/packages/details.html
@@ -15,9 +15,10 @@
<div id="actionlist">
<h4>Package Actions</h4>
<ul class="small">
- <li><a href="{{ pkg.get_arch_svn_link }}" title="View SVN entries in the {{pkg.repo|lower}}-{{pkg.arch}} branch">SVN Entries ({{pkg.repo|lower}}-{{pkg.arch}})</a></li>
- <li><a href="{{ pkg.get_trunk_svn_link }}" title="View SVN entries on trunk">SVN Entries (trunk)</a></li>
- <li><a href="{{ pkg.get_bugs_link }}" title="View existing bug tickets for {{ pkg.pkgname }}">Bug Reports</a></li>
+ <li><a href="{% svn_arch pkg %}" title="View SVN entries in the {{pkg.repo|lower}}-{{pkg.arch}} branch">SVN Entries ({{pkg.repo|lower}}-{{pkg.arch}})</a></li>
+ <li><a href="{% svn_trunk pkg %}" title="View SVN entries on trunk">SVN Entries (trunk)</a></li>
+ <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>
{% 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 %}
@@ -103,7 +104,7 @@
{% endifequal %}
<tr>
<th>Description:</th>
- <td class="wrap">{% if pkg.pkgdesc %}{{ pkg.pkgdesc }}{% endif %}</td>
+ <td class="wrap">{{ pkg.pkgdesc|default:"" }}</td>
</tr><tr>
<th>Upstream URL:</th>
<td>{% if pkg.url %}<a href="{{ pkg.url }}"
diff --git a/templates/packages/flag.html b/templates/packages/flag.html
index 52c0444c..74f6982c 100644
--- a/templates/packages/flag.html
+++ b/templates/packages/flag.html
@@ -1,23 +1,22 @@
{% extends "base.html" %}
-{% block title %}Parabola - Flag Package - {{ pkg.pkgname }}{% endblock %}
+{% block title %}Parabola - Flag Package - {{ package.pkgname }}{% endblock %}
{% block navbarclass %}anb-packages{% endblock %}
{% block content %}
<div id="pkg-flag" class="box">
-{% if confirmed %}
- <h2>Package Flagged</h2>
-
- <p>Thank you, the maintainers have been notified about <strong>{{ pkg.pkgname }}</strong>.</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>
-{% else %}
- <h2>Flag Package: {{ pkg.pkgname }}</h2>
+ <h2>Flag Package: {{ package.pkgname }}</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>
+ <p>Note that all of the following packages 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>
+ {% 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
@@ -26,17 +25,16 @@
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 href="https://bugs.parabolagnulinux.org"
- title="Parabola Bugtracker">bug tracker</a> instead.</p>
+ package is broken! Please <a href="https://bugs.parabolagnulinux.org"
+ title="Parabola Bugtracker">file a bug</a> instead.</p>
- <p>Please confirm your flag request for {{pkg.pkgname}}:</p>
+ <p>Please confirm your flag request for {{package.pkgname}}:</p>
<form id="flag-pkg-form" method="post">{% csrf_token %}
<fieldset>
{{ form.as_p }}
</fieldset>
- <p><label></label> <input title="Flag {{ pkg.pkgname }} as out-of-date" type="submit" value="Flag Package" /></p>
+ <p><label></label> <input title="Flag {{ package.pkgname }} as out-of-date" type="submit" value="Flag Package" /></p>
</form>
-{% endif %}
</div>
{% endblock %}
diff --git a/templates/packages/flag_confirmed.html b/templates/packages/flag_confirmed.html
new file mode 100644
index 00000000..02c24f72
--- /dev/null
+++ b/templates/packages/flag_confirmed.html
@@ -0,0 +1,19 @@
+{% extends "base.html" %}
+{% block title %}Arch Linux - Package Flagged - {{ package.pkgname }}{% 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>
+ <ul>
+ {% for pkg in packages %}
+ <li>{{ pkg.pkgname }} {{ 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>
+</div>
+{% endblock %}
diff --git a/templates/packages/outofdate.txt b/templates/packages/outofdate.txt
index 93abea03..4876c316 100644
--- a/templates/packages/outofdate.txt
+++ b/templates/packages/outofdate.txt
@@ -1,9 +1,7 @@
-{% autoescape off %}{{ email }} wants to notify you that the following package may be out-of-date:
+{% autoescape off %}{{ email }} wants to notify you that the following packages may be out-of-date:
- Package Name: {{ pkg.pkgname }}
- Architecture: {{ pkg.arch.name }}
- Repository: {{ pkg.repo.name }}
- ({{ weburl }})
+{% for p in packages %}
+* {{ p.pkgname }} {{ p.full_version }} [{{ p.repo.name|lower }}] ({{ p.arch.name }}): {{ p.get_full_url }}{% endfor %}
{% if message %}
The user provided the following additional text:
diff --git a/templates/packages/stale_relations.html b/templates/packages/stale_relations.html
index 8e2f8930..d51f7e44 100644
--- a/templates/packages/stale_relations.html
+++ b/templates/packages/stale_relations.html
@@ -17,6 +17,7 @@
<th>Packages</th>
<th>User</th>
<th>Type</th>
+ <th>Created</th>
</tr>
</thead>
<tbody>
@@ -30,6 +31,7 @@
{% endfor %}</td>
<td>{{ relation.user.get_full_name }}</td>
<td>{{ relation.get_type_display }}</td>
+ <td>{{ relation.created }}</td>
</tr>
{% empty %}
<tr class="empty"><td colspan="5"><em>No inactive user relations.</em></td></tr>
@@ -46,6 +48,7 @@
<th>Package Base</th>
<th>User</th>
<th>Type</th>
+ <th>Created</th>
</tr>
</thead>
<tbody>
@@ -55,6 +58,7 @@
<td>{{ relation.pkgbase }}</td>
<td>{{ relation.user.get_full_name }}</td>
<td>{{ relation.get_type_display }}</td>
+ <td>{{ relation.created }}</td>
</tr>
{% empty %}
<tr class="empty"><td colspan="4"><em>No non-existent pkgbase relations.</em></td></tr>
@@ -71,6 +75,7 @@
<th>Package Base</th>
<th>Packages</th>
<th>User</th>
+ <th>Created</th>
<th>Allowed Repos</th>
<th>Currently in Repos</th>
</tr>
@@ -85,6 +90,7 @@
title="View package details for {{ pkg.pkgname }}">{{ pkg.repo|lower }}/{{ pkg.pkgname }} ({{ pkg.arch }})</a>{% if not forloop.last %}, {% endif %}
{% endfor %}</td>
<td>{{ relation.user.get_full_name }}</td>
+ <td>{{ relation.created }}</td>
<td class="wrap">{{ relation.user.userprofile.allowed_repos.all|join:", " }}</td>
<td class="wrap">{{ relation.repositories|join:", " }}</td>
</tr>
diff --git a/templates/public/index.html b/templates/public/index.html
index 3432ccad..6254d7b0 100644
--- a/templates/public/index.html
+++ b/templates/public/index.html
@@ -73,15 +73,13 @@
<table>
{% for update in pkg_updates %}
- {% with update|first as fpkg %}
<tr>
- <td class="pkg-name"><span class="{{ fpkg.repo|lower }}">{{ fpkg.pkgname }} {{ fpkg.full_version }}</span></td>
- <td class="pkg-arch">
- {% for pkg in update %}<a href="{{ pkg.get_absolute_url }}"
+ <td class="pkg-name"><span class="{{ update.repo|lower }}">{{ update.pkgbase }} {{ update.version }}</span></td>
+ <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>
</tr>
- {% endwith %}
{% endfor %}
</table>
</div>
@@ -145,14 +143,12 @@
title="View/search the package repository database">Packages</a></li>
<li><a href="/groups/"
title="View the available package groups">Package Groups</a></li>
- <li><a href="http://projects.parabolagnulinux.org"
+ <li><a href="https://projects.parabolagnulinux.org"
title="Official Parabola projects (git)">Projects in Git</a></li>
- <li><a href="http://bugs.parabolagnulinux.org/"
+ <li><a href="https://bugs.parabolagnulinux.org/"
title="Parabola's Issue Tracker">Issue Tracker</a></li>
- {% comment %}
<li><a href="/todolists/"
- title="Todo Lists">Todo Lists</a></li>
- {% endcomment %}
+ title="Hacker Todo Lists">Todo Lists</a></li>
</ul>
<h4>About</h4>
diff --git a/templates/releng/add.html b/templates/releng/add.html
new file mode 100644
index 00000000..8488b40c
--- /dev/null
+++ b/templates/releng/add.html
@@ -0,0 +1,27 @@
+{% extends "base.html" %}
+
+{% block title %}Arch Linux - Test Result Entry{% endblock %}
+
+{% block content %}
+<div class="box">
+ <h2>Arch Releng Testbuild Feedback Entry</h2>
+
+ <p>This page allows you to submit feedback after testing an Arch Linux installation
+ using a release engineering testbuild. Mark all the options you used during the
+ installation; at the end you can specify whether everything went OK. Be
+ sure to only denote a successful install after having checked the
+ installation properly. Some options require you to check several things (such as
+ config files), this will be mentioned alongside the option.</p>
+ <p>There is also an overview of all feedback on the
+ <a href="{% url releng-test-overview %}">results page</a>. Once we have
+ builds that are properly tested (enough successful feedback for all
+ important features of the ISO or a slightly earlier ISO), we can release new
+ official media.</p>
+
+ <div id="releng-feedback"> <form action="" method="post">{% csrf_token %}
+ {{ form.as_p }}
+ <input type="submit" value="Submit" />
+ </form>
+ </div>
+</div>
+{% endblock %}
diff --git a/templates/releng/result_list.html b/templates/releng/result_list.html
new file mode 100644
index 00000000..b3ae025b
--- /dev/null
+++ b/templates/releng/result_list.html
@@ -0,0 +1,41 @@
+{% extends "base.html" %}
+
+{% block content %}
+<div class="box">
+ <h2>Results for:
+ {% if option %}{{ option|title }}: {{ value }}{% endif %}
+ {{ iso_name|default:"" }}
+ </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>Submitted By</th>
+ <th>Date Submitted</th>
+ <th>Success</th>
+ </tr>
+ </thead>
+ <tbody>
+ {% for test in test_list %}
+ <tr>
+ <td>{{ test.iso.name }}</td>
+ <td>{{ test.user_name }}</td>
+ <td>{{ test.created|date }}</td>
+ <td>{{ test.success|yesno }}</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_section.html b/templates/releng/result_section.html
new file mode 100644
index 00000000..08e46fb7
--- /dev/null
+++ b/templates/releng/result_section.html
@@ -0,0 +1,28 @@
+<tr>
+ <th>{% if option.is_rollback %}Rollback: {% endif %}{{ option.name|title }}</td>
+ <th>Last Success</th>
+ <th>Last Failure</th>
+</tr>
+{% for item in option.values %}
+<tr>
+ <td>
+ <a href="{% url releng-results-for option.name|lower item.value.pk %}">
+ {{ item.value.name|lower }}
+ </a>
+ </td>
+ <td>
+ {% if item.success %}
+ <a href="{% url releng-results-iso item.success.pk %}">
+ {{ item.success.name }}
+ </a>
+ {% else %}Never succeeded{% endif %}
+ </td>
+ <td>
+ {% if item.failure %}
+ <a href="{% url releng-results-iso item.failure.pk %}">
+ {{ item.failure.name }}
+ </a>
+ {% else %}Never failed{% endif %}
+ </td>
+</tr>
+{% endfor %}
diff --git a/templates/releng/results.html b/templates/releng/results.html
new file mode 100644
index 00000000..c3e7d99a
--- /dev/null
+++ b/templates/releng/results.html
@@ -0,0 +1,29 @@
+{% extends "base.html" %}
+
+{% block title %}Arch Linux - Release Engineering Testbuild Results{% endblock %}
+
+{% block content %}
+<div class="box">
+ <h2>Release Engineering Testbuild Results</h2>
+
+ <p>This is an overview screen showing a test results matrix of release
+ engineering produced ISOs. Various options and configurations are shown
+ with last success and last failure results, if known. To help improve ISO
+ quality, you are encouraged to <a href="{% url releng-test-submit %}">give feedback</a>
+ if you have tested and used any ISOs. Both successful and failed results
+ are encouraged and welcome.</p>
+
+ <p>For more information, see the <a
+ href="https://wiki.archlinux.org/index.php/DeveloperWiki:releng_testimages_feedback">documentation
+ on the wiki</a>.</p>
+
+ <p>All ISOs referenced on this page are available from
+ <a href="{{ iso_url }}">{{ iso_url }}</a>.</p>
+
+ <table>
+ {% for option in options %}
+ {% include "releng/result_section.html" %}
+ {% endfor %}
+ </table>
+</div>
+{% endblock %}
diff --git a/templates/releng/thanks.html b/templates/releng/thanks.html
new file mode 100644
index 00000000..b261426d
--- /dev/null
+++ b/templates/releng/thanks.html
@@ -0,0 +1,13 @@
+{% extends "base.html" %}
+
+{% block title %}Arch Linux - Feedback - Thanks!{% endblock %}
+
+{% block content %}
+<div class="box">
+ <h2>Thanks!</h2>
+ <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>
+</div>
+{% endblock %}
diff --git a/templates/todolists/email_notification.txt b/templates/todolists/email_notification.txt
index 1825912c..10b50f64 100644
--- a/templates/todolists/email_notification.txt
+++ b/templates/todolists/email_notification.txt
@@ -1,7 +1,7 @@
{% 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 %}
+* {{ 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}}