2007-11-03 00:45:10 -07:00
|
|
|
{% extends "base.html" %}
|
2010-03-01 19:43:52 -08:00
|
|
|
{% block title %}Arch Linux - Developer Dashboard{% endblock %}
|
2007-11-03 00:45:10 -07:00
|
|
|
|
|
|
|
{% block content %}
|
2010-03-16 11:39:27 -07:00
|
|
|
<div id="dev-dashboard" class="box">
|
|
|
|
|
|
|
|
<h2>Developer Dashboard</h2>
|
|
|
|
|
|
|
|
<h3>My Flagged Packages</h3>
|
|
|
|
|
|
|
|
<table id="dash-myflagged" class="results dash-stats">
|
|
|
|
<thead>
|
|
|
|
<tr>
|
|
|
|
<th class="key">Name</th>
|
|
|
|
<th>Repo</th>
|
|
|
|
<th>Version</th>
|
|
|
|
<th>Arch</th>
|
2010-10-21 16:14:02 -07:00
|
|
|
<th>Flagged</th>
|
|
|
|
<th>Last Updated</th>
|
2010-03-16 11:39:27 -07:00
|
|
|
</tr>
|
|
|
|
</thead>
|
|
|
|
<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>
|
2008-10-11 16:50:08 -07:00
|
|
|
<td>{{ pkg.repo.name }}</td>
|
2008-11-11 05:26:57 -08:00
|
|
|
<td>{{ pkg.pkgver }}</td>
|
2008-10-11 16:50:08 -07:00
|
|
|
<td>{{ pkg.arch.name }}</td>
|
2010-10-21 16:14:02 -07:00
|
|
|
<td>{{ pkg.flag_date }}</td>
|
|
|
|
<td>{{ pkg.last_update }}</td>
|
2008-10-11 16:50:08 -07:00
|
|
|
</tr>
|
2010-03-16 11:39:27 -07:00
|
|
|
{% empty %}
|
2010-09-08 07:57:34 -07:00
|
|
|
<tr class="empty"><td colspan="4"><em>No flagged packages to display</em></td></tr>
|
2010-03-16 11:39:27 -07:00
|
|
|
{% endfor %}
|
|
|
|
</tbody>
|
|
|
|
</table>
|
|
|
|
|
2010-07-05 20:22:19 -07:00
|
|
|
<h3>My Incomplete Todo List Packages</h3>
|
|
|
|
|
|
|
|
<table id="dash-mytodolist" class="results dash-stats">
|
|
|
|
<thead>
|
|
|
|
<tr>
|
|
|
|
<th>Todo List</th>
|
|
|
|
<th class="key">Name</th>
|
|
|
|
<th>Repo</th>
|
|
|
|
<th>Arch</th>
|
|
|
|
<th>Maintainer(s)</th>
|
|
|
|
</tr>
|
|
|
|
</thead>
|
|
|
|
<tbody>
|
|
|
|
{% for todopkg in todopkgs %}
|
|
|
|
<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>{{ todopkg.pkg.repo.name }}</td>
|
|
|
|
<td>{{ todopkg.pkg.arch.name }}</td>
|
|
|
|
<td>{{ todopkg.pkg.maintainers|join:', ' }}</td>
|
|
|
|
</tr>
|
|
|
|
{% empty %}
|
2010-09-08 07:57:34 -07:00
|
|
|
<tr class="empty"><td colspan="5"><em>No incomplete todo list packages to display</em></td></tr>
|
|
|
|
{% endfor %}
|
|
|
|
</tbody>
|
|
|
|
</table>
|
|
|
|
|
|
|
|
<h3>Package Todo Lists</h3>
|
|
|
|
|
|
|
|
<table id="dash-todo" class="results dash-stats">
|
|
|
|
<thead>
|
|
|
|
<tr>
|
|
|
|
<th>Name</th>
|
|
|
|
<th>Creation Date</th>
|
|
|
|
<th>Description</th>
|
|
|
|
</tr>
|
|
|
|
</thead>
|
|
|
|
<tbody>
|
|
|
|
{% for todo in todos %}
|
|
|
|
<tr class="{% cycle 'odd' 'even' %}">
|
|
|
|
<td class="key"><a href="{{ todo.get_absolute_url }}"
|
|
|
|
title="View todo list: {{ todo.name }}">{{ todo.name }}</a></td>
|
|
|
|
<td>{{ todo.date_added }}</td>
|
|
|
|
<td>{{ todo.description|safe }}</td>
|
|
|
|
</tr>
|
|
|
|
{% empty %}
|
|
|
|
<tr class="empty"><td colspan="3"><em>No package todo lists to display</em></td></tr>
|
2010-07-05 20:22:19 -07:00
|
|
|
{% endfor %}
|
|
|
|
</tbody>
|
|
|
|
</table>
|
|
|
|
|
2010-06-05 10:58:31 -07:00
|
|
|
<form id="dash-pkg-notify" method="post" action="/devel/notify/">{% csrf_token %}
|
2010-03-16 11:39:27 -07:00
|
|
|
<fieldset>
|
|
|
|
<p><input id="notify" name="notify" type="checkbox" value="yes"
|
|
|
|
{% if user.get_profile.notify %} checked="checked"{% endif %} />
|
|
|
|
<label for="notify">Notify me when packages are flagged out-of-date</label>
|
|
|
|
<input title="Update notification status" type="submit" value="Update" /></p>
|
|
|
|
</fieldset>
|
|
|
|
</form>
|
|
|
|
|
|
|
|
</div><!-- #dev-dashboard -->
|
|
|
|
|
|
|
|
<div id="dash-by-arch" class="dash-stats box">
|
|
|
|
|
|
|
|
<h3 class="dash-stats" style="cursor: pointer"
|
2010-07-25 14:14:50 -07:00
|
|
|
title="Click to toggle stats by architecture">
|
2010-03-16 11:39:27 -07:00
|
|
|
Stats by Architecture <span class="dash-click">(click to toggle)</span></h3>
|
|
|
|
|
|
|
|
<table id="stats-by-arch" class="results dash-stats">
|
|
|
|
<thead>
|
|
|
|
<tr>
|
|
|
|
<th class="key">Arch</th>
|
|
|
|
<th># Packages</th>
|
|
|
|
<th># Flagged</th>
|
|
|
|
</tr>
|
|
|
|
</thead>
|
|
|
|
<tbody>
|
|
|
|
{% for arch in arches %}
|
|
|
|
<tr class="{% cycle 'odd' 'even' %}">
|
|
|
|
<td>{{ arch.name }}</td>
|
|
|
|
<td><a href="/packages/?arch={{ arch.name }}"
|
|
|
|
title="View all packages for the {{ arch.name }} architecture">
|
|
|
|
<strong>{{ arch.packages.count }}</strong> packages</a></td>
|
|
|
|
<td><a href="/packages/?arch={{ arch.name }}&flagged=Flagged"
|
|
|
|
title="View all flagged packages for the {{ arch.name }} architecture">
|
|
|
|
<strong>{{ arch.packages.flagged.count }}</strong> packages</a></td>
|
|
|
|
</tr>
|
|
|
|
{% endfor %}
|
|
|
|
</tbody>
|
|
|
|
</table>
|
|
|
|
|
|
|
|
</div><!-- #dash-by-arch -->
|
|
|
|
|
|
|
|
<div id="dash-by-repo" class="dash-stats box">
|
|
|
|
|
|
|
|
<h3 class="dashboard dash-stats" style="cursor: pointer"
|
2010-07-25 14:14:50 -07:00
|
|
|
title="Click to toggle stats by repository">
|
2010-03-16 11:39:27 -07:00
|
|
|
Stats by Repository <span class="dash-click">(click to toggle)</span></h3>
|
|
|
|
|
|
|
|
<table id="stats-by-repo" class="results dash-stats">
|
|
|
|
<thead>
|
|
|
|
<tr>
|
|
|
|
<th class="key">Repository</th>
|
|
|
|
<th># Packages</th>
|
|
|
|
<th># Flagged</th>
|
|
|
|
</tr>
|
|
|
|
</thead>
|
|
|
|
<tbody>
|
|
|
|
{% for repo in repos %}
|
|
|
|
<tr class="{% cycle 'odd' 'even' %}">
|
|
|
|
<td>{{ repo.name }}</td>
|
|
|
|
<td><a href="/packages/?repo={{ repo.name }}"
|
|
|
|
title="View all packages in the {{ repo.name }} repository">
|
|
|
|
<strong>{{ repo.packages.count }}</strong> packages</a></td>
|
|
|
|
<td><a href="/packages/?repo={{ repo.name }}&flagged=Flagged"
|
|
|
|
title="View all flagged packages in the {{ repo.name }} repository">
|
|
|
|
<strong>{{ repo.packages.flagged.count }}</strong> packages</a></td>
|
|
|
|
</tr>
|
|
|
|
{% endfor %}
|
|
|
|
</tbody>
|
|
|
|
</table>
|
|
|
|
|
|
|
|
</div><!-- dash-by-arch -->
|
|
|
|
|
|
|
|
<div id="dash-by-maintainer" class="dash-stats box">
|
|
|
|
|
|
|
|
<h3 class="dashboard dash-stats" style="cursor: pointer"
|
2010-07-25 14:14:50 -07:00
|
|
|
title="Click to toggle stats by maintainer">
|
2010-03-16 11:39:27 -07:00
|
|
|
Stats by Maintainer <span class="dash-click">(click to toggle)</span></h3>
|
|
|
|
|
|
|
|
<table id="stats-by-maintainer" class="results dash-stats">
|
|
|
|
<thead>
|
|
|
|
<tr>
|
|
|
|
<th class="key">Maintainer</th>
|
2010-09-10 16:27:18 -07:00
|
|
|
<th># Packages</th>
|
2010-03-16 11:39:27 -07:00
|
|
|
<th># Flagged</th>
|
|
|
|
</tr>
|
|
|
|
</thead>
|
|
|
|
<tbody>
|
|
|
|
{% for maint in maintainers %}
|
|
|
|
<tr class="{% cycle 'odd' 'even' %}">
|
|
|
|
<td>{{ maint.get_full_name }}</td>
|
|
|
|
<td><a href="/packages/?maintainer={{ maint.username }}"
|
|
|
|
title="View all packages maintained by {{ maint.get_full_name }}">
|
2010-09-10 16:27:18 -07:00
|
|
|
<strong>{{ maint.package_count }}</strong> packages</a></td>
|
2010-03-16 11:39:27 -07:00
|
|
|
<td><a href="/packages/?maintainer={{ maint.username }}&flagged=Flagged"
|
|
|
|
title="View all flagged packages maintained by {{ maint.get_full_name }}">
|
2010-09-10 16:27:18 -07:00
|
|
|
<strong>{{ maint.flagged_count }}</strong> packages</a></td>
|
2010-03-16 11:39:27 -07:00
|
|
|
</tr>
|
|
|
|
{% endfor %}
|
|
|
|
</tbody>
|
|
|
|
</table>
|
|
|
|
|
|
|
|
</div><!-- #dash-by-maintainer -->
|
2010-07-25 14:14:50 -07:00
|
|
|
{% load cdn %}{% jquery %}
|
2010-08-27 07:20:14 -07:00
|
|
|
<script type="text/javascript" src="/media/jquery.tablesorter.min.js"></script>
|
2010-09-30 11:15:20 -07:00
|
|
|
<script type="text/javascript" src="/media/archweb.js"></script>
|
2010-07-25 14:14:50 -07:00
|
|
|
<script type="text/javascript">
|
2010-08-27 07:20:14 -07:00
|
|
|
$(document).ready(function() {
|
2010-09-08 07:57:34 -07:00
|
|
|
$("#dash-myflagged:not(:has(tbody tr.empty))").tablesorter(
|
|
|
|
{widgets: ['zebra'], sortList: [[0,0]]});
|
|
|
|
$("#dash-mytodolist:not(:has(tbody tr.empty))").tablesorter(
|
|
|
|
{widgets: ['zebra'], sortList: [[0,0], [1,0]]});
|
|
|
|
$("#dash-todo:not(:has(tbody tr.empty))").tablesorter(
|
|
|
|
{widgets: ['zebra'], sortList: [[1,1]]});
|
2010-09-10 16:27:18 -07:00
|
|
|
$("#stats-by-arch").add("#stats-by-repo").add("#stats-by-maintainer").tablesorter(
|
2010-09-08 07:57:34 -07:00
|
|
|
{widgets: ['zebra'], sortList: [[0,0]],
|
|
|
|
headers: { 1: { sorter: 'pkgcount' }, 2: { sorter: 'pkgcount' } } });
|
2010-07-25 14:14:50 -07:00
|
|
|
$("h3.dash-stats").click(
|
2010-08-27 07:20:14 -07:00
|
|
|
function(e) { $(this).next().toggle(); }
|
2010-07-25 14:14:50 -07:00
|
|
|
);
|
2010-08-27 07:20:14 -07:00
|
|
|
});
|
2010-07-25 14:14:50 -07:00
|
|
|
</script>
|
2007-11-03 00:45:10 -07:00
|
|
|
{% endblock %}
|