summaryrefslogtreecommitdiff
path: root/packages/views
diff options
context:
space:
mode:
authorLuke Shumaker <LukeShu@sbcglobal.net>2013-04-21 02:23:40 -0400
committerLuke Shumaker <LukeShu@sbcglobal.net>2013-04-21 02:23:40 -0400
commit8ff271216f421594970631eec1ba156a8a35e561 (patch)
treee56af4f242621c0e0a20a30d9fe881edbc307feb /packages/views
parent03fa7e4f27bdb39a8f8f5ed91a87d18bf8357b47 (diff)
parentbb18fa3323a0494a2774ea61911572b089d04b6d (diff)
Merge branch 'archweb' into archweb-generic2
Diffstat (limited to 'packages/views')
-rw-r--r--packages/views/__init__.py6
-rw-r--r--packages/views/display.py7
-rw-r--r--packages/views/flag.py3
-rw-r--r--packages/views/search.py4
4 files changed, 12 insertions, 8 deletions
diff --git a/packages/views/__init__.py b/packages/views/__init__.py
index 4c195385..c1f0f492 100644
--- a/packages/views/__init__.py
+++ b/packages/views/__init__.py
@@ -9,7 +9,7 @@ from django.db.models import Q
from django.http import HttpResponse
from django.shortcuts import redirect, render
from django.views.decorators.cache import cache_control
-from django.views.decorators.http import require_GET, require_POST
+from django.views.decorators.http import require_safe, require_POST
from main.models import Package, Arch
from ..models import PackageRelation
@@ -24,7 +24,7 @@ from .search import search_json
from .signoff import signoffs, signoff_package, signoff_options, signoffs_json
-@require_GET
+@require_safe
@cache_control(public=True, max_age=86400)
def opensearch(request):
if request.is_secure():
@@ -37,7 +37,7 @@ def opensearch(request):
content_type='application/opensearchdescription+xml')
-@require_GET
+@require_safe
@cache_control(public=True, max_age=300)
def opensearch_suggest(request):
search_term = request.GET.get('q', '')
diff --git a/packages/views/display.py b/packages/views/display.py
index fcf8fdea..021c7ed8 100644
--- a/packages/views/display.py
+++ b/packages/views/display.py
@@ -7,6 +7,7 @@ from django.shortcuts import get_object_or_404, redirect, render
from django.utils.timezone import now
from main.models import Package, PackageFile, Arch, Repo
+from main.utils import empty_response
from mirrors.utils import get_mirror_url_for_download
from ..models import Update
from ..utils import get_group_info, PackageJSONEncoder
@@ -55,6 +56,8 @@ def recently_removed_package(request, name, repo, arch, cutoff=CUTOFF):
try:
update = match.latest()
elsewhere = update.elsewhere()
+ if len(elsewhere) == 0:
+ elsewhere = update.replacements()
if len(elsewhere) == 1:
return redirect(elsewhere[0])
context = {
@@ -124,6 +127,8 @@ def details(request, name='', repo='', arch=''):
pkg = Package.objects.select_related(
'arch', 'repo', 'packager').get(pkgname=name,
repo=repo_obj, arch=arch_obj)
+ if request.method == 'HEAD':
+ return empty_response()
return render(request, 'packages/details.html', {'pkg': pkg})
except Package.DoesNotExist:
# attempt a variety of fallback options before 404ing
@@ -223,8 +228,6 @@ def download(request, name, repo, arch):
if pkg.arch.agnostic:
# grab the first non-any arch to fake the download path
arch = Arch.objects.exclude(agnostic=True)[0].name
- values = {
- }
url = '{host}{repo}/os/{arch}/{filename}'.format(host=url.url,
repo=pkg.repo.name.lower(), arch=arch, filename=pkg.filename)
return redirect(url)
diff --git a/packages/views/flag.py b/packages/views/flag.py
index 92b35b70..69ca3c9f 100644
--- a/packages/views/flag.py
+++ b/packages/views/flag.py
@@ -110,7 +110,7 @@ def flag(request, name, repo, arch):
subject = '%s package [%s] marked out-of-date' % \
(pkg.repo.name, pkg.pkgname)
for maint in maints:
- if maint.userprofile.notify == True:
+ if maint.userprofile.notify is True:
toemail.append(maint.email)
if toemail:
@@ -133,7 +133,6 @@ def flag(request, name, repo, arch):
return redirect('package-flag-confirmed', name=name, repo=repo,
arch=arch)
else:
- initial = {}
form = FlagForm(authenticated=authenticated)
context = {
diff --git a/packages/views/search.py b/packages/views/search.py
index 0362602e..b3778172 100644
--- a/packages/views/search.py
+++ b/packages/views/search.py
@@ -7,7 +7,7 @@ from django.http import HttpResponse
from django.views.generic import ListView
from main.models import Package, Arch, Repo
-from main.utils import make_choice
+from main.utils import empty_response, make_choice
from ..models import PackageRelation
from ..utils import attach_maintainers, PackageJSONEncoder
@@ -99,6 +99,8 @@ class SearchListView(ListView):
allowed_sort = list(sort_fields) + ["-" + s for s in sort_fields]
def get(self, request, *args, **kwargs):
+ if request.method == 'HEAD':
+ return empty_response()
self.form = PackageSearchForm(data=request.GET,
show_staging=self.request.user.is_authenticated())
return super(SearchListView, self).get(request, *args, **kwargs)