Multiview will now pass node and extra_context to any view that takes kwargs. Fixes...
[philo.git] / models / nodes.py
index 4fa4935..56cbb12 100644 (file)
@@ -7,7 +7,7 @@ from django.core.servers.basehttp import FileWrapper
 from django.core.urlresolvers import resolve, clear_url_caches
 from django.template import add_to_builtins as register_templatetags
 from inspect import getargspec
-from philo.models.base import TreeEntity, Entity, QuerySetMapper
+from philo.models.base import TreeEntity, Entity, QuerySetMapper, register_value_model
 from philo.utils import ContentTypeSubclassLimiter
 from philo.validators import RedirectValidator
 from philo.exceptions import ViewDoesNotProvideSubpaths
@@ -73,12 +73,12 @@ class MultiView(View):
                        subpath = ""
                subpath = "/" + subpath
                view, args, kwargs = resolve(subpath, urlconf=self)
-               view_args = getargspec(view)[0]
-               if extra_context is not None and 'extra_context' in view_args:
+               view_args = getargspec(view)
+               if extra_context is not None and ('extra_context' in view_args[0] or view_args[2] is not None):
                        if 'extra_context' in kwargs:
                                extra_context.update(kwargs['extra_context'])
                        kwargs['extra_context'] = extra_context
-               if 'node' in view_args:
+               if 'node' in view_args[0] or view_args[2] is not None:
                        kwargs['node'] = node
                return view(request, *args, **kwargs)
        
@@ -122,4 +122,5 @@ class File(View):
                return self.file.name
 
 
-register_templatetags('philo.templatetags.nodes')
\ No newline at end of file
+register_templatetags('philo.templatetags.nodes')
+register_value_model(Node)
\ No newline at end of file