X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=portal%2Fsliceview.py;h=8c6f9fe321b5482e22f1a8475465765a91ff3d6d;hb=265fd105b18cfa17791352c04a8da976b2c4826f;hp=38c90fca4951a9d1d7bf2e5ac6685153364a9c02;hpb=dc832ad1a26a47483f8297678a9417640b7c9925;p=myslice.git diff --git a/portal/sliceview.py b/portal/sliceview.py index 38c90fca..8c6f9fe3 100644 --- a/portal/sliceview.py +++ b/portal/sliceview.py @@ -15,6 +15,7 @@ from plugins.querytable import QueryTable from plugins.queryupdater import QueryUpdater from plugins.googlemap import GoogleMap from plugins.senslabmap import SensLabMap +from plugins.scheduler import Scheduler from plugins.querycode import QueryCode from plugins.query_editor import QueryEditor from plugins.active_filters import ActiveFilters @@ -30,6 +31,9 @@ tmp_default_slice='ple.upmc.myslicedemo' #do_query_users=True do_query_users=False +insert_messages=False +#insert_messages=True + class SliceView (LoginRequiredAutoLogoutView): def get (self,request, slicename=tmp_default_slice): @@ -56,10 +60,13 @@ class SliceView (LoginRequiredAutoLogoutView): 'slice_hrn', 'resource.hrn', 'resource.hostname', 'resource.type', 'resource.network_hrn', - #'lease.urn', + 'lease.urn', 'user.user_hrn', #'application.measurement_point.counter' ) + # for internal use in the querytable plugin; + # needs to be a unique column present for each returned record + main_query_key = 'hrn' query_resource_all = Query.get('resource').select(resource_fields) if do_query_users: @@ -153,6 +160,7 @@ class SliceView (LoginRequiredAutoLogoutView): togglable = False, query = sq_resource, query_all = query_resource_all, + googlemap_api_key = Config().googlemap_api_key(), checkboxes = True, # center on Paris latitude = 49., @@ -175,6 +183,8 @@ class SliceView (LoginRequiredAutoLogoutView): # this is the query at the core of the slice list query = sq_resource, query_all = query_resource_all, + # safer to use 'hrn' as the internal unique key for this plugin + id_key = main_query_key, checkboxes = True, datatables_options = { 'iDisplayLength': 25, @@ -183,6 +193,15 @@ class SliceView (LoginRequiredAutoLogoutView): }, ) + resources_as_scheduler = Scheduler( + page = page, + title = 'Scheduler', + domid = 'scheduler', + query = sq_resource, + query_all_resources = query_resource_all, + query_lease = sq_lease, + ) + # with the new 'Filter' stuff on top, no need for anything but the querytable resources_as_list_area = resources_as_list @@ -191,10 +210,13 @@ class SliceView (LoginRequiredAutoLogoutView): togglable=True, title="Resources", outline_complete=True, - sons=[ resources_as_gmap, + sons=[ + resources_as_gmap, resources_as_3dmap, + resources_as_scheduler, resources_as_list_area, ], active_domid = 'resources-map', + persistent_active=True, ) main_stack.insert (resources_area) @@ -317,19 +339,20 @@ class SliceView (LoginRequiredAutoLogoutView): # # # -------------------------------------------------------------------------- # # MESSAGES (we use transient=False for now) -# main_stack.insert(Messages( -# page = page, -# title = "Runtime messages for slice %s"%slicename, -# domid = "msgs-pre", -# levels = "ALL", -# # plain messages are probably less nice for production but more reliable for development for now -# transient = False, -# # these make sense only in non-transient mode.. -# togglable = True, -# toggled = 'persistent', -# outline_complete = True, -# )) -# + if insert_messages: + main_stack.insert(Messages( + page = page, + title = "Runtime messages for slice %s"%slicename, + domid = "msgs-pre", + levels = "ALL", + # plain messages are probably less nice for production but more reliable for development for now + transient = False, + # these make sense only in non-transient mode.. + togglable = True, + toggled = 'persistent', + outline_complete = True, + )) + # variables that will get passed to the view-unfold1.html template template_env = {}