X-Git-Url: http://git.ithinksw.org/philo.git/blobdiff_plain/0d51e8dc2b15ca84b8979b94a3224b4a33f7f25e..e095f691f243784f8c8d0a9773270b9dbead18e9:/views.py diff --git a/views.py b/views.py index 65acb52..255e54e 100644 --- a/views.py +++ b/views.py @@ -1,18 +1,20 @@ -from django.http import Http404, HttpResponse -from django.template import RequestContext -from django.contrib.sites.models import Site -from models import Page +from django.conf import settings +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 "philo.middleware.RequestNodeMiddleware" not in settings.MIDDLEWARE_CLASSES: + 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