move commented code about the ‘where am I a PI’ question into topmenuvalidation plugin
[myslice.git] / ui / topmenu.py
index de44555..82979d5 100644 (file)
@@ -1,3 +1,4 @@
+import json
 from pprint import pprint
 from manifold.manifoldapi       import execute_query
 from manifold.core.query        import Query
@@ -6,28 +7,25 @@ from manifold.core.query        import Query
 # dropdowns are kind of ad hoc for now, and limited to one level
 # [ 
 # ### a regular first-level button
-# {'label':...,'href':...}, 
+# {'label':...,'href':..., ['domid':.., 'disabled':...]}, 
 # ### a dropdown
 # { 'label': ..., 'href'=..., 'dropdown':True, 'contents': [ { 'label':.., 'href'} ] }
 # , ..]
 
+# see also templates/widget-topmenu.html for how these items are put together
+# and plugins/topmenuvalidation for how this hident button is turned on when necessary
+
 # current: the beginning of the label in the menu that you want to outline
 def topmenu_items (current,request=None):
     has_user=request.user.is_authenticated()
     result=[]
+    print request.user
     if has_user:
         result.append({'label':'Dashboard', 'href': '/portal/dashboard/'})
         result.append({'label':'Request a slice', 'href': '/portal/slice_request/'})
-        # ** Where am I a PI **
-        # For this we need to ask SFA (of all authorities) = PI function
-        pi_authorities_query = Query.get('ple:user').filter_by('user_hrn', '==', '$user_hrn').select('pi_authorities')
-        pi_authorities_tmp = execute_query(request, pi_authorities_query)
-        pi_authorities = set()
-        for pa in pi_authorities_tmp:
-            pi_authorities |= set(pa['pi_authorities'])
-        print "pi_authorities =", pi_authorities
-        if len(pi_authorities) > 0:
-            result.append({'label':'Validation', 'href': '/portal/validate/'})
+        # always create a disabled button for validation, and let the 
+        # topmenuvalidation plugin handle that asynchroneously, based on this domid
+        result.append({'label':'Validation', 'href': '/portal/validate/', 'domid':'topmenu-validation', 'disabled':True})
         dropdown = []
         dropdown.append({'label':'Platforms', 'href': '/portal/platforms/'})
         dropdown.append({'label':'My Account', 'href': '/portal/account/'})