X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=portal%2Fusersview.py;h=131417501011efd6291920a7bdb82a72942aa1d5;hb=refs%2Fheads%2Fonelab;hp=8d7f37e72a3a8e57e306cf59541c1e1739d32bec;hpb=3d16aa36af64e8e0e5ce3a48c34df158fbfaae29;p=myslice.git diff --git a/portal/usersview.py b/portal/usersview.py index 8d7f37e7..13141750 100644 --- a/portal/usersview.py +++ b/portal/usersview.py @@ -1,23 +1,36 @@ +from django.contrib.auth import authenticate, login, logout +from django.template import RequestContext +from django.shortcuts import render, render_to_response + +from manifoldapi.manifoldresult import ManifoldResult +from ui.topmenu import topmenu_items, the_user +from myslice.configengine import ConfigEngine 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 manifoldapi.manifoldapi import execute_admin_query from unfold.loginrequired import LoginRequiredAutoLogoutView -from theme import ThemeView + +from myslice.theme import ThemeView import json -# View for platforms -class UsersView(LoginRequiredAutoLogoutView, ThemeView): - template_name = "usersview.html" +class UsersView (LoginRequiredAutoLogoutView, ThemeView): + template_name = 'usersview.html' + + # expose this so we can mention the backend URL on the welcome page + def default_env (self): + return { + 'MANIFOLD_URL':ConfigEngine().manifold_url(), + } + + def post (self,request): + env = self.default_env() + env['theme'] = self.theme + return render_to_response(self.template, env, context_instance=RequestContext(request)) + + def get (self, request, state=None): + env = self.default_env() + - 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 = [] @@ -41,48 +54,29 @@ class UsersView(LoginRequiredAutoLogoutView, ThemeView): 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) + if user['config'] is not None: + 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['theme'] = self.theme - context.update(page.prelude_env()) + if request.user.is_authenticated(): + env['person'] = self.request.user + else: + env['person'] = None + + env['theme'] = self.theme + env['user_list']= user_list - context['layout_1_or_2']="layout-unfold2.html" if not context['username'] else "layout-unfold1.html" + env['username']=the_user(request) + env['topmenu_items'] = topmenu_items(None, request) + if state: env['state'] = state + elif not env['username']: env['state'] = None + # use one or two columns for the layout - not logged in users will see the login prompt + env['layout_1_or_2']="layout-unfold2.html" if not env['username'] else "layout-unfold1.html" + + + return render_to_response(self.template, env, context_instance=RequestContext(request)) - return context