X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=engine%2Fviews.py;h=4a26b6678824f6efb71f1e2bd3a0741ddf54bafd;hb=edbbf9559e567fae94b80da4def6ce12ac0e425f;hp=0082a556537e75e9080bf99cf10b923e1c53e207;hpb=ebd8f2a12cf7d63c735d4f7dc3f51620913fabfa;p=unfold.git diff --git a/engine/views.py b/engine/views.py index 0082a556..4a26b667 100644 --- a/engine/views.py +++ b/engine/views.py @@ -5,56 +5,70 @@ from django.template import RequestContext from django.template.loader import render_to_string from django.shortcuts import render_to_response +from django.contrib.auth.decorators import login_required + from plugins.verticallayout import VerticalLayout +from plugins.tabs import Tabs from plugins.simplelist import SimpleList +from plugins.slicelist import SliceList +from plugins.quickfilter import QuickFilter +from plugins.raw import Raw -from myslice.viewutils import topmenu_items, the_user, hard_wired_slice_names +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 test_plugin_view (request): - # having html tags right here is not a real use case - hard_wired_list=[] - hard_wired_list.append("this hard-wired list") - hard_wired_list.append("is defined") - hard_wired_list.append("in plugins.simplelist.py") - hard_wired_list.append("which in turn relies on") - hard_wired_list.append("template widget-template.html") - hard_wired_list.append("while it should of course") - hard_wired_list.append("instead issue a query") - hard_wired_list.append("and fill the DOM in js from there") - hard_wired_list.append("it would however maybe make sense") - hard_wired_list.append("to offer the option to 'datatablify'") - hard_wired_list.append("the list from the python code") - hard_wired_list.append("just like a standard plugin can be set as visible or not") - hard_wired_list.append("") - hard_wired_list.append("OTOH and IMHO, there should be two separate and explicit subclasses of SimpleList for slices or testbeds") - - plugin_main1 = SimpleList (list=hard_wired_list, - header='Hard wired', - foo='the value for foo') - plugin_main2 = SimpleList (hidable=True, - list=hard_wired_slice_names, - headers='Slices in main content') - layout = VerticalLayout (hidable=True, visible=True, - sons=[plugin_main1, plugin_main2] - ) - content_main = layout.render (request) + # variables that will get passed to this template + template_env = {} + + main_plugin = \ + VerticalLayout ( title='title for the vertical layout', + sons = [ SimpleList (title='SimpleList and dataTables', + list=hard_wired_list, + header='Hard wired', + foo='the value for foo', + with_datatables=True, + toggled=False), + Tabs (title='Sample Tabs', + # *** we select this one to be the active tab *** + active='raw2', + sons = [ Raw (title='a raw plugin',domid='raw1', + togglable=False, + html= 3*lorem_p), + SliceList(title='a slice list', + togglable=False, + list=hard_wired_slice_names), + Raw (title='raw title',domid='raw2', + togglable=False,html=lorem) ]), + SimpleList (title='SimpleList with slice names', + list=hard_wired_slice_names, + ), + QuickFilter (list=quickfilter_criterias, + title='QuickFilter in main content') ] ) + # define 'content_main' to the template engine + template_env [ 'content_main' ] = main_plugin.render(request) + ########## # 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) + 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 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.template_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))