From ad33813bc14621911ea057b0143493a99048f4cb Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Sat, 17 Apr 2010 11:10:26 -0500 Subject: 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 --- public/utils.py | 15 +++++++++++---- templates/public/index.html | 10 +++++++--- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/public/utils.py b/public/utils.py index f4418d13..88f073d0 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 9d05d139..cd2b6b2a 100644 --- a/templates/public/index.html +++ b/templates/public/index.html @@ -57,11 +57,15 @@

Recent Updates

RSS Feed - {% for pkg in pkg_updates %} + {% for update in pkg_updates %} + {% with update|first as fpkg %} - {{ pkg.pkgname }} {{ pkg.pkgver }}-{{ pkg.pkgrel }} - {{ pkg.allarches }} + {{ fpkg.pkgname }} {{ fpkg.pkgver }}-{{ fpkg.pkgrel }} + + {% for pkg in update %}{{ pkg.arch }}{% if not forloop.last %}/{% endif %}{% endfor %} + + {% endwith %} {% endfor %}
More Feeds... -- cgit v1.2.3