add a quickfilter instance in dashboard
[unfold.git] / trash / dashboard.py
index 0d4de1d..76b72ec 100644 (file)
@@ -7,10 +7,15 @@ from django.shortcuts import render_to_response
 
 from django.contrib.auth.decorators import login_required
 
-from engine.pluginset import PluginSet
+from engine.page import Page
 from engine.manifoldquery import ManifoldQuery
 
-from plugins.slicelist import SliceList
+from plugins.verticallayout.verticallayout import VerticalLayout
+from plugins.lists.slicelist import SliceList
+from plugins.querycode.querycode import QueryCode
+from plugins.quickfilter.quickfilter import QuickFilter
+
+from myslice.viewutils import, quickfilter_criterias
 
 # 
 from myslice.viewutils import topmenu_items, the_user
@@ -18,7 +23,7 @@ from myslice.viewutils import topmenu_items, the_user
 @login_required
 def dashboard_view (request):
     
-    pluginset = PluginSet(request)
+    page = Page(request)
 
     slices_query = ManifoldQuery (action='get',
                                   method='slice',
@@ -29,19 +34,32 @@ def dashboard_view (request):
                                   # in addition this currently returns all slices anyways
                                   # filter = ...
                                   sort='slice_hrn',)
-    pluginset.enqueue_query (slices_query)
+    page.enqueue_query (slices_query)
 
-    main_plugin = SliceList ( # setting visible attributes first
-        pluginset=pluginset,
-        title='Asynchroneous SliceList',
-        header='slices list', 
-        with_datatables=True,
-        toggled=True,
-        # this is required for the javascript code
-        query=slices_query,
-#        key='slice_hrn',
-#        value='slice_hrn',
-        )
+    main_plugin = VerticalLayout (
+        page=page,
+        title="Putting stuff together",
+        sons=[ 
+            QueryCode (
+                page=page,
+                title="Vizualize your query (no syntax highlight for now)",
+                query=slices_query,
+                toggled=False,
+                ),
+            QuickFilter (
+                page=page,
+                title='play with filters',
+                list=quickfilter_criterias,
+                ),
+            SliceList ( # setting visible attributes first
+                page=page,
+                title='Asynchroneous SliceList',
+                header='slices list', 
+                with_datatables=False,
+                # this is the query at the core of the slice list
+                query=slices_query,
+                ),
+            ])
 
     # variables that will get passed to the view-plugin.html template
     template_env = {}
@@ -65,11 +83,32 @@ def dashboard_view (request):
     # so we can sho who is logged
     template_env [ 'username' ] = the_user (request) 
 
-    pluginset.exec_queue_asynchroneously ()
+    ##########
+    # lacks a/href to /slice/%s
+    related_plugin = SliceList (
+        page=page,
+        title='Same request, other layout',
+        domid='sidelist',
+        with_datatables=True, 
+        header='paginated slices',
+        # share the query
+        query=slices_query,
+        )
+    # likewise but on the side view
+    template_env [ 'content_related' ] = related_plugin.render (request)
+    
+    # add our own css in the mix
+    page.add_css_files ( 'css/dashboard.css')
+    
+    # don't forget to run the requests
+    page.exec_queue_asynchroneously ()
+
+    # xxx create another plugin with the same query and a different layout (with_datatables)
+    # show that it worls as expected, one single api call to backend and 2 refreshed views
 
-    # the prelude object in pluginset contains a summary of the requirements() for all plugins
+    # the prelude object in page contains a summary of the requirements() for all plugins
     # define {js,css}_{files,chunks}
-    prelude_env = pluginset.template_env()
+    prelude_env = page.template_env()
     template_env.update(prelude_env)
     return render_to_response ('view-plugin.html',template_env,
                                context_instance=RequestContext(request))