X-Git-Url: http://git.ithinksw.org/philo.git/blobdiff_plain/4124d776c70ea5a7cf8bd08223f61bc1c73af348..e095f691f243784f8c8d0a9773270b9dbead18e9:/views.py diff --git a/views.py b/views.py index b3e2a74..255e54e 100644 --- a/views.py +++ b/views.py @@ -1,57 +1,20 @@ -from django.contrib.sites.models import Site from django.conf import settings -from django.http import Http404, HttpResponse -from django.template import RequestContext +from django.http import Http404 from django.views.decorators.vary import vary_on_headers -from philo.models import Node +from philo.exceptions import MIDDLEWARE_NOT_CONFIGURED @vary_on_headers('Accept') def node_view(request, path=None, **kwargs): - node = None - subpath = None - if path is None: - path = '/' - current_site = Site.objects.get_current() - try: - node, subpath = Node.objects.get_with_path(path, root=current_site.root_node, absolute_result=False) - except Node.DoesNotExist: - raise Http404 + if "philo.middleware.RequestNodeMiddleware" not in settings.MIDDLEWARE_CLASSES: + raise MIDDLEWARE_NOT_CONFIGURED - if not node: + if not request.node: raise Http404 - try: - if subpath and not node.accepts_subpath: - raise Http404 - return node.render_to_response(request, path=path, subpath=subpath) - except Http404, e: - if settings.DEBUG: - raise - - try: - Http404View = node.relationships['Http404'] - except KeyError: - Http404View = None - - if not Http404View: - raise e - - extra_context = {'exception': e} - - return Http404View.render_to_response(node, request, path, subpath, extra_context) - except Exception, e: - if settings.DEBUG: - raise - - try: - Http500View = node.relationships['Http500'] - - if not Http500View: - raise e - - extra_context = {'exception': e} - - return Http500View.render_to_response(node, request, path, subpath, extra_context) - except: - raise e \ No newline at end of file + node = request.node + subpath = request.node.subpath + + if subpath and not node.accepts_subpath: + raise Http404 + return node.render_to_response(request, kwargs) \ No newline at end of file