Skip to content

Commit df4b0bf

Browse files
committed
Fix domain being None in opensearch results
The domain came from HTTP_HOST which in our nginx configuration is not set, furthermore other code already uses Site to obtain the domain. Closes: #541
1 parent 5da7fa8 commit df4b0bf

File tree

3 files changed

+7
-4
lines changed

3 files changed

+7
-4
lines changed

packages/tests/test_search.py

+1
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ def test_sort(client, package):
6767
def test_packages(client, package):
6868
response = client.get('/opensearch/packages/')
6969
assert response.status_code == 200
70+
assert 'template="example.com/opensearch/packages/"' in response.content.decode()
7071

7172

7273
def test_packages_suggest(client, package):

packages/views/__init__.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from django.contrib import messages
66
from django.contrib.auth.decorators import permission_required
77
from django.contrib.auth.models import User
8+
from django.contrib.sites.models import Site
89
from django.core.cache import cache
910
from django.db.models import Q
1011
from django.http import HttpResponse, HttpResponseBadRequest
@@ -21,10 +22,10 @@
2122
@require_safe
2223
@cache_control(public=True, max_age=86400)
2324
def opensearch(request):
24-
domain = "%s://%s" % (request.scheme, request.META.get('HTTP_HOST'))
25+
current_site = Site.objects.get_current()
2526

2627
return render(request, 'packages/opensearch.xml',
27-
{'domain': domain},
28+
{'domain': current_site.domain},
2829
content_type='application/opensearchdescription+xml')
2930

3031

public/views.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from operator import attrgetter
44

55
from django.contrib.auth.models import User
6+
from django.contrib.sites.models import Site
67
from django.db.models import Count, Q
78
from django.http import HttpResponse
89
from django.shortcuts import get_object_or_404, render
@@ -25,12 +26,12 @@ def updates():
2526
else:
2627
def updates():
2728
return get_recent_updates()
28-
domain = "%s://%s" % (request.scheme, request.META.get('HTTP_HOST'))
29+
current_site = Site.objects.get_current()
2930
context = {
3031
'news_updates': News.objects.order_by('-postdate', '-id')[:15],
3132
'pkg_updates': updates,
3233
'staff_groups': StaffGroup.objects.all(),
33-
'domain': domain,
34+
'domain': current_site.domain,
3435
}
3536
return render(request, 'public/index.html', context)
3637

0 commit comments

Comments
 (0)