X-Git-Url: https://git.sommitrealweird.co.uk/sommitrealweird.git/blobdiff_plain/29f2eef0ba05968f84c3afad30e1fa105fc56ed3..e1b491186d911fcdc98b18b4c0031ed65d43fdae:/sommitrealweird/bpcms/views.py?ds=inline diff --git a/sommitrealweird/bpcms/views.py b/sommitrealweird/bpcms/views.py index e0087c8..82dfb56 100644 --- a/sommitrealweird/bpcms/views.py +++ b/sommitrealweird/bpcms/views.py @@ -4,28 +4,37 @@ 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: @@ -42,7 +51,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(folder + "/" + slug) else: try: if not request.user.is_authenticated: @@ -50,7 +59,6 @@ def document_view(request, slug=None, folders=None): else: doc = Document.objects.get(slug__exact=slug, folder__isnull=True) except: - sys.stderr.write("Unexpected error:", sys.exc_info()[0]) try: folder = Folder.objects.get(slug__exact=slug, parent__isnull=True) if not request.user.is_authenticated(): @@ -58,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,