1 from __future__ import print_function
3 from manifold.core.query import Query
4 from unfold.page import Page
6 from unfold.loginrequired import FreeAccessView
7 from ui.topmenu import topmenu_items_live, the_user
9 from plugins.googlemap import GoogleMap
10 from plugins.querytable import QueryTable
11 from plugins.lists.simplelist import SimpleList
12 from plugins.slicestat import SliceStat
14 from myslice.configengine import ConfigEngine
15 from myslice.theme import ThemeView
17 # View for 1 platform and its details
18 class ResourceView(FreeAccessView, ThemeView):
19 template_name = "resource.html"
21 def get_context_data(self, **kwargs):
22 page = Page(self.request)
24 page.add_js_files ( [ "js/common.functions.js" ] )
26 for key, value in kwargs.iteritems():
27 print("%s = %s" % (key, value))
31 resource_query = Query().get('resource')\
32 .filter_by('urn', '==', resource_urn)\
33 .select('hostname','type','hrn','urn', 'latitude', 'longitude', 'country')
34 page.enqueue_query(resource_query)
36 page.expose_js_metadata()
38 resourcelist = QueryTable(
42 # this is the query at the core of the slice list
43 query = resource_query,
44 query_all = resource_query,
46 datatables_options = {
47 'iDisplayLength' : 25,
48 'bLengthChange' : True,
51 resource_as_map = GoogleMap(
53 title = 'Geographic view',
54 domid = 'resources-map',
55 # tab's sons preferably turn this off
57 query = resource_query,
58 query_all = resource_query,
59 googlemap_api_key = ConfigEngine().googlemap_api_key(),
66 # resourcelist = SimpleList(
70 # query = resource_query,
73 resource_stats = SliceStat(
78 query = resource_query
81 context = super(ResourceView, self).get_context_data(**kwargs)
82 context['person'] = self.request.user
83 context['resource'] = resourcelist.render(self.request)
84 context['resource_as_map'] = resource_as_map.render(self.request)
85 context['resource_stats'] = resource_stats.render(self.request)
87 # XXX This is repeated in all pages
88 # more general variables expected in the template
89 context['title'] = 'Information about a resource'
90 # the menu items on the top
91 context['topmenu_items'] = topmenu_items_live(None, page)
92 # so we can sho who is logged
93 context['username'] = the_user(self.request)
94 context['theme'] = self.theme
95 context.update(page.prelude_env())