X-Git-Url: https://git.sommitrealweird.co.uk/sommitrealweird.git/blobdiff_plain/9e81338188b8277ee838ac19a083c552320097ef..refs/heads/django-4.2:/sommitrealweird/bpcms/views.py?ds=inline diff --git a/sommitrealweird/bpcms/views.py b/sommitrealweird/bpcms/views.py index 3651743..82dfb56 100644 --- a/sommitrealweird/bpcms/views.py +++ b/sommitrealweird/bpcms/views.py @@ -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,