From 4b0898259ce6c4795e752e05d9a04e9d4f88f501 Mon Sep 17 00:00:00 2001 From: Thierry Parmentelat Date: Wed, 4 Sep 2013 17:45:56 +0200 Subject: [PATCH] PlatformView in platformview.py --- myslice/urls.py | 10 ++++-- portal/platformview.py | 70 ++++++++++++++++++++++++++++++++++++++++++ portal/urls.py | 4 +-- portal/views.py | 59 ----------------------------------- 4 files changed, 79 insertions(+), 64 deletions(-) create mode 100644 portal/platformview.py diff --git a/myslice/urls.py b/myslice/urls.py index 891eaafa..79a808d3 100644 --- a/myslice/urls.py +++ b/myslice/urls.py @@ -10,12 +10,16 @@ from django.template.loader import add_to_builtins add_to_builtins('insert_above.templatetags.insert_tags') import portal.sliceview +import portal.platformsview +import portal.dashboardview # main entry point (set to the / URL) -default_view='trash.pluginview.test_plugin_view' -#default_view='portal.views.PlatformsView' +## beware before adopting this one +# if anything goes wrong in this page you end up in an endless cycle +#default_view=portal.platformsview.PlatformsView.as_view() +default_view='auth.views.login_user' # where to be redirected after login -after_login_view='trash.dashboard.dashboard_view' +after_login_view=portal.dashboardview.DashboardView.as_view() urlpatterns = patterns( '', diff --git a/portal/platformview.py b/portal/platformview.py new file mode 100644 index 00000000..a432bc19 --- /dev/null +++ b/portal/platformview.py @@ -0,0 +1,70 @@ +from django.views.generic.base import TemplateView + +from manifold.core.query import Query +from unfold.page import Page + +from myslice.viewutils import topmenu_items, the_user + +from plugins.hazelnut import Hazelnut + +# View for 1 platform and its details +class PlatformView(TemplateView): + template_name = "platform.html" + + def get_context_data(self, **kwargs): + page = Page(self.request) + + for key, value in kwargs.iteritems(): + print "%s = %s" % (key, value) + if key == "platformname": + platformname=value + + network_query = Query().get('local:platform')\ + .filter_by('platform', '==', platformname)\ + .select('platform','platform_longname','gateway_type') + page.enqueue_query(network_query) + + page.expose_js_metadata() + page.expose_queries() + networklist = Hazelnut( + page = page, + title = 'List', + domid = 'checkboxes', + # this is the query at the core of the slice list + query = network_query, + query_all = network_query, + checkboxes = False, + datatables_options = { + # for now we turn off sorting on the checkboxes columns this way + # this of course should be automatic in hazelnut + 'aoColumns' : [None, None, None, None, {'bSortable': False}], + 'iDisplayLength' : 25, + 'bLengthChange' : True, + }, + ) +# +# networklist = SimpleList( +# title = None, +# page = page, +# key = 'platform', +# query = network_query, +# ) + + context = super(PlatformView, self).get_context_data(**kwargs) + context['person'] = self.request.user + context['networks'] = networklist.render(self.request) + + # XXX This is repeated in all pages + # more general variables expected in the template + context['title'] = 'Platforms connected to MySlice' + # the menu items on the top + context['topmenu_items'] = topmenu_items('Platforms', 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/urls.py b/portal/urls.py index 47a75f5a..c7135ec3 100644 --- a/portal/urls.py +++ b/portal/urls.py @@ -22,8 +22,9 @@ from django.conf.urls import patterns, include, url from portal import views -from portal.views import PresViewView, PlatformView, ValidatePendingView, AccountView # UserRegisterView, UserValidateView +from portal.views import PresViewView, ValidatePendingView, AccountView # UserRegisterView, UserValidateView from portal.platformsview import PlatformsView +from portal.platformview import PlatformView from portal.dashboardview import DashboardView from portal.util import TemplateView @@ -47,7 +48,6 @@ urlpatterns = patterns('', #url(r'^my_account/?$', MyAccountView.as_view(), name='my_account'), url(r'^account/?$', AccountView.as_view(), name='account'), url(r'^platforms/?$', PlatformsView.as_view(), name='platforms'), - #url(r'^portal/platform/?$', PlatformView.platform_view(), name='platform'), url(r'^platform/(?P[\w\.]+)/?$', PlatformView.as_view(), name='platform'), url(r'^account/account_process/?$', views.account_process), url(r'^register/?$', views.register_4m_f4f), diff --git a/portal/views.py b/portal/views.py index 99807290..ee867a65 100644 --- a/portal/views.py +++ b/portal/views.py @@ -52,65 +52,6 @@ from django.http import HttpResponseRedirect, HttpResponse from M2Crypto import Rand, RSA, BIO import os, re -# View for 1 platform and its details -class PlatformView(TemplateView): - template_name = "platform.html" - - def get_context_data(self, **kwargs): - page = Page(self.request) - - for key, value in kwargs.iteritems(): - print "%s = %s" % (key, value) - if key == "platformname": - platformname=value - - network_query = Query().get('local:platform').filter_by('platform', '==', platformname).select('platform','platform_longname','gateway_type') - page.enqueue_query(network_query) - - page.expose_js_metadata() - page.expose_queries() - networklist = Hazelnut( - page = page, - title = 'List', - domid = 'checkboxes', - # this is the query at the core of the slice list - query = network_query, - query_all = network_query, - checkboxes = False, - datatables_options = { - # for now we turn off sorting on the checkboxes columns this way - # this of course should be automatic in hazelnut - 'aoColumns' : [None, None, None, None, {'bSortable': False}], - 'iDisplayLength' : 25, - 'bLengthChange' : True, - }, - ) -# -# networklist = SimpleList( -# title = None, -# page = page, -# key = 'platform', -# query = network_query, -# ) - - context = super(PlatformView, self).get_context_data(**kwargs) - context['person'] = self.request.user - context['networks'] = networklist.render(self.request) - - # XXX This is repeated in all pages - # more general variables expected in the template - context['title'] = 'Platforms connected to MySlice' - # the menu items on the top - context['topmenu_items'] = topmenu_items('Platforms', self.request) - # so we can sho who is logged - context['username'] = the_user(self.request) - - context.update(page.prelude_env()) - - return context - - - #class for my_account class AccountView(TemplateView): template_name = "my_account.html" -- 2.43.0