X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=portal%2Fprojectrequestview.py;h=2757b94a1462bc5c75ad817985c493ec58bc89f6;hb=0300e4a519eb44fa1e2b769f1c871471ebfe0620;hp=69941b321841005da0991fb8bef97a0a0742f9be;hpb=db5979f2fce0bb22fca29552f47c26be9654b917;p=myslice.git diff --git a/portal/projectrequestview.py b/portal/projectrequestview.py index 69941b32..2757b94a 100644 --- a/portal/projectrequestview.py +++ b/portal/projectrequestview.py @@ -1,3 +1,4 @@ +import requests import json import time import re @@ -10,7 +11,7 @@ from manifoldapi.manifoldapi import execute_admin_query, execute_query from unfold.loginrequired import LoginRequiredAutoLogoutView -from portal.actions import create_pending_project, create_pending_join, sfa_add_authority, authority_add_pis, is_pi +from portal.actions import create_pending_project, create_pending_join, sfa_add_authority, authority_add_pis, is_pi, getAuthorities from portal.models import PendingProject, PendingJoin from myslice.theme import ThemeView @@ -19,20 +20,6 @@ from myslice.settings import logger class ProjectRequestView(LoginRequiredAutoLogoutView, ThemeView): template_name = 'projectrequest_view.html' - def getAuthorities(self, request): - if self.theme == 'fed4fire': - authorities_query = Query.get('myslice:authority').select('authority_hrn') - else: - authorities_query = Query.get('authority').select('name', 'authority_hrn') - authorities = execute_admin_query(request, authorities_query) - if authorities is not None: - # Remove the root authority from the list - matching = [s for s in authorities if "." in s['authority_hrn']] - authorities = sorted(matching, key=lambda k: k['authority_hrn']) - if self.theme != 'fed4fire': - authorities = sorted(matching, key=lambda k: k['name']) - return authorities - def getUserAuthority(self, request): # Get user_email (XXX Would deserve to be simplified) user_query = Query().get('local:user').select('email','config') @@ -86,7 +73,7 @@ class ProjectRequestView(LoginRequiredAutoLogoutView, ThemeView): user_email = self.getUserEmail(wsgi_request) - authorities = self.getAuthorities(wsgi_request) + authorities = getAuthorities(wsgi_request) user_authority = self.getUserAuthority(wsgi_request) @@ -119,6 +106,7 @@ class ProjectRequestView(LoginRequiredAutoLogoutView, ThemeView): 'authority_hrn' : wsgi_request.POST.get('authority_name', ''), 'project_name' : project_name, 'purpose' : wsgi_request.POST.get('purpose', ''), + 'url' : wsgi_request.POST.get('url', ''), } # for new projects max project_name length is 10 @@ -140,7 +128,7 @@ class ProjectRequestView(LoginRequiredAutoLogoutView, ThemeView): if not errors: logger.info("is_pi on auth_hrn = {}".format(user_authority)) - if is_pi(wsgi_request, user_hrn, user_authority): + if is_pi(wsgi_request, user_hrn, post['authority_hrn']): # PIs can directly create/join project in their own authority... if 'join' in wsgi_request.POST: # join existing project