Replace the Http404 in release/views.py if the changelog file is not

found with a simple error message, this mimicks the way the rest of the
Datatracker is handling missing files and avoids an annoying 404 when
running the test-crawler without all directories set up
 - Legacy-Id: 7105
This commit is contained in:
Ole Laursen 2014-01-10 17:55:50 +00:00
parent 5dcd140a63
commit fe6c2d67c4

View file

@ -4,7 +4,7 @@ import os
from django.template import RequestContext from django.template import RequestContext
from django.shortcuts import render_to_response from django.shortcuts import render_to_response
from django.conf import settings from django.conf import settings
from django.http import Http404 from django.http import HttpResponse
import changelog import changelog
@ -13,14 +13,14 @@ def release(request, version=None):
if os.path.exists(settings.CHANGELOG_PATH): if os.path.exists(settings.CHANGELOG_PATH):
log_entries = changelog.parse(settings.CHANGELOG_PATH) log_entries = changelog.parse(settings.CHANGELOG_PATH)
else: else:
raise Http404() return HttpResponse("Error: changelog file %s not found" % settings.CHANGELOG_PATH)
next = None next = None
for entry in log_entries: for entry in log_entries:
if next: if next:
next.prev = entry next.prev = entry
entry.next = next entry.next = next
next = entry next = entry
entries = dict([ (entry.version, entry) for entry in log_entries]) entries = dict((entry.version, entry) for entry in log_entries)
if version == None or version not in entries: if version == None or version not in entries:
version = log_entries[0].version version = log_entries[0].version
return render_to_response('release/release.html', { 'releases': log_entries, 'version': version, 'entry': entries[version], }, context_instance=RequestContext(request)) return render_to_response('release/release.html', { 'releases': log_entries, 'version': version, 'entry': entries[version], }, context_instance=RequestContext(request))