Forgot to add join.js and join_view.html to the git
[myslice.git] / portal / dashboardview.py
index 961b7dc..dea1c74 100644 (file)
@@ -1,11 +1,15 @@
-from manifold.core.query        import Query
-from unfold.page                import Page
+import json
+from manifold.core.query         import Query
+from manifold.manifoldapi        import execute_query
 
-from plugins.lists.simplelist    import SimpleList
+from unfold.page                 import Page
 
-from portal.templateviews       import LoginRequiredAutoLogoutView
+from plugins.lists.testbedlist   import TestbedList
+from plugins.lists.slicelist     import SliceList
 
-from myslice.viewutils           import topmenu_items, the_user
+from unfold.loginrequired        import LoginRequiredAutoLogoutView
+
+from ui.topmenu                  import topmenu_items_live, the_user
 
 #This view requires login 
 class DashboardView (LoginRequiredAutoLogoutView):
@@ -20,45 +24,60 @@ class DashboardView (LoginRequiredAutoLogoutView):
         #messages.info(self.request, 'You have logged in')
         page = Page(self.request)
 
+        print "Dashboard page"
         # Slow...
         #slice_query = Query().get('slice').filter_by('user.user_hrn', 'contains', user_hrn).select('slice_hrn')
-        slice_query = Query().get('user').filter_by('user_hrn', '==', '$user_hrn').select('user_hrn', 'slice.slice_hrn')
-        auth_query  = Query().get('network').select('network_hrn')
-        print "AUTH QUERY =====================", auth_query
-        print "filter", auth_query.filters
-        page.enqueue_query(slice_query)
-        page.enqueue_query(auth_query)
+        testbed_query  = Query().get('network').select('network_hrn','platform','version')
+        # DEMO GEC18 Query only PLE
+#        user_query  = Query().get('local:user').select('config','email')
+#        user_details = execute_query(self.request, user_query)
 
-        page.expose_js_metadata()
-        page.expose_queries()
+        # not always found in user_details...
+#        config={}
+  #      for user_detail in user_details:
+  #          #email = user_detail['email']
+  #          if user_detail['config']:
+  #              config = json.loads(user_detail['config'])
+  #      user_detail['authority'] = config.get('authority',"Unknown Authority")
+#
+#        print user_detail
+#        if user_detail['authority'] is not None:
+#            sub_authority = user_detail['authority'].split('.')
+#            root_authority = sub_authority[0]
+#            slice_query = Query().get(root_authority+':user').filter_by('user_hrn', '==', '$user_hrn').select('user_hrn', 'slice.slice_hrn')
+#        else:
+        slice_query = Query().get('user').filter_by('user_hrn', '==', '$user_hrn').select('slice.slice_hrn')
+        page.enqueue_query(slice_query)
+        page.enqueue_query(testbed_query)
 
-        slicelist = SimpleList(
-            title = None,
+        slicelist = SliceList(
             page  = page,
-            key   = 'slice.slice_hrn',
+            title = "slices",
+            warning_msg = "<a href='../slice_request'>Request Slice</a>",
             query = slice_query,
         )
-         
-        authlist = SimpleList(
-            title = None,
+        testbedlist = TestbedList(
             page  = page,
-            key   = 'network_hrn',
-            query = auth_query,
+            title = "testbeds",
+            query = testbed_query,
         )
-
         context = super(DashboardView, self).get_context_data(**kwargs)
         context['person']   = self.request.user
-        context['networks'] = authlist.render(self.request) 
+        context['testbeds'] = testbedlist.render(self.request) 
         context['slices']   = slicelist.render(self.request)
 
         # XXX This is repeated in all pages
         # more general variables expected in the template
-        context['title'] = 'Test view that combines various plugins'
+        context['title'] = 'Dashboard'
         # the menu items on the top
-        context['topmenu_items'] = topmenu_items('Dashboard', self.request
+        context['topmenu_items'] = topmenu_items_live('Dashboard', page
         # so we can sho who is logged
         context['username'] = the_user(self.request) 
 
+        page.expose_js_metadata()
+
+        # the page header and other stuff
         context.update(page.prelude_env())
 
         return context