From be2c4b0a999d51fbbb1777ed1b12ee08eec28e7c Mon Sep 17 00:00:00 2001 From: Yasin Date: Wed, 12 Feb 2014 14:38:00 +0100 Subject: [PATCH] AdminView: user management view created --- portal/adminview.py | 67 +++++++++++++++++++++++++++++++++ portal/templates/adminview.html | 34 +++++++++++++++++ portal/urls.py | 2 + 3 files changed, 103 insertions(+) create mode 100644 portal/adminview.py create mode 100644 portal/templates/adminview.html diff --git a/portal/adminview.py b/portal/adminview.py new file mode 100644 index 00000000..3400ad10 --- /dev/null +++ b/portal/adminview.py @@ -0,0 +1,67 @@ +from manifold.core.query import Query +from unfold.page import Page + +from ui.topmenu import topmenu_items_live, the_user +from manifold.manifoldapi import execute_admin_query + +from plugins.querytable import QueryTable +from unfold.loginrequired import LoginRequiredAutoLogoutView + + +# View for platforms +class AdminView(LoginRequiredAutoLogoutView): + template_name = "adminview.html" + + def get_context_data(self, **kwargs): + page = Page(self.request) + page.add_js_files ( [ "js/common.functions.js" ] ) + #platform_query = Query().get('local:platform').filter_by('disabled', '==', '0').select('platform','platform_longname','gateway_type') + #platform_query = Query().get('local:platform').select('platform','platform_longname','gateway_type') + email_list = [] + status_list = [] + user_query = Query().get('local:user').select('email','status') + user_details = execute_admin_query(self.request, user_query) + for user in user_details: + email_list.append(user['email']) + status_list.append(user['status']) + + user_list = [{'email': t[0], 'status': t[1]} + for t in zip(email_list, status_list)] + + + #page.enqueue_query(user_query) + + #page.expose_js_metadata() + #userlist = QueryTable( + # page = page, + # title = 'List', + # domid = 'checkboxes', + # # this is the query at the core of the slice list + # query = user_query, + # query_all = user_query, + # checkboxes = False, + # init_key = 'user', + # datatables_options = { + # 'iDisplayLength': 10, + # 'bLengthChange' : True, + # 'bAutoWidth' : True, + # }, + #) + + context = super(AdminView, self).get_context_data(**kwargs) + context['person'] = self.request.user + context['user_list'] = user_list + + # XXX This is repeated in all pages + # more general variables expected in the template + context['title'] = 'Users in MySlice' + # the menu items on the top + context['topmenu_items'] = topmenu_items_live('Admin', page) + # so we can sho who is logged + context['username'] = the_user(self.request) + + context.update(page.prelude_env()) + + context['layout_1_or_2']="layout-unfold2.html" if not context['username'] else "layout-unfold1.html" + + return context diff --git a/portal/templates/adminview.html b/portal/templates/adminview.html new file mode 100644 index 00000000..63eb3d5a --- /dev/null +++ b/portal/templates/adminview.html @@ -0,0 +1,34 @@ +{# fine for either layout-unfold1.html (logged in) or layout-unfold2.html (needs a login prompt) #} +{% extends layout_1_or_2 %} + +{% block unfold_margin %} +{% include 'widget-login.html' %} +{% endblock unfold_margin %} + +{% block head %} + +{% endblock %} + +{% block unfold_main %} + +

Users

+
+
+ + + + + + {% for user in user_list %} + + + + + + {%endfor%} +
EmailStatus
{{ user.email }} {{ user.status }}
+
+
+ + +{% endblock %} diff --git a/portal/urls.py b/portal/urls.py index 8dc968ff..8e7f2861 100644 --- a/portal/urls.py +++ b/portal/urls.py @@ -23,6 +23,7 @@ from django.views.generic.base import TemplateView from django.conf.urls import patterns, include, url +from portal.adminview import AdminView from portal.platformsview import PlatformsView from portal.platformview import PlatformView from portal.resourceview import ResourceView @@ -58,6 +59,7 @@ urlpatterns = patterns('', url(r'^dashboard/?$', DashboardView.as_view(), name='dashboard'), #url(r'^my_account/?$', MyAccountView.as_view(), name='my_account'), url(r'^account/?$', AccountView.as_view(), name='account'), + url(r'^admin/?$', AdminView.as_view(), name='admin'), url(r'^platforms/?$', PlatformsView.as_view(), name='platforms'), url(r'^platform/(?P[\w\.\-]+)/?$', PlatformView.as_view(), name='platform'), url(r'^resource/(?P[\w\.\-\+\:]+)/?$', ResourceView.as_view(), name='resource'), -- 2.43.0