X-Git-Url: http://git.onelab.eu/?p=myslice.git;a=blobdiff_plain;f=portal%2Fviews.py;h=f2d4aed26414e9202c8ff77667569085e3f7d838;hp=d4fa22ea5a7991af9f9a58a3cb28885b570622ff;hb=814c26b7693c50f9bb2a4e52e3000d9b8cc2ab80;hpb=8eafc93dfc03b2671a99921f61f0779ec61a623c diff --git a/portal/views.py b/portal/views.py index d4fa22ea..f2d4aed2 100644 --- a/portal/views.py +++ b/portal/views.py @@ -609,33 +609,57 @@ 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 = '' + platform_name_list = [] + account_type_list = [] + usr_hrn_list = [] + pub_key_list = [] + 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') + + platform_name_list.append(platform_name) + account_type_list.append(account_type) + usr_hrn_list.append(account_usr_hrn) + pub_key_list.append(account_pub_key) - #page.enqueue_query(network_query) - - #page.expose_js_metadata() - #page.expose_queries() - - #userlist = SimpleList( - # title = None, - # page = page, - # key = 'user_id', - # query = network_query, - #) + # combining 4 lists into 1 [to render in the template] + lst = [{'platform_name': t[0], 'account_type': t[1], 'usr_hrn':t[2], 'usr_pubkey':t[3]} for t in zip(platform_name_list, account_type_list, usr_hrn_list, pub_key_list)] + #print "test" + #print lst context = super(AccountView, self).get_context_data(**kwargs) + context['data'] = lst 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 +669,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