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
11 from django.shortcuts import render, render_to_response
16 class UsersView(LoginRequiredAutoLogoutView, ThemeView):
17 template_name = "usersview.html"
18 def dispatch(self, *args, **kwargs):
19 return super(UsersView, self).dispatch(*args, **kwargs)
22 def get_context_data(self, **kwargs):
23 page = Page(self.request)
24 page.add_js_files ( [ "js/common.functions.js" ] )
25 #platform_query = Query().get('local:platform').filter_by('disabled', '==', '0').select('platform','platform_longname','gateway_type')
26 #platform_query = Query().get('local:platform').select('platform','platform_longname','gateway_type')
32 user_query = Query().get('local:user').select('email','status','config')
33 user_details = execute_admin_query(self.request, user_query)
35 for user in user_details:
37 email_list.append(user['email'])
39 if user['status'] == 0:
40 user_status = 'Disabled'
41 elif user['status'] == 1:
42 user_status = 'Validation Pending'
43 elif user['status'] == 2:
44 user_status = 'Enabled'
48 status_list.append(user_status)
51 user_config = json.loads(user['config'])
52 user_authority = user_config.get('authority','N/A')
53 authority_list.append(user_authority)
55 user_list = [{'email': t[0], 'status': t[1], 'authority':t[2]}
56 for t in zip(email_list, status_list, authority_list)]
58 context = super(UsersView, self).get_context_data(**kwargs)
59 context['person'] = self.request.user
60 context['user_list'] = user_list
62 # XXX This is repeated in all pages
63 # more general variables expected in the template
64 context['title'] = 'Users in MySlice'
65 # the menu items on the top
66 # so we can sho who is logged
67 context['username'] = the_user(self.request)
68 context['theme'] = self.theme
70 context['layout_1_or_2']="layout-unfold2.html" if not context['username'] else "layout-unfold1.html"
71 #prelude_env = page.prelude_env()
72 #context.update(prelude_env)
74 return render_to_response(self.template)