2
0
mirror of https://expo.survex.com/repositories/troggle/.git synced 2024-11-25 16:51:54 +00:00

implemented mimetypes, index.htm(l) and fixed edit view

This commit is contained in:
Martin Green 2011-07-11 22:36:48 +01:00
parent 7a220b4c87
commit 7ef6b1fcc2

View File

@ -15,6 +15,7 @@ import os
import re
def flatpage(request, path):
print "gggggg", path
try:
r = Redirect.objects.get(originalURL = path)
return HttpResponseRedirect(r.newURL) # Redirect after POST
@ -36,10 +37,22 @@ def flatpage(request, path):
if path.startswith("noinfo") and settings.PUBLIC_SITE and not request.user.is_authenticated():
return HttpResponseRedirect(reverse("auth_login") + '?next=%s' % request.path)
try:
o = open(os.path.normpath(settings.EXPOWEB + path), "rb")
except IOError:
raise Http404
if path.endswith("/") or path == "":
try:
o = open(os.path.normpath(settings.EXPOWEB + path + "index.html"), "rb")
path = path + "index.html"
except IOError:
try:
o = open(os.path.normpath(settings.EXPOWEB + path + "index.htm"), "rb")
path = path + "index.html"
except IOError:
raise Http404
else:
try:
o = open(os.path.normpath(settings.EXPOWEB + path), "rb")
except IOError:
raise Http404
if path.endswith(".htm") or path.endswith(".html"):
html = o.read()
@ -56,14 +69,29 @@ def flatpage(request, path):
body = unicode(body, "iso-8859-1")
return render_with_context(request, 'flatpage.html', {'editable': True, 'path': path, 'head': head, 'body': body, "bodyid": bodyid})
else:
return HttpResponse(o.read())
return HttpResponse(o.read(), mimetype=getmimetype(path))
def getmimetype(path):
if path.endswith(".png"): return "image/png"
if path.endswith(".tif"): return "image/tif"
if path.endswith(".gif"): return "image/gif"
if path.endswith(".jpeg"): return "image/jpeg"
if path.endswith(".jpg"): return "image/jpeg"
if path.endswith("svg"): return "image/svg+xml"
if path.endswith(".pdf"): return "application/pdf"
if path.endswith(".ps"): return "application/postscript"
if path.endswith(".svx"): return "application/x-survex-svx"
if path.endswith(".3d"): return "application/x-survex-3d"
if path.endswith(".pos"): return "application/x-survex-pos"
if path.endswith(".err"): return "application/x-survex-err"
return ""
@login_required_if_public
def editflatpage(request, path):
try:
r = CaveRedirect.objects.get(originalURL = path)
r = Cave.objects.get(url = path)
return troggle.core.views_caves.editCave(request, r.cave.slug)
except CaveRedirect.DoesNotExist:
except Cave.DoesNotExist:
pass