diff options
author | Nicolás Reynolds <fauno@kiwwwi.com.ar> | 2011-12-04 23:07:59 -0300 |
---|---|---|
committer | Nicolás Reynolds <fauno@kiwwwi.com.ar> | 2011-12-04 23:07:59 -0300 |
commit | 988c2c6d400b3721464c2891891807d504b076b0 (patch) | |
tree | 013dc3d676edad701d0d3bbd239bc2df0cdf76b4 /packages/templatetags | |
parent | 60a1fc6cc4cef0b9eed58ea4f0ca003b76ec382a (diff) | |
parent | 183c4d9cefa95f46c3fa3a6936f837542426eac2 (diff) |
Merge branch 'master' of ssh://gparabola/parabolaweb
Conflicts:
local_settings.py.example
media/archweb.css
packages/templatetags/package_extras.py
public/views.py
templates/packages/details.html
templates/packages/flag.html
templates/packages/flag_confirmed.html
templates/packages/flagged.html
templates/packages/search.html
templates/public/download.html
templates/todolists/view.html
Diffstat (limited to 'packages/templatetags')
-rw-r--r-- | packages/templatetags/package_extras.py | 43 |
1 files changed, 38 insertions, 5 deletions
diff --git a/packages/templatetags/package_extras.py b/packages/templatetags/package_extras.py index 45a534c8..66fb5e7c 100644 --- a/packages/templatetags/package_extras.py +++ b/packages/templatetags/package_extras.py @@ -1,4 +1,4 @@ -from urllib import urlencode, quote as urlquote +from urllib import urlencode, quote as urlquote, unquote try: from urlparse import parse_qs except ImportError: @@ -13,6 +13,17 @@ def link_encode(url, query, doseq=False): data = urlencode(query, doseq).replace('&', '&') return "%s?%s" % (url, data) +@register.filter +def url_unquote(original_url): + try: + url = original_url + if isinstance(url, unicode): + url = url.encode('ascii') + url = unquote(url).decode('utf-8') + return url + except UnicodeError: + return original_url + class BuildQueryStringNode(template.Node): def __init__(self, sortfield): self.sortfield = sortfield @@ -62,16 +73,38 @@ def userpkgs(user): return '' @register.simple_tag +def get_download_link(package): + parts = { + "repo": package.repo.name.lower(), + "arch": package.arch.name, + "pkgfile": package.filename + } + if parts["arch"] == "any": + parts["arch"] = "i686" + linkbase = "//repo.parabolagnulinux.org/%(repo)s/os/%(arch)s/%(pkgfile)s" + return linkbase % parts + +@register.simple_tag def get_wiki_link(package): - url = "http://wiki.parabolagnulinux.org/Special:Search" + url = "//wiki.parabolagnulinux.org/index.php" data = { + 'title': "Special:Search", 'search': package.pkgname, } return link_encode(url, data) @register.simple_tag +def svn_arch(package): + repo = package.repo.name.lower() + return svn_link(package, "repos/%s-%s" % (repo, package.arch.name)) + +@register.simple_tag +def svn_trunk(package): + return svn_link(package, "trunk") + +@register.simple_tag def bugs_list(package): - url = "https://bugs.parabolagnulinux.org/bugs/issue" + url = "//bugs.parabolagnulinux.org/bugs/issue" data = { '@action': 'search', 'title': package.pkgname, @@ -80,7 +113,7 @@ def bugs_list(package): @register.simple_tag def bug_report(package): - url = "https://bugs.parabolagnulinux.org/bugs/issue" + url = "//bugs.parabolagnulinux.org/bugs/issue" data = { '@template': 'item', 'keyword': 'packages', @@ -98,5 +131,5 @@ def flag_unfree(package): 'priority': 'critical', 'title': '[%s] Please put your reasons here (register first if you haven\'t)' % package.pkgname, } - return link_encode(url, data) + return "//bugs.parabolagnulinux.org/bugs/issue?%s" % urlencode(data) # vim: set ts=4 sw=4 et: |