from django.shortcuts import render, get_object_or_404
from django.http import HttpResponseRedirect, HttpResponsePermanentRedirect
-from django.http import Http404
+from django.http import HttpResponse, Http404
from pgweb.util.decorators import login_required, allow_frames, content_sources
from django.db.models import Q
from django.conf import settings
})
+@allow_frames
+def docsvg(request, version, filename):
+ if version == 'current':
+ ver = Version.objects.filter(current=True)[0].tree
+ elif version == 'devel':
+ ver = Decimal(0)
+ else:
+ ver = Decimal(version)
+ if ver == Decimal(0):
+ raise Http404("Version not found")
+
+ if ver < Decimal(12) and ver > Decimal(0):
+ raise Http404("SVG images don't exist in this version")
+
+ page = get_object_or_404(DocPage, version=ver, file="{0}.svg".format(filename))
+
+ return HttpResponse(page.content, content_type="image/svg+xml")
+
+
def docspermanentredirect(request, version, typ, page, *args):
"""Provides a permanent redirect from the old static/interactive pages to
the modern pages that do not have said keywords.
# Legacy URLs for accessing the docs page; provides a permanent redirect
url(r'^docs/(current|devel|\d+(?:\.\d)?)/(static|interactive)/((.*).html?)?$', pgweb.docs.views.docspermanentredirect),
url(r'^docs/(current|devel|\d+(?:\.\d)?)/(.*).html?$', pgweb.docs.views.docpage),
+ url(r'^docs/(current|devel|\d+(?:\.\d)?)/(.*).svg$', pgweb.docs.views.docsvg),
url(r'^docs/(current|devel|\d+(?:\.\d)?)/$', pgweb.docs.views.docsrootpage),
url(r'^docs/(current|devel|\d+(?:\.\d)?)/$', pgweb.docs.views.redirect_root),