From: Thierry Parmentelat Date: Sat, 11 Apr 2015 23:35:47 +0000 (+0200) Subject: suggestions for nicer layout in a handful portal modules X-Git-Tag: myslice-1.3~39^2 X-Git-Url: http://git.onelab.eu/?p=unfold.git;a=commitdiff_plain;h=69894313781f00267451de0266c7e31739bb483c suggestions for nicer layout in a handful portal modules --- diff --git a/portal/about.py b/portal/about.py index 99434a70..1bc51fc2 100644 --- a/portal/about.py +++ b/portal/about.py @@ -20,8 +20,8 @@ class AboutView (FreeAccessView, ThemeView): # expose this so we can mention the backend URL on the welcome page def default_env (self): return { - 'MANIFOLD_URL':ConfigEngine().manifold_url(), - } + 'MANIFOLD_URL':ConfigEngine().manifold_url(), + } def post (self,request): env = self.default_env() @@ -39,13 +39,14 @@ class AboutView (FreeAccessView, ThemeView): env['theme'] = self.theme env['section'] = "About" - env['username']=the_user(request) + env['username'] = the_user(request) env['topmenu_items'] = topmenu_items(None, request) - if state: env['state'] = state - elif not env['username']: env['state'] = None + 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" - + 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)) diff --git a/portal/account.py b/portal/account.py index 7d08e1cf..fc6d9550 100644 --- a/portal/account.py +++ b/portal/account.py @@ -10,14 +10,17 @@ import json, os, re, itertools class Account: def __init__ (self, platform_id, user_id): - account_query = Query().get('local:account').select('user_id','platform_id','auth_type','config').filter_by('platform_id', '==', platform_id).filter_by('user_id', '==', user_id) + account_query = Query().get('local:account')\ + .select('user_id','platform_id','auth_type','config')\ + .filter_by('platform_id', '==', platform_id)\ + .filter_by('user_id', '==', user_id) - account_details = execute_query(self.request, account_query) + account_details = execute_query(self.request, account_query) self.user_id = account_details['user_id'] self.platform_id = account_details['platform_id'] self.auth_type = account_details['auth_type'] self.config = account_details['config'] - account_config = json.loads(account_details['config']) + account_config = json.loads(account_details['config']) self.usr_hrn = account_config.get('user_hrn',None) self.pub_key = account_config.get('user_public_key',None) diff --git a/portal/accountview.py b/portal/accountview.py index 41e4d06e..c43d1606 100644 --- a/portal/accountview.py +++ b/portal/accountview.py @@ -38,7 +38,8 @@ class AccountView(LoginRequiredAutoLogoutView, ThemeView): metadata = page.get_metadata() page.expose_js_metadata() - page.add_js_files ( [ "js/jquery.validate.js", "js/my_account.register.js", "js/my_account.edit_profile.js","js/jquery-ui.js" ] ) + page.add_js_files ( [ "js/jquery.validate.js", "js/my_account.register.js", + "js/my_account.edit_profile.js","js/jquery-ui.js" ] ) page.add_css_files ( [ "css/onelab.css", "css/account_view.css","css/plugin.css" ] ) # Execute a Query to delegate credentials if necessary @@ -178,8 +179,13 @@ class AccountView(LoginRequiredAutoLogoutView, ThemeView): pub_key_list.append(account_pub_key) user_status_list.append(user_status) # combining 5 lists into 1 [to render in the template] - principal_acc_list = [{'platform_name': t[0], 'account_type': t[1], 'delegation_type': t[2], 'usr_hrn':t[3], 'usr_pubkey':t[4], 'user_status':t[5],} - for t in zip(platform_name_list, account_type_list, delegation_type_list, usr_hrn_list, pub_key_list, user_status_list)] + principal_acc_list = [ + {'platform_name' : pn, 'account_type' : at, + 'delegation_type' : dt, 'usr_hrn' : uh, + 'usr_pubkey' : up, 'user_status' : us,} + for pn, at, dt, uh, up, us in zip(platform_name_list, account_type_list, delegation_type_list, + usr_hrn_list, pub_key_list, user_status_list) + ] # to hide private key row if it doesn't exist if 'myslice' in platform_detail['platform']: account_config = json.loads(account_detail['config']) @@ -257,7 +263,9 @@ class AccountView(LoginRequiredAutoLogoutView, ThemeView): @login_required def get_myslice_platform(request): - platform_query = Query().get('local:platform').select('platform_id','platform','gateway_type','disabled','config').filter_by('platform','==','myslice') + platform_query = Query().get('local:platform')\ + .select('platform_id','platform','gateway_type','disabled','config')\ + .filter_by('platform','==','myslice') platform_details = execute_query(request, platform_query) for platform_detail in platform_details: return platform_detail @@ -265,7 +273,9 @@ def get_myslice_platform(request): @login_required def get_myslice_account(request): platform_myslice = get_myslice_platform(request) - account_query = Query().get('local:account').select('user_id','platform_id','auth_type','config').filter_by('platform_id','==',platform_myslice['platform_id']) + account_query = Query().get('local:account')\ + .select('user_id','platform_id','auth_type','config')\ + .filter_by('platform_id','==',platform_myslice['platform_id']) account_details = execute_query(request, account_query) for account_detail in account_details: return account_detail @@ -302,15 +312,19 @@ def account_process(request): for account_detail in account_details: for platform_detail in platform_details: # Add reference account to the platforms - if 'add_'+platform_detail['platform'] in request.POST or request.POST['button_value'] == 'add_'+platform_detail['platform']: + if 'add_'+platform_detail['platform'] in request.POST\ + or request.POST['button_value'] == 'add_'+platform_detail['platform']: platform_id = platform_detail['platform_id'] - user_params = {'platform_id': platform_id, 'user_id': user_id, 'auth_type': "reference", 'config': '{"reference_platform": "myslice"}'} + user_params = {'platform_id': platform_id, 'user_id': user_id, + 'auth_type': "reference", + 'config': '{"reference_platform": "myslice"}'} manifold_add_account(request,user_params) messages.info(request, 'Reference Account is added to the selected platform successfully!') return HttpResponseRedirect("/portal/account/") # Delete reference account from the platforms - if 'delete_'+platform_detail['platform'] in request.POST or request.POST['button_value'] == 'delete_'+platform_detail['platform']: + if 'delete_'+platform_detail['platform'] in request.POST\ + or request.POST['button_value'] == 'delete_'+platform_detail['platform']: platform_id = platform_detail['platform_id'] user_params = {'user_id':user_id} manifold_delete_account(request,platform_id, user_id, user_params) @@ -372,7 +386,8 @@ def account_process(request): updated_config = json.dumps(config) user_params = {'config': updated_config} else: # it's needed if the config is empty - user_config['config']= '{"firstname":"' + edited_first_name + '", "lastname":"'+ edited_last_name + '", "authority": "Unknown Authority"}' + user_config['config'] = '{{"firstname":"{}", "lastname":"{}", "authority": "Unknown Authority"}}'\ + .format(edited_first_name, edited_last_name) user_params = {'config': user_config['config']} # updating config local:user in manifold manifold_update_user(request, request.user.email,user_params) @@ -387,10 +402,10 @@ def account_process(request): for user_pass in user_details: user_pass['password'] = edited_password #updating password in local:user - user_params = { 'password': user_pass['password']} - manifold_update_user(request,request.user.email,user_params) + user_params = { 'password' : user_pass['password']} + manifold_update_user(request, request.user.email, user_params) # return HttpResponse('Success: Password Changed!!') - messages.success(request, 'Sucess: Password Updated.') + messages.success(request, 'Success: Password Updated.') return HttpResponseRedirect("/portal/account/") # XXX TODO: Factorize with portal/registrationview.py @@ -410,7 +425,8 @@ def account_process(request): account_config = json.loads(account_detail['config']) # preserving user_hrn user_hrn = account_config.get('user_hrn','N/A') - keypair = '{"user_public_key":'+ public_key + ', "user_private_key":'+ private_key + ', "user_hrn":"'+ user_hrn + '"}' + keypair = '{{"user_public_key":{}, "user_private_key":{}, "user_hrn":"{}"}}'\ + .format(public_key, private_key, user_hrn) #updated_config = json.dumps(account_config) # updating manifold #user_params = { 'config': keypair, 'auth_type':'managed'} @@ -425,17 +441,24 @@ def account_process(request): if 'keys' in result_sfa_user and result_sfa_user['keys'][0] == public_key: # updating manifold updated_config = json.dumps(account_config) - user_params = { 'config': keypair, 'auth_type':'managed'} + user_params = {'config' : keypair, 'auth_type' : 'managed'} manifold_update_account(request, user_id, user_params) - messages.success(request, 'Sucess: New Keypair Generated! Delegation of your credentials will be automatic.') + messages.success(request, + 'Success: New Keypair Generated! ' + 'Delegation of your credentials will be automatic.') else: raise Exception,"Keys are not matching" except Exception as e: - messages.error(request, 'Error: An error occured during the update of your public key at the Registry, or your public key is not matching the one stored.') + messages.error(request, + 'Error: An error occured during the update ' + 'of your public key at the Registry, or your ' + 'public key is not matching the one stored.') logger.error("Exception in accountview {}".format(e)) return HttpResponseRedirect("/portal/account/") else: - messages.error(request, 'Account error: You need an account in myslice platform to perform this action') + messages.error(request, + 'Account error: You need an account in ' + 'myslice platform to perform this action') return HttpResponseRedirect("/portal/account/") elif 'upload_key' in request.POST: @@ -452,23 +475,31 @@ def account_process(request): account_config = json.loads(account_detail['config']) # preserving user_hrn user_hrn = account_config.get('user_hrn','N/A') - file_content = '{"user_public_key":"'+ file_content + '", "user_hrn":"'+ user_hrn +'"}' + file_content = '{"user_public_key":"{}", "user_hrn":"{}"}'\ + .format(file_content, user_hrn) #file_content = re.sub("\r", "", file_content) #file_content = re.sub("\n", "\\n",file_content) file_content = ''.join(file_content.split()) #update manifold local:account table - user_params = { 'config': file_content, 'auth_type':'user'} + user_params = {'config' : file_content, 'auth_type':'user'} manifold_update_account(request, user_id, user_params) # updating sfa user_pub_key = {'keys': file_content} sfa_update_user(request, user_hrn, user_pub_key) - messages.success(request, 'Publickey uploaded! Please delegate your credentials using SFA: http://trac.myslice.info/wiki/DelegatingCredentials') + messages.success(request, + 'Publickey uploaded! Please delegate your ' + 'credentials using SFA: ' + 'http://trac.myslice.info/wiki/DelegatingCredentials') return HttpResponseRedirect("/portal/account/") else: - messages.error(request, 'RSA key error: Please upload a valid RSA public key [.txt or .pub].') + messages.error(request, + 'RSA key error: Please upload ' + 'a valid RSA public key [.txt or .pub].') return HttpResponseRedirect("/portal/account/") else: - messages.error(request, 'Account error: You need an account in myslice platform to perform this action') + messages.error(request, + 'Account error: You need an account ' + 'in myslice platform to perform this action') return HttpResponseRedirect("/portal/account/") elif 'dl_pubkey' in request.POST or request.POST['button_value'] == 'dl_pubkey': @@ -483,7 +514,9 @@ def account_process(request): return response break else: - messages.error(request, 'Account error: You need an account in myslice platform to perform this action') + messages.error(request, + 'Account error: You need an account ' + 'in myslice platform to perform this action') return HttpResponseRedirect("/portal/account/") elif 'dl_pkey' in request.POST or request.POST['button_value'] == 'dl_pkey': @@ -498,11 +531,15 @@ def account_process(request): response['Content-Disposition'] = 'attachment; filename="privkey.txt"' return response else: - messages.error(request, 'Download error: Private key is not stored in the server') + messages.error(request, + 'Download error: ' + 'Private key is not stored in the server') return HttpResponseRedirect("/portal/account/") else: - messages.error(request, 'Account error: You need an account in myslice platform to perform this action') + messages.error(request, + 'Account error: You need an account ' + 'in myslice platform to perform this action') return HttpResponseRedirect("/portal/account/") elif 'delete' in request.POST or request.POST['button_value'] == 'delete': @@ -519,8 +556,13 @@ def account_process(request): updated_config = json.dumps(account_config) user_params = { 'config': updated_config, 'auth_type':'user'} manifold_update_account(request, user_id, user_params) - messages.success(request, 'Private Key deleted. You need to delegate credentials manually once it expires.') - messages.success(request, 'Once your credentials expire, Please delegate manually using SFA: http://trac.myslice.info/wiki/DelegatingCredentials') + messages.success(request, + 'Private Key deleted. You need to delegate ' + 'credentials manually once it expires.') + messages.success(request, + 'Once your credentials expire, Please delegate ' + 'manually using SFA: ' + 'http://trac.myslice.info/wiki/DelegatingCredentials') return HttpResponseRedirect("/portal/account/") else: messages.error(request, 'Delete error: Private key is not stored in the server') diff --git a/portal/sliceview.py b/portal/sliceview.py index 309347c5..7bf139d1 100644 --- a/portal/sliceview.py +++ b/portal/sliceview.py @@ -37,4 +37,10 @@ class SliceView (LoginRequiredView, ThemeView): pi = "is_not_pi" else: pi = "is_pi" - return render_to_response(self.template, {"slice": slicename, "theme": self.theme, "username": request.user,"pi":pi, "section": "Slice %s" % slicename }, context_instance=RequestContext(request)) + return render_to_response(self.template, + {"slice" : slicename, + "theme" : self.theme, + "username" : request.user, + "pi" : pi, + "section" : "Slice {}".format(slicename) }, + context_instance=RequestContext(request))