AdminView: user management view created
[myslice.git] / portal / adminview.py
1 from manifold.core.query        import Query
2 from unfold.page                import Page
3
4 from ui.topmenu                 import topmenu_items_live, the_user
5 from manifold.manifoldapi       import execute_admin_query
6
7 from plugins.querytable         import QueryTable
8 from unfold.loginrequired       import LoginRequiredAutoLogoutView
9
10
11 # View for platforms
12 class AdminView(LoginRequiredAutoLogoutView):
13     template_name = "adminview.html"
14
15     def get_context_data(self, **kwargs):
16         page = Page(self.request)
17         page.add_js_files  ( [ "js/common.functions.js" ] )
18         #platform_query  = Query().get('local:platform').filter_by('disabled', '==', '0').select('platform','platform_longname','gateway_type')
19         #platform_query  = Query().get('local:platform').select('platform','platform_longname','gateway_type')
20         email_list = []
21         status_list = []
22         user_query  = Query().get('local:user').select('email','status')
23         user_details = execute_admin_query(self.request, user_query)
24         for user in user_details:
25             email_list.append(user['email'])
26             status_list.append(user['status'])
27
28         user_list = [{'email': t[0], 'status': t[1]}
29             for t in zip(email_list, status_list)]
30
31             
32         #page.enqueue_query(user_query)
33
34         #page.expose_js_metadata()
35         #userlist = QueryTable(
36         #    page  = page,
37         #    title = 'List',
38         #    domid = 'checkboxes',
39         #    # this is the query at the core of the slice list
40         #    query = user_query,
41         #    query_all = user_query,
42         #    checkboxes = False,
43         #    init_key   = 'user',
44         #    datatables_options = { 
45         #        'iDisplayLength': 10,
46         #        'bLengthChange' : True,
47         #        'bAutoWidth'    : True,
48         #        },
49         #)
50
51         context = super(AdminView, self).get_context_data(**kwargs)
52         context['person']   = self.request.user
53         context['user_list'] = user_list
54
55         # XXX This is repeated in all pages
56         # more general variables expected in the template
57         context['title'] = 'Users in MySlice'
58         # the menu items on the top
59         context['topmenu_items'] = topmenu_items_live('Admin', page)
60         # so we can sho who is logged
61         context['username'] = the_user(self.request)
62
63         context.update(page.prelude_env())
64
65         context['layout_1_or_2']="layout-unfold2.html" if not context['username'] else "layout-unfold1.html"
66
67         return context