From: Loic Baron Date: Wed, 21 Jan 2015 14:35:08 +0000 (+0100) Subject: Projects: base and institution templates modified to work for authorities and projects X-Git-Tag: myslice-1.3~113^2~5 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=bc4a0bc510121f893be6b7c0d28168f9bc48149d;p=myslice.git Projects: base and institution templates modified to work for authorities and projects --- diff --git a/portal/institution.py b/portal/institution.py index ccdb6251..cf0055ce 100644 --- a/portal/institution.py +++ b/portal/institution.py @@ -30,29 +30,32 @@ class InstitutionView (LoginRequiredAutoLogoutView, ThemeView): env['theme'] = self.theme return render_to_response(self.template, env, context_instance=RequestContext(request)) - def get (self, request, state=None): + def get (self, request, authority_hrn=None, state=None): + print " ----- institution",authority_hrn env = self.default_env() - if request.user.is_authenticated(): env['person'] = self.request.user - user_query = Query().get('myslice:user').select('user_hrn','parent_authority').filter_by('user_hrn','==','$user_hrn') - user_details = execute_query(self.request, user_query) - try: - env['user_details'] = user_details[0] - except Exception,e: - env['error'] = "Please check your Credentials" - - try: - user_local_query = Query().get('local:user').select('config').filter_by('email','==',str(env['person'])) - user_local_details = execute_query(self.request, user_local_query) - user_local = user_local_details[0] - user_local_config = user_local['config'] - user_local_config = json.loads(user_local_config) - user_local_authority = user_local_config.get('authority') - if 'user_details' not in env or 'parent_authority' not in env['user_details'] or env['user_details']['parent_authority'] is None: - env['user_details'] = {'parent_authority': user_local_authority} - except Exception,e: - env['error'] = "Please check your Manifold user config" + if authority_hrn is None: + user_query = Query().get('myslice:user').select('user_hrn','parent_authority').filter_by('user_hrn','==','$user_hrn') + user_details = execute_query(self.request, user_query) + try: + env['user_details'] = user_details[0] + except Exception,e: + # If the Query fails, check in local DB + try: + user_local_query = Query().get('local:user').select('config').filter_by('email','==',str(env['person'])) + user_local_details = execute_query(self.request, user_local_query) + user_local = user_local_details[0] + user_local_config = user_local['config'] + user_local_config = json.loads(user_local_config) + user_local_authority = user_local_config.get('authority') + if 'user_details' not in env or 'parent_authority' not in env['user_details'] or env['user_details']['parent_authority'] is None: + env['user_details'] = {'parent_authority': user_local_authority} + except Exception,e: + env['error'] = "Please check your Credentials" + else: + env['project'] = True + env['user_details'] = {'parent_authority': authority_hrn} ## check user is pi or not platform_query = Query().get('local:platform').select('platform_id','platform','gateway_type','disabled') account_query = Query().get('local:account').select('user_id','platform_id','auth_type','config') diff --git a/portal/templates/base.html b/portal/templates/base.html index a4f146cc..decc1b38 100644 --- a/portal/templates/base.html +++ b/portal/templates/base.html @@ -85,7 +85,7 @@ $(document).ready(function() { var items = []; $.each( projects, function(i, val) { - items.push( "
  • " + val.authority_hrn + "
  • " ); + items.push( "
  • " + val.authority_hrn + "
  • " ); }); $("div#home-project-list").html($( "