project request fix
[unfold.git] / portal / projectrequestview.py
index aaa79b2..819cce5 100644 (file)
@@ -20,8 +20,10 @@ class ProjectRequestView(LoginRequiredAutoLogoutView, ThemeView):
         authorities_query = Query.get('authority').select('name', 'authority_hrn')
         authorities = execute_admin_query(request, authorities_query)
         if authorities is not None:
-            authorities = sorted(authorities, key=lambda k: k['authority_hrn'])
-            authorities = sorted(authorities, key=lambda k: k['name'])
+            # 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'])
+            authorities = sorted(matching, key=lambda k: k['name'])
         return authorities
     
     def getUserAuthority(self, request):
@@ -104,19 +106,23 @@ class ProjectRequestView(LoginRequiredAutoLogoutView, ThemeView):
                     'project_name'      : wsgi_request.POST.get('project_name', ''),
                     'purpose'           : wsgi_request.POST.get('purpose', ''),
                 }
+                
+                # for new projects max project_name length is 10
+                if (len(post['project_name']) >10):
+                    errors.append('Project name can be maximum 10 characters long')
 
-                if (post['authority_hrn'] is None or post['authority_hrn'] == ''):
-                    errors.append('Organization is mandatory')
+                #if (post['authority_hrn'] is None or post['authority_hrn'] == ''):
+                #    errors.append('Organization is mandatory')
     
                 if (post['purpose'] is None or post['purpose'] == ''):
-                    errors.append('Experiment purpose is mandatory')
+                    errors.append('Project purpose is mandatory')
 
                 if (re.search(r'^[A-Za-z0-9_]*$', post['project_name']) == None):
                     errors.append('Project name may contain only letters, numbers, and underscore.')
 
             # What kind of project name is valid?
             if (post['project_name'] is None or post['project_name'] == ''):
-                errors.append('Project name is mandatory')
+                errors.append('Project name is mandatory')   
             
             if not errors:
                 print "is_pi on auth_hrn = ", user_authority
@@ -128,14 +134,14 @@ class ProjectRequestView(LoginRequiredAutoLogoutView, ThemeView):
                         hrn = post['authority_hrn'] + '.' + post['project_name']
                         sfa_add_authority(wsgi_request, {'authority_hrn':hrn})
                         authority_add_pis(wsgi_request, hrn, user_hrn)
-                    self.template_name = 'slice-request-done-view.html'
+                    self.template_name = 'project-request-done-view.html'
                 else:
                     # Otherwise a wsgi_request is sent to the PI
                     if 'join' in wsgi_request.POST:
                         create_pending_join(wsgi_request, post)
                     else:
                         create_pending_project(wsgi_request, post)
-                    self.template_name = 'slice-request-ack-view.html'
+                    self.template_name = 'project-request-ack-view.html'
 
         # retrieves the pending projects creation list
         pending_projects = PendingProject.objects.all().filter(user_hrn=user_hrn)