summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan McGee <dan@archlinux.org>2010-04-17 18:10:26 +0200
committerDan McGee <dan@archlinux.org>2010-04-17 18:10:26 +0200
commitad33813bc14621911ea057b0143493a99048f4cb (patch)
tree02d1f455fd1d2c9b90b89ace2afffbd23ffbf574
parent8ea4aa21d15138461f5ebb8387c595ad8314828a (diff)
downloadarchweb-ad33813bc14621911ea057b0143493a99048f4cb.tar.gz
archweb-ad33813bc14621911ea057b0143493a99048f4cb.tar.xz
Improve front page recent updates list
Instead of linking the package name, link the architecture. This will prevent the lost links we had when we collapsed the list to show multiple architectures at the same time. Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r--public/utils.py15
-rw-r--r--templates/public/index.html10
2 files changed, 18 insertions, 7 deletions
diff --git a/public/utils.py b/public/utils.py
index f4418d1..88f073d 100644
--- a/public/utils.py
+++ b/public/utils.py
@@ -8,12 +8,19 @@ def get_recent_updates():
for a in Arch.objects.all():
# grab a few extra so we can hopefully catch everything we need
pkgs += list(Package.objects.select_related('arch', 'repo').filter(arch=a).order_by('-last_update')[:50])
- pkgs.sort(reverse=True, key=lambda q: q.last_update)
- for p in pkgs:
+ pkgs.sort(key=lambda q: q.last_update)
+ updates = []
+ ctr = 0
+ while ctr < 15 and len(pkgs) > 0:
+ # not particularly happy with this logic, but it works.
+ p = pkgs.pop()
samepkgs = filter(lambda q: p.is_same_version(q) and p.repo == q.repo, pkgs)
- p.allarches = '/'.join(sorted([q.arch.name for q in samepkgs]))
+ samepkgs.append(p)
+ samepkgs.sort(key=lambda q: q.arch.name)
+ updates.append(samepkgs)
for q in samepkgs:
if p != q: pkgs.remove(q)
- return pkgs[:15]
+ ctr += 1
+ return updates
# vim: set ts=4 sw=4 et:
diff --git a/templates/public/index.html b/templates/public/index.html
index 9d05d13..cd2b6b2 100644
--- a/templates/public/index.html
+++ b/templates/public/index.html
@@ -57,11 +57,15 @@
<td><h3>Recent Updates</h3></td>
<td style="vertical-align:top;text-align:right"><a href="/feeds/packages/"><img src="/media/rss.png" alt="RSS Feed" /></a></td>
</tr>
- {% for pkg in pkg_updates %}
+ {% for update in pkg_updates %}
+ {% with update|first as fpkg %}
<tr>
- <td><a href="{{ pkg.get_absolute_url }}" class="{{ pkg.repo.name|lower }}">{{ pkg.pkgname }} {{ pkg.pkgver }}-{{ pkg.pkgrel }}</a></td>
- <td style="text-align:right">{{ pkg.allarches }}</td>
+ <td><span class="{{ fpkg.repo.name|lower }}">{{ fpkg.pkgname }} {{ fpkg.pkgver }}-{{ fpkg.pkgrel }}</span></td>
+ <td style="text-align:right">
+ {% for pkg in update %}<a href="{{ pkg.get_absolute_url }}">{{ pkg.arch }}</a>{% if not forloop.last %}/{% endif %}{% endfor %}
+ </td>
</tr>
+ {% endwith %}
{% endfor %}
<tr>
<td style="font-size:x-small;white-space:nowrap;"><br /><a href="{% url feeds-list %}">More Feeds...</a></td>