X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=portal%2Fvalidationview.py;h=10471308fe7d92e851654ea376a86903a5c28926;hb=refs%2Fheads%2Ffibre;hp=3daeaf8cb6b892339580b4bafe23da6efadabb70;hpb=3d16aa36af64e8e0e5ce3a48c34df158fbfaae29;p=unfold.git diff --git a/portal/validationview.py b/portal/validationview.py index 3daeaf8c..10471308 100644 --- a/portal/validationview.py +++ b/portal/validationview.py @@ -28,7 +28,7 @@ from django.http import HttpResponseRedirect, HttpResponse from django.shortcuts import render from django.template.loader import render_to_string -from unfold.loginrequired import FreeAccessView +from unfold.loginrequired import LoginRequiredAutoLogoutView from ui.topmenu import topmenu_items_live, the_user from portal.event import Event @@ -41,15 +41,16 @@ from plugins.raw import Raw from portal.models import PendingUser, PendingSlice from portal.actions import get_requests -from manifold.manifoldapi import execute_query +from manifoldapi.manifoldapi import execute_query from manifold.core.query import Query from unfold.page import Page -from theme import ThemeView +from myslice.theme import ThemeView -class ValidatePendingView(FreeAccessView, ThemeView): +class ValidatePendingView(LoginRequiredAutoLogoutView, ThemeView): template_name = "validate_pending.html" def get_context_data(self, **kwargs): + pi = "" # We might have slices on different registries with different user accounts # We note that this portal could be specific to a given registry, to which we register users, but i'm not sure that simplifies things # Different registries mean different identities, unless we identify via SFA HRN or have associated the user email to a single hrn @@ -60,6 +61,7 @@ class ValidatePendingView(FreeAccessView, ThemeView): ctx_my_authorities = {} ctx_delegation_authorities = {} ctx_sub_authorities = {} + dest = {} # The user need to be logged in @@ -152,8 +154,17 @@ class ValidatePendingView(FreeAccessView, ThemeView): pi_authorities_query = Query.get('user').filter_by('user_hrn', '==', '$user_hrn').select('pi_authorities') pi_authorities_tmp = execute_query(self.request, pi_authorities_query) pi_authorities = set() - for pa in pi_authorities_tmp: - pi_authorities |= set(pa['pi_authorities']) + try: + for pa in pi_authorities_tmp: + pi_authorities |= set(pa['pi_authorities']) + except: + print 'No pi_authorities' +# TODO: exception if no parent_authority +# try: +# for pa in pi_authorities_tmp: +# pi_authorities |= set(pa['pi_authorities']) +# except: + # # include all sub-authorities of the PI # # if PI on ple, include all sub-auths ple.upmc, ple.inria and so on... @@ -246,9 +257,12 @@ class ValidatePendingView(FreeAccessView, ThemeView): if not auth_hrn in dest: dest[auth_hrn] = [] - dest[auth_hrn].append(request) + dest[auth_hrn].append(request) context = super(ValidatePendingView, self).get_context_data(**kwargs) + print "testing" + print ctx_my_authorities + print auth_hrn context['my_authorities'] = ctx_my_authorities context['sub_authorities'] = ctx_sub_authorities context['delegation_authorities'] = ctx_delegation_authorities @@ -260,9 +274,9 @@ class ValidatePendingView(FreeAccessView, ThemeView): context['topmenu_items'] = topmenu_items_live('Validation', page) # so we can sho who is logged context['username'] = the_user(self.request) - + context['pi'] = "is_pi" context['theme'] = self.theme - + context['section'] = "Requests" # XXX We need to prepare the page for queries #context.update(page.prelude_env())