Port archweb_pub commit 1f96c7a1182ef75279c18986b708e683f89dd690 to archweb_dev. This is the original commit message by Dan:

"Make package SVN links always work

This should clean up the links for all varieties of things- different arches
(including any), different repos (community and community-testing), and
split packages. All of the logic is in one place now and any further changes
should be made to the method on the package object."
This commit is contained in:
Thomas Bächler 2009-10-17 23:47:09 +02:00
parent bcda0ab66b
commit 71d79f133b
3 changed files with 16 additions and 3 deletions

View File

@ -256,6 +256,20 @@ def get_depends(self):
self.deps_cache = deps
return deps
def get_svn_link(self):
linkbase = "http://repos.archlinux.org/viewvc.cgi/%s/repos/%s-%s/%s"
if self.pkgbase:
dirname = self.pkgbase
else:
dirname = self.pkgname
repo = self.repo.name.lower()
if repo.startswith('community'):
rootopt = '?root=community'
else:
rootopt = '?root=packages'
return linkbase % (dirname, repo, self.arch.name, rootopt)
class Signoff(models.Model):
pkg = models.ForeignKey(Package)
pkgver = models.CharField(max_length=255)

View File

@ -50,9 +50,8 @@ def details(request, name='', repo='', arch=''):
if all([name, repo, arch]):
pkg= get_object_or_404(Package,
pkgname=name, repo__name__iexact=repo, arch__name=arch)
rootopt = '?root=community' if repo == 'community' else ''
return render_to_response('packages/details.html', RequestContext(
request, {'pkg': pkg, 'rootopt': rootopt}))
request, {'pkg': pkg, }))
else:
return HttpResponseRedirect("/packages/?arch=%s&repo=%s&q=%s" % (
arch.lower(), repo.title(), name))

View File

@ -7,7 +7,7 @@
<h2 class="title">{{ pkg.pkgname }} {{ pkg.pkgver }}-{{ pkg.pkgrel }}</h2>
<div style="float:right" class="listing">
<ul class="small">
<li><a href="http://repos.archlinux.org/viewvc.cgi/{{ pkg.pkgname }}/repos/{{ pkg.repo.name|lower }}-{{ pkg.arch.name|lower }}/{{ rootopt }}">View SVN Entries</a></li>
<li><a href="{{ pkg.get_svn_link }}">View SVN Entries</a></li>
<!-- <li><a href="/packages/files/{{ pkg.id }}/">View File List</a></li> -->
{% if pkg.needupdate %}
<li>