Shunted responsibility for 404 and 500 error catching from node_view to RequestNodeMi...
[philo.git] / views.py
index 65acb52..41718e5 100644 (file)
--- a/views.py
+++ b/views.py
@@ -1,18 +1,19 @@
-from django.http import Http404, HttpResponse
-from django.template import RequestContext
-from django.contrib.sites.models import Site
-from models import Page
+from django.http import Http404
+from django.views.decorators.vary import vary_on_headers
+from philo.exceptions import MIDDLEWARE_NOT_CONFIGURED
 
-def page_view(request, path=None, **kwargs):
-       page = None
-       if path is None:
-               path = '/'
-       try:
-               current_site = Site.objects.get_current()
-               if current_site:
-                       page = Page.objects.get_with_path(path, root=current_site.root_page)
-       except Page.DoesNotExist:
+
+@vary_on_headers('Accept')
+def node_view(request, path=None, **kwargs):
+       if not hasattr(request, 'node'):
+               raise MIDDLEWARE_NOT_CONFIGURED
+       
+       if not request.node:
                raise Http404
-       if not page:
+       
+       node = request.node
+       subpath = request.node.subpath
+       
+       if subpath and not node.accepts_subpath:
                raise Http404
-       return HttpResponse(page.template.django_template.render(RequestContext(request, {'page': page})), mimetype=page.template.mimetype)
+       return node.render_to_response(request, kwargs)
\ No newline at end of file