X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=trash%2Fdashboard.py;h=bf04ab4b7245d64b1037189ecdc7618044dc5f93;hb=d2ab222245b6311d81f9465cde3f48761c077168;hp=8dc2dbe908b266b9edc294f19b487f4df41ced08;hpb=058958cdd4f1d5f2f5da50e8dd988c5e623f41d8;p=unfold.git diff --git a/trash/dashboard.py b/trash/dashboard.py index 8dc2dbe9..bf04ab4b 100644 --- a/trash/dashboard.py +++ b/trash/dashboard.py @@ -7,19 +7,23 @@ from django.shortcuts import render_to_response from django.contrib.auth.decorators import login_required -from engine.pluginset import PluginSet -from engine.manifoldquery import ManifoldQuery +from unfold.page import Page +from manifold.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 -# from myslice.viewutils import hard_wired_slice_names, hard_wired_list, lorem_p, lorem, quickfilter_criterias @login_required def dashboard_view (request): - pluginset = PluginSet(request) + page = Page(request) slices_query = ManifoldQuery (action='get', method='slice', @@ -30,19 +34,33 @@ 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', + criterias=quickfilter_criterias, + toggled=False, + ), + 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 = {} @@ -50,15 +68,6 @@ def dashboard_view (request): # define 'content_main' to the template engine template_env [ 'content_main' ] = main_plugin.render(request) -# ########## add another plugin with the same request, on the RHS pane -# # lacks a/href to /slice/%s -# related_plugin = SliceList (title='SliceList plugin',domid='slicelist1', -# with_datatables='yes', -# list=hard_wired_slice_names, -# header='Slices') -# # likewise but on the side view -# template_env [ 'content_related' ] = related_plugin.render (request) - # more general variables expected in the template template_env [ 'title' ] = 'Test view for a full request cycle' # the menu items on the top @@ -66,11 +75,32 @@ def dashboard_view (request): # so we can sho who is logged template_env [ 'username' ] = the_user (request) - pluginset.exec_queue_asynchroneously () +# ########## add another plugin with the same request, on the RHS pane +# will show up in the right-hand side area named 'related' + 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.prelude_env() template_env.update(prelude_env) return render_to_response ('view-plugin.html',template_env, context_instance=RequestContext(request))