always use messages.* stuff
[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.manifoldquery import ManifoldQuery
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.raw.raw import Raw
18 from plugins.messages.messages import Messages
19 from plugins.hazelnut.hazelnut import Hazelnut
20 from plugins.updater.updater import Updater
21
22 from myslice.viewutils import topmenu_items, the_user
23 from myslice.viewutils import hard_wired_slice_names, hard_wired_list, lorem_p, lorem, quickfilter_criterias
24
25 @login_required
26 def test_plugin_view (request):
27
28     page = Page(request)
29     
30     # variables that will get passed to this template
31     template_env = {}
32     
33     slicename='ple.inria.omftest'
34     main_query = ManifoldQuery (action='get',
35                                 subject='resource',
36                                 timestamp='latest',
37                                 fields=['network','type','hrn','hostname'],
38                                 filters= [ [ 'slice_hrn', '=', slicename, ] ],
39                                 )
40     # don't run this one as nothing listens to this
41     page.enqueue_query (main_query, run_it=False)
42
43     main_plugin = \
44         Stack (
45         page=page,
46         title='thestack',
47         togglable=False,
48         sons=[ \
49             Updater (
50                     page=page,
51                     title="Update me",
52                     query=main_query,
53                     label="Update me",
54                     domid="the-updater",
55                     ),
56             Messages (
57                 page=page,
58                 title="Runtime messages",
59                 domid="msgs-pre",
60                 levels='ALL',
61                 ),
62             ])
63
64     # define 'unfold1_main' to the template engine
65     template_env [ 'unfold1_main' ] = main_plugin.render(request)
66
67     # more general variables expected in the template
68     template_env [ 'title' ] = 'Single Plugin View' 
69     template_env [ 'topmenu_items' ] = topmenu_items('plugin', request) 
70     template_env [ 'username' ] = the_user (request) 
71
72     # run queries when we have any
73     page.expose_queries ()
74
75     # the prelude object in page contains a summary of the requirements() for all plugins
76     # define {js,css}_{files,chunks}
77     prelude_env = page.prelude_env()
78     template_env.update(prelude_env)
79     return render_to_response ('view-unfold1.html',template_env,
80                                context_instance=RequestContext(request))
81