X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=portal%2Fviews.py;h=bcb724128b17356e092d8768c611a2a66d59f66e;hb=a3ac89597a0423568ad4cb659111b277683134bc;hp=d4fa22ea5a7991af9f9a58a3cb28885b570622ff;hpb=8eafc93dfc03b2671a99921f61f0779ec61a623c;p=myslice.git diff --git a/portal/views.py b/portal/views.py index d4fa22ea..bcb72412 100644 --- a/portal/views.py +++ b/portal/views.py @@ -609,14 +609,36 @@ class AccountView(TemplateView): def get_context_data(self, **kwargs): #page = Page(self.request) - user_query = Query().get('local:user').select('config') - user_accounts = execute_query(self.request, user_query) + user_query = Query().get('local:user').select('config','email') + user_details = execute_query(self.request, user_query) - for user_account in user_accounts: - config = json.loads(user_account['config']) - - #print "THis is a test" - #print config['firstname'] + # not always found in user_details... + config={} + for user_detail in user_details: + #email = user_detail['email'] + if user_detail['config']: + config = json.loads(user_detail['config']) + + platform_query = Query().get('local:platform').select('platform_id','platform') + account_query = Query().get('local:account').select('user_id','platform_id','auth_type','config') + platform_details = execute_query(self.request, platform_query) + account_details = execute_query(self.request, account_query) + + # initial assignment needed for users having no account + platform_name = '' + account_type = '' + account_usr_hrn = '' + account_pub_key = '' + for account_detail in account_details: + for platform_detail in platform_details: + if platform_detail['platform_id'] == account_detail['platform_id']: + platform_name = platform_detail['platform'] + account_type = account_detail['auth_type'] + account_config = json.loads(account_detail['config']) + + # a bit more pythonic + account_usr_hrn = account_config.get('user_hrn','N/A') + account_pub_key = account_config.get('user_public_key','N/A') #page.enqueue_query(network_query) @@ -631,11 +653,15 @@ class AccountView(TemplateView): #) context = super(AccountView, self).get_context_data(**kwargs) + context['platform_name'] = platform_name + context['account_type'] = account_type + context['account_usr_hrn'] = account_usr_hrn + context['account_pub_key'] = account_pub_key context['person'] = self.request.user - context ['fullname'] = config['firstname'] +' '+ config['lastname'] - context ['firstname'] = config['firstname'] - context ['lastname'] = config['lastname'] - context ['affiliation'] = config['affiliation'] + context ['firstname'] = config.get('firstname',"?") + context ['lastname'] = config.get('lastname',"?") + context ['fullname'] = context['firstname'] +' '+ context['lastname'] + context ['affiliation'] = config.get('affiliation',"Unknown Affiliation") #context['users'] = userlist.render(self.request) # XXX This is repeated in all pages @@ -645,7 +671,7 @@ class AccountView(TemplateView): context['topmenu_items'] = topmenu_items('My Account', self.request) # so we can sho who is logged context['username'] = the_user(self.request) - context ['firstname'] = config['firstname'] +# context ['firstname'] = config['firstname'] #context.update(page.prelude_env()) return context