]> git.sommitrealweird.co.uk Git - sommitrealweird.git/blobdiff - sommitrealweird/bpcms/views.py
Update for newer django
[sommitrealweird.git] / sommitrealweird / bpcms / views.py
index 365174305a6bf0ded27a901a499300f2d2a32906..82dfb563a176f026d5c453b58aa84755be62b3d8 100644 (file)
@@ -2,33 +2,43 @@ from bpcms.models import CSSDocument, Document, Folder
 from django.http import Http404, HttpResponse
 from django.shortcuts import render
 from django.template import RequestContext, loader
+import sys
 
-def document_view(request, slug=None, folders=None):
-    if folders == None and slug == None:
+def document_view(request, path = None):
+
+    if path == None:
         raise Http404()
 
+    folders = path.split("/")
+    slug = None
     folder = None
 
     if folders != None:
-        folders = folders.split('/')
         resfolder = None
-        for folder in folders:
+        prevfolder = None
+        for i,folder_name in enumerate(folders):
             try:
                 if resfolder:
-                    resfolder = Folder.objects.get(slug__exact=folder, parent__exact=resfolder)
+                    resfolder = Folder.objects.get(slug__exact=folder_name, parent__exact=resfolder)
                 else:
-                    resfolder = Folder.objects.get(slug__exact=folder, parent__isnull=True)
+                    resfolder = Folder.objects.get(slug__exact=folder_name, parent__isnull=True)
                 resfolder = resfolder.id
             except:
-                raise Http404
+                slug = folders[i]
+                folders = folders[:i]
+                break
         try:
-            folder = Folder.objects.get(pk=resfolder)
+            if resfolder != None:
+                folder = Folder.objects.get(pk=resfolder)
         except:
-            raise Http404
+            raise Http404("Badgers")
+
+    if slug == None:
+        slug = "index"
 
     if folder != None:
         try:
-            if not request.user.is_authenticated():
+            if not request.user.is_authenticated:
                 doc = Document.objects.get(slug__exact=slug, islive__exact=True, folder__exact=folder)
             else:
 
@@ -41,10 +51,10 @@ def document_view(request, slug=None, folders=None):
                 else:
                     doc = Document.objects.get(slug__exact='index', folder__exact=folder)
             except:
-                raise Http404
+                raise Http404(folder + "/" + slug)
     else:
         try:
-            if not request.user.is_authenticated():
+            if not request.user.is_authenticated:
                 doc = Document.objects.get(slug__exact=slug, islive__exact=True, folder__isnull=True)
             else:
                 doc = Document.objects.get(slug__exact=slug, folder__isnull=True)
@@ -56,7 +66,7 @@ def document_view(request, slug=None, folders=None):
                 else:
                     doc = Document.objects.get(slug__exact='index', folder__exact=folder)
             except:
-                raise Http404
+                raise Http404(slug)
     template_name = "bpcms/%s.html" %(doc.format,)
     c = {
             "content"   : doc.content,