summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWookey <wookey@wookware.org>2011-07-11 23:19:48 +0100
committerWookey <wookey@wookware.org>2011-07-11 23:19:48 +0100
commit21ff3b8b5d4d4f94ea1fcafbe535d967660ed392 (patch)
treeb48297e42f7d1097b81f119ffef2b9f4fa69fa96
parentdc1327674c2676db02ccf525725019cd9115b699 (diff)
downloadtroggle-21ff3b8b5d4d4f94ea1fcafbe535d967660ed392.tar.gz
troggle-21ff3b8b5d4d4f94ea1fcafbe535d967660ed392.tar.bz2
troggle-21ff3b8b5d4d4f94ea1fcafbe535d967660ed392.zip
Add changes from martin
-rw-r--r--flatpages/views.py42
1 files changed, 35 insertions, 7 deletions
diff --git a/flatpages/views.py b/flatpages/views.py
index 5f7b579..11cb457 100644
--- a/flatpages/views.py
+++ b/flatpages/views.py
@@ -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