a first working mechanism based on Prelude class and requirements()
[unfold.git] / engine / views.py
index 0082a55..7b05cc7 100644 (file)
@@ -12,6 +12,9 @@ from myslice.viewutils import topmenu_items, the_user, hard_wired_slice_names
 
 def test_plugin_view (request):
     
+    # variables that will get passed to this template
+    template_env = {}
+    
     # having html tags right here is not a real use case
     hard_wired_list=[]
     hard_wired_list.append("this hard-wired list")
@@ -38,23 +41,32 @@ def test_plugin_view (request):
     layout = VerticalLayout (hidable=True, visible=True,
                              sons=[plugin_main1, plugin_main2]
                              )
+#    layout.inspect_request (request,"before first render")
     content_main = layout.render (request)
+#    layout.inspect_request (request,"after first render")
+    # this will be rendered as the main content - as per view-plugin.html and thus layout-myslice.html
+    template_env [ 'content_main' ] = content_main
 
+    ##########
     # lacks a/href to /slice/%s
     plugin_related = SimpleList (visible=True, hidable=True,
                                  need_datatables='yes', 
                                  list=hard_wired_slice_names, 
                                  header='Slices' )
     content_related = plugin_related.render (request)
+    # likewise but on the side view
+    template_env [ 'content_related' ] = content_related
 
-    
+    # more general variables expected in the template
+    template_env [ 'title' ] = 'Test Plugin View' 
+    template_env [ 'topmenu_items' ] = topmenu_items('plugin', request) 
+    template_env [ 'username' ] = the_user (request) 
+
+    # request.plugin_prelude holds a summary of the requirements() for all plugins
+    # define {js,css}_{files,chunks}
+    prelude_env = request.plugin_prelude.render_env()
+    template_env.update(prelude_env)
 
-    return render_to_response ('view-plugin.html',
-                               {'title': 'Test Plugin View',
-                                'topmenu_items': topmenu_items('plugin', request),
-                                'content_main' : content_main,
-                                'content_related' : content_related,
-                                'username' : the_user (request),
-                                },
+    return render_to_response ('view-plugin.html',template_env,
                                context_instance=RequestContext(request))