Don't link to a one-element listing page from recent updates

If a package is built as a split package where pkgname != pkgbase, but
only one actual split package is produced, the link on the recent update
screen requires an extra click to get to the single package. Fix this by
linking directly to the package itself.

(Examples in current repos: ntfs-3g, python2-south)

Signed-off-by: Dan McGee <dan@archlinux.org>
This commit is contained in:
Dan McGee 2013-03-11 09:23:44 -05:00
parent 7bf9c6e065
commit f579f88e17

View File

@ -1,3 +1,4 @@
from collections import defaultdict
from operator import attrgetter
from main.models import Arch, Repo, Package
@ -44,10 +45,14 @@ def package_links(self):
else:
# fake out the template- this is slightly hacky but yields one
# 'package-like' object per arch which is what the normal loop does
arches = set()
by_arch = defaultdict(list)
for package in self.others:
if package.arch not in arches and not arches.add(package.arch):
yield PackageStandin(package)
by_arch[package.arch].append(package)
for arch, packages in by_arch.items():
if len(packages) == 1:
yield packages[0]
else:
yield PackageStandin(packages[0])
def __unicode__(self):
return "RecentUpdate '%s %s' <%d packages>" % (