1 # Create your views here.
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
8 from django.contrib.auth.decorators import login_required
10 from unfold.page import Page
11 from manifold.core.query import Query
12 #from manifold.manifoldquery import ManifoldQuery
14 from plugins.stack import Stack
15 from plugins.lists.slicelist import SliceList
16 from plugins.querycode import QueryCode
17 from plugins.quickfilter import QuickFilter
19 from trash.trashutils import quickfilter_criterias
22 from ui.topmenu import topmenu_items, the_user
25 def dashboard_view (request):
29 slices_query = Query.get('slice').select('slice_hrn')
30 #old# # xxx filter : should filter on the slices the logged user can see
31 #old# # we don't have the user's hrn yet
32 #old# # in addition this currently returns all slices anyways
34 #old# sort='slice_hrn',)
35 page.enqueue_query (slices_query)
39 title="Putting stuff together",
43 title="Vizualize your query",
48 # we play with this one for demo purposes in dashboard.css
49 domid='myquickfilter',
51 title='play with filters',
52 criterias=quickfilter_criterias,
55 SliceList ( # setting visible attributes first
57 title='Asynchroneous SliceList',
59 with_datatables=False,
60 # this is the query at the core of the slice list
65 # variables that will get passed to the view-unfold2.html template
68 # define 'unfold_main' to the template engine
69 template_env [ 'unfold_main' ] = main_plugin.render(request)
71 # more general variables expected in the template
72 template_env [ 'title' ] = 'Test view for a full request cycle'
73 # the menu items on the top
74 template_env [ 'topmenu_items' ] = topmenu_items('dashboard', request)
75 # so we can sho who is logged
76 template_env [ 'username' ] = the_user (request)
78 # ########## add another plugin with the same request, on the RHS pane
79 # will show up in the right-hand side area named 'related'
80 related_plugin = SliceList (
82 title='Same request, other layout',
85 header='paginated slices',
89 # likewise but on the side view
90 template_env [ 'unfold_margin' ] = related_plugin.render (request)
92 # add our own css in the mix
93 #page.add_css_files ( 'css/dashboard.css')
95 # don't forget to run the requests
96 page.expose_queries ()
98 # xxx create another plugin with the same query and a different layout (with_datatables)
99 # show that it worls as expected, one single api call to backend and 2 refreshed views
101 # the prelude object in page contains a summary of the requirements() for all plugins
102 # define {js,css}_{files,chunks}
103 prelude_env = page.prelude_env()
104 template_env.update(prelude_env)
105 return render_to_response ('view-unfold2.html',template_env,
106 context_instance=RequestContext(request))