Merge branch 'master' of ssh://git.onelab.eu/git/myslice
[myslice.git] / portal / resourceview.py
1 from django.views.generic.base   import TemplateView
2
3 from manifold.core.query         import Query
4 from unfold.page                 import Page
5
6 from ui.topmenu                  import topmenu_items, the_user
7
8 from plugins.googlemap           import GoogleMap
9 from plugins.hazelnut            import Hazelnut
10 from plugins.lists.simplelist    import SimpleList
11
12 # View for 1 platform and its details
13 class ResourceView(TemplateView):
14     template_name = "resource.html"
15
16     def get_context_data(self, **kwargs):
17         page = Page(self.request)
18
19         for key, value in kwargs.iteritems():
20             print "%s = %s" % (key, value)       
21             if key == "urn":
22                 resource_urn=value
23                 
24         resource_query  = Query().get('resource')\
25             .filter_by('urn', '==', resource_urn)\
26             .select('type','hrn','urn', 'latitude', 'longitude', 'country')
27         page.enqueue_query(resource_query)
28
29         page.expose_js_metadata()
30         page.expose_queries()
31
32         resourcelist = Hazelnut(
33             page  = page,
34             title = 'List',
35             domid = 'checkboxes',
36             # this is the query at the core of the slice list
37             query = resource_query,
38             query_all = resource_query,
39             checkboxes = False,
40             datatables_options = {
41             'iDisplayLength' : 25,
42             'bLengthChange'  : True,
43             },
44         )
45         resource_as_map = GoogleMap(
46             page       = page,
47             title      = 'Geographic view',
48             domid      = 'resources-map',
49             # tab's sons preferably turn this off
50             togglable  = True,
51             query      = resource_query,
52             query_all  = resource_query,
53             checkboxes = False,
54             # center on Paris
55             #latitude   = 49.,
56             #longitude  = 9,
57             #zoom       = 4,
58         )
59 #        resourcelist = SimpleList(
60 #            title = None,
61 #            page  = page,
62 #            key   = 'hrn',
63 #            query = resource_query,
64 #        )
65
66         context = super(ResourceView, self).get_context_data(**kwargs)
67         context['person']   = self.request.user
68         context['resource'] = resourcelist.render(self.request)
69         context['resource_as_map'] = resource_as_map.render(self.request)
70
71         # XXX This is repeated in all pages
72         # more general variables expected in the template
73         context['title'] = 'Information about a resource'
74         # the menu items on the top
75         context['topmenu_items'] = topmenu_items('Dashboard', self.request)
76         # so we can sho who is logged
77         context['username'] = the_user(self.request)
78
79         context.update(page.prelude_env())
80
81         return context
82
83
84