platformsview.py
[myslice.git] / portal / platformsview.py
1 from django.views.generic.base   import TemplateView
2
3 from manifold.core.query         import Query
4 from unfold.page                 import Page
5
6 from myslice.viewutils           import topmenu_items, the_user
7
8 from plugins.hazelnut            import Hazelnut
9
10 # View for platforms
11 class PlatformsView(TemplateView):
12     template_name = "platforms.html"
13
14     def get_context_data(self, **kwargs):
15         page = Page(self.request)
16
17         #network_query  = Query().get('local:platform').filter_by('disabled', '==', '0').select('platform','platform_longname','gateway_type')
18         network_query  = Query().get('local:platform').select('platform','platform_longname','gateway_type')
19         page.enqueue_query(network_query)
20
21         page.expose_js_metadata()
22         page.expose_queries()
23         networklist = Hazelnut(
24             page  = page,
25             title = 'List',
26             domid = 'checkboxes',
27             # this is the query at the core of the slice list
28             query = network_query,
29             query_all = network_query,
30             checkboxes = False,
31             datatables_options = {
32             # for now we turn off sorting on the checkboxes columns this way
33             # this of course should be automatic in hazelnut
34             'aoColumns'      : [None, None, None, None, {'bSortable': False}],
35             'iDisplayLength' : 25,
36             'bLengthChange'  : True,
37             },
38         )
39 #
40 #        networklist = SimpleList(
41 #            title = None,
42 #            page  = page,
43 #            key   = 'platform',
44 #            query = network_query,
45 #        )
46
47         context = super(PlatformsView, self).get_context_data(**kwargs)
48         context['person']   = self.request.user
49         context['networks'] = networklist.render(self.request)
50
51         # XXX This is repeated in all pages
52         # more general variables expected in the template
53         context['title'] = 'Platforms connected to MySlice'
54         # the menu items on the top
55         context['topmenu_items'] = topmenu_items('Platforms', self.request)
56         # so we can sho who is logged
57         context['username'] = the_user(self.request)
58
59         context.update(page.prelude_env())
60
61         return context