added missing views for single resource page
authorLoic Baron <loic.baron@lip6.fr>
Sun, 13 Oct 2013 19:26:05 +0000 (21:26 +0200)
committerLoic Baron <loic.baron@lip6.fr>
Sun, 13 Oct 2013 19:26:05 +0000 (21:26 +0200)
portal/resourceview.py [new file with mode: 0644]
portal/templates/resource.html [new file with mode: 0644]

diff --git a/portal/resourceview.py b/portal/resourceview.py
new file mode 100644 (file)
index 0000000..1923670
--- /dev/null
@@ -0,0 +1,84 @@
+from django.views.generic.base   import TemplateView
+
+from manifold.core.query         import Query
+from unfold.page                 import Page
+
+from ui.topmenu                  import topmenu_items, the_user
+
+from plugins.googlemap           import GoogleMap
+from plugins.hazelnut            import Hazelnut
+from plugins.lists.simplelist    import SimpleList
+
+# View for 1 platform and its details
+class ResourceView(TemplateView):
+    template_name = "resource.html"
+
+    def get_context_data(self, **kwargs):
+        page = Page(self.request)
+
+        for key, value in kwargs.iteritems():
+            print "%s = %s" % (key, value)       
+            if key == "urn":
+                resource_urn=value
+                
+        resource_query  = Query().get('resource')\
+            .filter_by('urn', '==', resource_urn)\
+            .select('type','hrn','urn', 'latitude', 'longitude', 'country')
+        page.enqueue_query(resource_query)
+
+        page.expose_js_metadata()
+        page.expose_queries()
+
+        resourcelist = Hazelnut(
+            page  = page,
+            title = 'List',
+            domid = 'checkboxes',
+            # this is the query at the core of the slice list
+            query = resource_query,
+            query_all = resource_query,
+            checkboxes = False,
+            datatables_options = {
+            'iDisplayLength' : 25,
+            'bLengthChange'  : True,
+            },
+        )
+        resource_as_map = GoogleMap(
+            page       = page,
+            title      = 'Geographic view',
+            domid      = 'resources-map',
+            # tab's sons preferably turn this off
+            togglable  = False,
+            query      = resource_query,
+            query_all  = resource_query,
+            checkboxes = False,
+            # center on Paris
+            #latitude   = 49.,
+            #longitude  = 9,
+            #zoom       = 4,
+        )
+#        resourcelist = SimpleList(
+#            title = None,
+#            page  = page,
+#            key   = 'hrn',
+#            query = resource_query,
+#        )
+
+        context = super(ResourceView, self).get_context_data(**kwargs)
+        context['person']   = self.request.user
+        context['resource'] = resourcelist.render(self.request)
+        context['resource_as_map'] = resource_as_map.render(self.request)
+
+        # XXX This is repeated in all pages
+        # more general variables expected in the template
+        context['title'] = 'Information about a resource'
+        # the menu items on the top
+        context['topmenu_items'] = topmenu_items('Dashboard', self.request)
+        # so we can sho who is logged
+        context['username'] = the_user(self.request)
+
+        context.update(page.prelude_env())
+
+        return context
+
+
+
diff --git a/portal/templates/resource.html b/portal/templates/resource.html
new file mode 100644 (file)
index 0000000..ed7beb0
--- /dev/null
@@ -0,0 +1,12 @@
+{% extends "layout-unfold1.html" %}
+
+{% block head %}
+<link rel="stylesheet" type="text/css" href="{{STATIC_URL}}/css/dashboard.css" />
+{% endblock %}
+
+{% block unfold1_main %}
+
+<h1>Resource</h1>
+{{resource}}
+{{resource_as_map}}
+{% endblock %}