X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=portal%2Fdashboardview.py;h=65826bd0b648f02e3d7a21158e08d7d69c74e516;hb=a1e452649acd9538b59dbf728dbc7b7ddec96749;hp=1cc12e0e40e5132b608f3bb8753a9a2291ae954e;hpb=995713033d9d1c87eb51cdcac1cd7f61d9cbe0d7;p=myslice.git diff --git a/portal/dashboardview.py b/portal/dashboardview.py index 1cc12e0e..65826bd0 100644 --- a/portal/dashboardview.py +++ b/portal/dashboardview.py @@ -1,7 +1,11 @@ +import json from manifold.core.query import Query +from manifold.manifoldapi import execute_query + from unfold.page import Page -from plugins.lists.simplelist import SimpleList +from plugins.lists.testbedlist import TestbedList +from plugins.lists.slicelist import SliceList from unfold.loginrequired import LoginRequiredAutoLogoutView @@ -20,34 +24,49 @@ 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') - auth_query = Query().get('network').select('network_hrn','platform') + testbed_query = Query().get('network').select('network_hrn','platform') # DEMO GEC18 Query only PLE - slice_query = Query().get('user').filter_by('user_hrn', '==', '$user_hrn').select('user_hrn', 'slice.slice_hrn') + user_query = Query().get('local:user').select('config','email') + user_details = execute_query(self.request, user_query) + + # 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('user_hrn', 'slice.slice_hrn') page.enqueue_query(slice_query) - page.enqueue_query(auth_query) + page.enqueue_query(testbed_query) page.expose_js_metadata() page.expose_queries() - slicelist = SimpleList( - title = None, + slicelist = SliceList( page = page, - key = 'slice.slice_hrn', + title = "slices", query = slice_query, ) - # XXX TODO: plugins/lists/static/js/simplelist.js => hardcoded keys that give links : slice_hrn & platform - authlist = SimpleList( - title = None, + testbedlist = TestbedList( page = page, - key = 'platform', - 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