from portal.forms import SliceRequestForm, ContactForm
from portal.util import RegistrationView, ActivationView
from portal.models import PendingUser, PendingSlice
-from portal.actions import authority_get_pi_emails, get_request_by_authority
+from portal.actions import authority_get_pi_emails, get_request_by_authority, manifold_add_user, manifold_update_user
from manifold.core.query import Query
from manifold.manifoldapi import execute_query
from unfold.page import Page
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
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
# select the logged in user [for the moment hard coded]
#get_user = PendingUser.objects.get(id='1') # here we will get the id/email from session e.g., person.email
# update first and last name
- get_user.first_name = edited_first_name
- get_user.last_name = edited_last_name
- get_user.save()
+ #get_user.first_name = edited_first_name
+ #get_user.last_name = edited_last_name
+ #get_user.save()
+ #user_params = {'config':'hello'}
+ #query = Query.update('local:user').set(user_params).select('config')
+ #results = execute_query(request,query)
+ #if not results:
+ # raise Exception, "Failed to update user: %s" % user_params['config']
+ #result, = results
+ #return result['config']
+ # create user is working fine :)
+ #user_params = ({'config':'"firstname":"HELLO"'},{'password':'hello'})
+ #user_params = { 'config':'{"firstname":"HEY"}'}
+ #user_params = {'email':'aa@aa.com','password':'demo'}
+ #manifold_add_user(request,user_params)
+ #manifold_update_user(request,user_params)
return HttpResponse('Sucess: First Name and Last Name Updated!')
elif 'submit_pass' in request.POST: