X-Git-Url: https://git.sommitrealweird.co.uk/sommitrealweird.git/blobdiff_plain/a2883504e45a556b06e76f023395e879e01ae03c..56b2cdf3569443cf4504fe085de9db0466dcd09f:/sommitrealweird/bpcms/views.py diff --git a/sommitrealweird/bpcms/views.py b/sommitrealweird/bpcms/views.py new file mode 100644 index 0000000..d98fa8c --- /dev/null +++ b/sommitrealweird/bpcms/views.py @@ -0,0 +1,53 @@ +from bpcms.models import Document, Folder +from django.http import Http404, HttpResponse +from django.template import RequestContext, loader + +def document_view(request, slug=None, folders=None): + if folders == None and slug == None: + raise Http404() + + folder = None + + if folders != None: + folders = folders.split('/') + resfolder = None + for folder in folders: + try: + if resfolder: + resfolder = Folder.objects.get(slug__exact=folder, parent__exact=resfolder) + else: + resfolder = Folder.objects.get(slug__exact=folder, parent__isnull=True) + resfolder = resfolder.id + except: + raise Http404 + try: + folder = Folder.objects.get(pk=resfolder) + except: + raise Http404 + + if folder != None: + try: + doc = Document.objects.get(slug__exact=slug, islive__exact=True, folder__exact=folder) + except: + try: + folder = Folder.objects.get(slug__exact=slug, parent__exact=folder) + doc = Document.objects.get(slug__exact='index', islive__exact=True, folder__exact=folder) + except: + raise Http404 + else: + try: + doc = Document.objects.get(slug__exact=slug, islive__exact=True, folder__isnull=True) + except: + try: + folder = Folder.objects.get(slug__exact=slug, parent__isnull=True) + doc = Document.objects.get(slug__exact='index', islive__exact=True, folder__exact=folder) + except: + raise Http404 + template_name = "bpcms/%s.html" %(doc.format,) + t = loader.get_template(template_name) + c = RequestContext(request, + { + "content" : doc.content, + "title" : doc.title, + }) + return HttpResponse(t.render(c))