X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=portal%2Fusersview.py;fp=portal%2Fusersview.py;h=8dfd915622c311b594db45393c69518917e8106c;hb=b06ae7970218f20f5a780033931533e951542299;hp=0000000000000000000000000000000000000000;hpb=350a118a4f8e3329f39fe7f245cb27388a3756f0;p=myslice.git diff --git a/portal/usersview.py b/portal/usersview.py new file mode 100644 index 00000000..8dfd9156 --- /dev/null +++ b/portal/usersview.py @@ -0,0 +1,88 @@ +from manifold.core.query import Query +from unfold.page import Page + +from ui.topmenu import topmenu_items_live, the_user +from manifold.manifoldapi import execute_admin_query + +from plugins.querytable import QueryTable +from unfold.loginrequired import LoginRequiredAutoLogoutView + +import json + +# View for platforms +class UsersView(LoginRequiredAutoLogoutView): + template_name = "usersview.html" + + def get_context_data(self, **kwargs): + page = Page(self.request) + page.add_js_files ( [ "js/common.functions.js" ] ) + #platform_query = Query().get('local:platform').filter_by('disabled', '==', '0').select('platform','platform_longname','gateway_type') + #platform_query = Query().get('local:platform').select('platform','platform_longname','gateway_type') + email_list = [] + status_list = [] + authority_list = [] + config={} + + user_query = Query().get('local:user').select('email','status','config') + user_details = execute_admin_query(self.request, user_query) + + for user in user_details: + # get email + email_list.append(user['email']) + # get status + if user['status'] == 0: + user_status = 'Disabled' + elif user['status'] == 1: + user_status = 'Validation Pending' + elif user['status'] == 2: + user_status = 'Enabled' + else: + user_status = 'N/A' + + status_list.append(user_status) + #get authority + #if user['config']: + user_config = json.loads(user['config']) + user_authority = user_config.get('authority','N/A') + authority_list.append(user_authority) + + user_list = [{'email': t[0], 'status': t[1], 'authority':t[2]} + for t in zip(email_list, status_list, authority_list)] + + + #page.enqueue_query(user_query) + + #page.expose_js_metadata() + #userlist = QueryTable( + # page = page, + # title = 'List', + # domid = 'checkboxes', + # # this is the query at the core of the slice list + # query = user_query, + # query_all = user_query, + # checkboxes = False, + # init_key = 'user', + # datatables_options = { + # 'iDisplayLength': 10, + # 'bLengthChange' : True, + # 'bAutoWidth' : True, + # }, + #) + + context = super(UsersView, self).get_context_data(**kwargs) + context['person'] = self.request.user + context['user_list'] = user_list + + # XXX This is repeated in all pages + # more general variables expected in the template + context['title'] = 'Users in MySlice' + # the menu items on the top + context['topmenu_items'] = topmenu_items_live('Users', page) + # so we can sho who is logged + context['username'] = the_user(self.request) + + context.update(page.prelude_env()) + + context['layout_1_or_2']="layout-unfold2.html" if not context['username'] else "layout-unfold1.html" + + return context