list pending slices in dashboard
[myslice.git] / portal / homeview.py
index b023652..f1ac37c 100644 (file)
@@ -1,24 +1,25 @@
 # this somehow is not used anymore - should it not be ?
-from django.core.context_processors import csrf
-from django.http import HttpResponseRedirect
-from django.contrib.auth import authenticate, login, logout
-from django.template import RequestContext
-from django.shortcuts import render_to_response
-from django.shortcuts import render
+from django.core.context_processors     import csrf
+from django.http                        import HttpResponseRedirect
+from django.contrib.auth                import authenticate, login, logout
+from django.template                    import RequestContext
+from django.shortcuts                   import render_to_response
+from django.shortcuts                   import render
 
-import json
 
-from unfold.loginrequired import FreeAccessView
+from unfold.loginrequired               import FreeAccessView
 
 from manifold.core.query                import Query
 from manifoldapi.manifoldapi            import execute_query
 
-from manifoldapi.manifoldresult import ManifoldResult
-from ui.topmenu import topmenu_items, the_user
-from myslice.configengine import ConfigEngine
+from manifoldapi.manifoldresult         import ManifoldResult
+from ui.topmenu                         import topmenu_items, the_user
+from myslice.configengine               import ConfigEngine
 
-from myslice.theme import ThemeView
+from myslice.theme                      import ThemeView
+from portal.models                      import PendingSlice
 
+import json
 import activity.user
 
 class HomeView (FreeAccessView, ThemeView):
@@ -77,14 +78,15 @@ class HomeView (FreeAccessView, ThemeView):
                     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)
-                    for platform_detail in platform_details:
-                        for account_detail in account_details:
-                            if platform_detail['platform_id'] == account_detail['platform_id']:
-                                if 'config' in account_detail and account_detail['config'] is not '':
-                                    account_config = json.loads(account_detail['config'])
-                                    if 'myslice' in platform_detail['platform']:
-                                        acc_auth_cred = account_config.get('delegated_authority_credentials','N/A')
-                                        acc_user_cred = account_config.get('delegated_user_credential','N/A')
+                    if platform_details is not None and platform_details != {}:
+                        for platform_detail in platform_details:
+                            for account_detail in account_details:
+                                if platform_detail['platform_id'] == account_detail['platform_id']:
+                                    if 'config' in account_detail and account_detail['config'] is not '':
+                                        account_config = json.loads(account_detail['config'])
+                                        if 'myslice' in platform_detail['platform']:
+                                            acc_auth_cred = account_config.get('delegated_authority_credentials','N/A')
+                                            acc_user_cred = account_config.get('delegated_user_credential','N/A')
                     # assigning values
                     if acc_auth_cred=={} or acc_auth_cred=='N/A':
                         pi = "is_not_pi"
@@ -96,8 +98,13 @@ class HomeView (FreeAccessView, ThemeView):
                         user_cred = 'no_creds'
                     else:
                         user_cred = 'has_creds'
+                    
+                    # list the pending slices of this user
+                    pending_slices = []
+                    for slices in PendingSlice.objects.filter(type_of_nodes__iexact=self.request.user).all():
+                        pending_slices.append(slices.slice_name)
 
-
+                    env['pending_slices'] = pending_slices
                     env['pi'] = pi
                     env['user_cred'] = user_cred                
                 else: 
@@ -133,15 +140,16 @@ class HomeView (FreeAccessView, ThemeView):
             # XXX Something like an invalid session seems to make the execute fail sometimes, and thus gives an error on the main page
             platform_details = execute_query(self.request, platform_query)
             account_details = execute_query(self.request, account_query)
-            for platform_detail in platform_details:
-                for account_detail in account_details:
-                    if 'platform_id' in platform_detail:
-                        if platform_detail['platform_id'] == account_detail['platform_id']:
-                            if 'config' in account_detail and account_detail['config'] is not '':
-                                account_config = json.loads(account_detail['config'])
-                                if 'myslice' in platform_detail['platform']:
-                                    acc_auth_cred = account_config.get('delegated_authority_credentials','N/A')
-                                    acc_user_cred = account_config.get('delegated_user_credential','N/A')
+            if platform_details is not None and platform_details != {}:
+                for platform_detail in platform_details:
+                    for account_detail in account_details:
+                        if 'platform_id' in platform_detail:
+                            if platform_detail['platform_id'] == account_detail['platform_id']:
+                                if 'config' in account_detail and account_detail['config'] is not '':
+                                    account_config = json.loads(account_detail['config'])
+                                    if 'myslice' in platform_detail['platform']:
+                                        acc_auth_cred = account_config.get('delegated_authority_credentials','N/A')
+                                        acc_user_cred = account_config.get('delegated_user_credential','N/A')
             # assigning values
             if acc_auth_cred=={} or acc_auth_cred=='N/A':
                 pi = "is_not_pi"
@@ -153,8 +161,13 @@ class HomeView (FreeAccessView, ThemeView):
                 user_cred = 'no_creds'
             else:
                 user_cred = 'has_creds'
-           
 
+            # list the pending slices of this user
+            pending_slices = []
+            for slices in PendingSlice.objects.filter(type_of_nodes__iexact=self.request.user).all():
+                pending_slices.append(slices.slice_name)
+        
+            env['pending_slices'] = pending_slices
             env['pi'] = pi
             env['user_cred'] = user_cred                
             env['person'] = self.request.user