Merge branch 'master' of git://github.com/melinath/philo
[philo.git] / views.py
index ab4c216..fd8e662 100644 (file)
--- a/views.py
+++ b/views.py
@@ -3,31 +3,28 @@ from django.conf import settings
 from django.http import Http404, HttpResponse
 from django.template import RequestContext
 from django.views.decorators.vary import vary_on_headers
+from philo.exceptions import MIDDLEWARE_NOT_CONFIGURED
 from philo.models import Node
 
 
 @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 not hasattr(request, 'node'):
+               raise MIDDLEWARE_NOT_CONFIGURED
        
-       if not node:
+       if not request.node:
                raise Http404
        
+       node = request.node
+       subpath = request.node.subpath
+       
        try:
                if subpath and not node.accepts_subpath:
                        raise Http404
-               return node.render_to_response(request, path=path, subpath=subpath)
+               return node.render_to_response(request, kwargs)
        except Http404, e:
                if settings.DEBUG:
-                       raise e
+                       raise
                
                try:
                        Http404View = node.relationships['Http404']
@@ -39,10 +36,10 @@ def node_view(request, path=None, **kwargs):
                
                extra_context = {'exception': e}
                
-               return Http404View.render_to_response(node, request, path, subpath, extra_context)
+               return Http404View.render_to_response(request, extra_context)
        except Exception, e:
                if settings.DEBUG:
-                       raise e
+                       raise
                
                try:
                        Http500View = node.relationships['Http500']
@@ -52,6 +49,6 @@ def node_view(request, path=None, **kwargs):
                        
                        extra_context = {'exception': e}
                        
-                       return Http500View.render_to_response(node, request, path, subpath, extra_context)
+                       return Http500View.render_to_response(request, extra_context)
                except:
                        raise e
\ No newline at end of file