tweaked the test pluginview
[myslice.git] / trash / pluginview.py
1 # Create your views here.
2
3 from django.core.context_processors     import csrf
4 from django.template                    import RequestContext
5 from django.template.loader             import render_to_string
6 from django.shortcuts                   import render_to_response
7
8 from django.contrib.auth.decorators     import login_required
9
10 from unfold.page                        import Page
11 from manifold.core.query                import Query
12
13 from plugins.stack.stack                import Stack
14 from plugins.tabs.tabs                  import Tabs
15 from plugins.lists.staticlist           import StaticList
16 from plugins.quickfilter.quickfilter    import QuickFilter
17 from plugins.querycode.querycode        import QueryCode
18 from plugins.raw.raw                    import Raw
19 from plugins.messages.messages          import Messages
20 from plugins.hazelnut                   import Hazelnut
21 from plugins.updater                    import Updater
22
23 from myslice.viewutils                  import topmenu_items, the_user
24 from trash.trashutils                  import hard_wired_slice_names, hard_wired_list, lorem_p, lorem, quickfilter_criterias
25
26 #might be useful or not depending on the context
27 #@login_required
28 def test_plugin_view (request):
29
30     page = Page(request)
31     
32     page.expose_js_metadata()
33
34     # variables that will get passed to this template
35     template_env = {}
36     
37     slicename='ple.inria.heartbeat'
38     main_query = Query.get('resource').filter_by('slice_hrn', '=', slicename).select(['network','type','hrn','hostname','sliver'])
39     # without an hazelnut, this would use use : run_it=False as nothing would listen to the results
40     page.enqueue_query (main_query, # run_it=False
41                         )
42
43     main_plugin = \
44         Stack (
45         page=page,
46         title='thestack',
47         togglable=True,
48         domid='stack',
49         sons=[ \
50 # this updater thing never made it to production                
51 #            Updater (
52 #                    page=page,
53 #                    title="Won't show up as non togglable",
54 #                    query=main_query,
55 #                    label="Update me",
56 #                    domid="the-updater",
57 #                ),
58         # make sure the 2 things work together
59             Messages (
60                     page=page,
61                     title="Transient Runtime messages",
62                     domid="messages-transient",
63                     levels='ALL',
64                     ),
65             Hazelnut (
66                     page=page,
67                     title="Slice %s - checkboxes interacting w/ updater"%slicename,
68                     query=main_query,
69                     domid="hazelnut",
70                     checkboxes=True,
71                     togglable=True,
72                     ),
73             Messages (
74                     page=page,
75                     title="Inline Runtime messages",
76                     domid="messages",
77                     levels='ALL',
78                     togglable=True,
79                     transient=False,
80                     ),
81             Raw (
82                     page=page,
83                     title="issue messages",
84                     togglable=True,
85                     html="""
86 <input type="button" id="bouton" value="Click me" />
87 """,
88                     ),
89             ])
90
91     page.add_js_chunks ( """
92 function issue_debug() {console.log("issue_debug");messages.debug("issue_debug");};
93 $(function(){$("#bouton").click(issue_debug);});
94 """)
95
96     # define 'unfold1_main' to the template engine
97     template_env [ 'unfold1_main' ] = main_plugin.render(request)
98
99     # more general variables expected in the template
100     template_env [ 'title' ] = 'Single Plugin View' 
101     template_env [ 'topmenu_items' ] = topmenu_items('plugin', request) 
102     template_env [ 'username' ] = the_user (request) 
103
104     # run queries when we have any
105     page.expose_queries ()
106
107     # the prelude object in page contains a summary of the requirements() for all plugins
108     # define {js,css}_{files,chunks}
109     prelude_env = page.prelude_env()
110     template_env.update(prelude_env)
111     return render_to_response ('view-unfold1.html',template_env,
112                                context_instance=RequestContext(request))
113