X-Git-Url: http://git.ithinksw.org/philo.git/blobdiff_plain/8f34c0d94f49bbe47e1277c3a609a6ed14329141..2380185d894e5a62a20b91a0c5a3a48497fb3cfb:/models/nodes.py diff --git a/models/nodes.py b/models/nodes.py index 1e7622a..f46ddce 100644 --- a/models/nodes.py +++ b/models/nodes.py @@ -5,10 +5,12 @@ from django.contrib.sites.models import Site from django.http import HttpResponse, HttpResponseServerError, HttpResponseRedirect from django.core.servers.basehttp import FileWrapper from django.core.urlresolvers import resolve +from django.template import add_to_builtins as register_templatetags from inspect import getargspec from philo.models.base import TreeEntity, Entity, QuerySetMapper from philo.utils import ContentTypeSubclassLimiter from philo.validators import RedirectValidator +from philo.exceptions import ViewDoesNotProvideSubpaths _view_content_type_limiter = ContentTypeSubclassLimiter(None) @@ -21,7 +23,9 @@ class Node(TreeEntity): @property def accepts_subpath(self): - return self.view.accepts_subpath + if self.view: + return self.view.accepts_subpath + return False def render_to_response(self, request, path=None, subpath=None, extra_context=None): return self.view.render_to_response(self, request, path, subpath, extra_context) @@ -39,6 +43,9 @@ class View(Entity): accepts_subpath = False + def get_subpath(self, obj): + raise ViewDoesNotProvideSubpaths + def attributes_with_node(self, node): return QuerySetMapper(self.attribute_set, passthrough=node.attributes) @@ -111,4 +118,7 @@ class File(View): app_label = 'philo' def __unicode__(self): - return self.file.name \ No newline at end of file + return self.file.name + + +register_templatetags('philo.templatetags.nodes') \ No newline at end of file