summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Bächler <thomas@archlinux.org>2009-10-17 23:47:09 +0200
committerThomas Bächler <thomas@archlinux.org>2009-10-17 23:47:09 +0200
commit71d79f133b8b656f93573569f65a9eab052f0d3f (patch)
tree7ad06409d3c7c1c7f52dfe8ad6bacf89e90cb03d
parentbcda0ab66b9722ae15c10645aa44bb1099d79a93 (diff)
downloadarchweb-71d79f133b8b656f93573569f65a9eab052f0d3f.tar.gz
archweb-71d79f133b8b656f93573569f65a9eab052f0d3f.tar.xz
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."
-rw-r--r--main/models.py14
-rw-r--r--packages/views.py3
-rw-r--r--templates/packages/details.html2
3 files changed, 16 insertions, 3 deletions
diff --git a/main/models.py b/main/models.py
index f68e501..3ab2c36 100644
--- a/main/models.py
+++ b/main/models.py
@@ -256,6 +256,20 @@ class Package(models.Model):
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)
diff --git a/packages/views.py b/packages/views.py
index e17a4d4..2390bd9 100644
--- a/packages/views.py
+++ b/packages/views.py
@@ -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))
diff --git a/templates/packages/details.html b/templates/packages/details.html
index 71218ea..30c8f6a 100644
--- a/templates/packages/details.html
+++ b/templates/packages/details.html
@@ -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>