1 from manifold.core.query import Query
2 from unfold.page import Page
4 from ui.topmenu import topmenu_items_live, the_user
5 from manifoldapi.manifoldapi import execute_admin_query
7 from plugins.querytable import QueryTable
8 from unfold.loginrequired import LoginRequiredAutoLogoutView
9 from theme import ThemeView
13 class UsersView(LoginRequiredAutoLogoutView, ThemeView):
14 template_name = "usersview.html"
16 def get_context_data(self, **kwargs):
17 page = Page(self.request)
18 page.add_js_files ( [ "js/common.functions.js" ] )
19 #platform_query = Query().get('local:platform').filter_by('disabled', '==', '0').select('platform','platform_longname','gateway_type')
20 #platform_query = Query().get('local:platform').select('platform','platform_longname','gateway_type')
26 user_query = Query().get('local:user').select('email','status','config')
27 user_details = execute_admin_query(self.request, user_query)
29 for user in user_details:
31 email_list.append(user['email'])
33 if user['status'] == 0:
34 user_status = 'Disabled'
35 elif user['status'] == 1:
36 user_status = 'Validation Pending'
37 elif user['status'] == 2:
38 user_status = 'Enabled'
42 status_list.append(user_status)
45 user_config = json.loads(user['config'])
46 user_authority = user_config.get('authority','N/A')
47 authority_list.append(user_authority)
49 user_list = [{'email': t[0], 'status': t[1], 'authority':t[2]}
50 for t in zip(email_list, status_list, authority_list)]
53 #page.enqueue_query(user_query)
55 #page.expose_js_metadata()
56 #userlist = QueryTable(
59 # domid = 'checkboxes',
60 # # this is the query at the core of the slice list
62 # query_all = user_query,
65 # datatables_options = {
66 # 'iDisplayLength': 10,
67 # 'bLengthChange' : True,
68 # 'bAutoWidth' : True,
72 context = super(UsersView, self).get_context_data(**kwargs)
73 context['person'] = self.request.user
74 context['user_list'] = user_list
76 # XXX This is repeated in all pages
77 # more general variables expected in the template
78 context['title'] = 'Users in MySlice'
79 # the menu items on the top
80 context['topmenu_items'] = topmenu_items_live('Users', page)
81 # so we can sho who is logged
82 context['username'] = the_user(self.request)
83 context['theme'] = self.theme
84 context.update(page.prelude_env())
86 context['layout_1_or_2']="layout-unfold2.html" if not context['username'] else "layout-unfold1.html"