-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, the_user
#This view requires login
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')
+ testbed_query = Query().get('network').select('network_hrn','platform')
+ # DEMO GEC18 Query only PLE
+ 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')
- 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)
+ 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,
)
-
- 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)
# so we can sho who is logged