+from django.contrib.auth import authenticate, login, logout
+from django.template import RequestContext
+from django.shortcuts import render, render_to_response
+
+from manifoldapi.manifoldresult import ManifoldResult
+from ui.topmenu import topmenu_items, the_user
+from myslice.configengine import ConfigEngine
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 manifoldapi.manifoldapi import execute_admin_query
from unfold.loginrequired import LoginRequiredAutoLogoutView
+from myslice.theme import ThemeView
import json
-# View for platforms
-class UsersView(LoginRequiredAutoLogoutView):
- template_name = "usersview.html"
+class UsersView (LoginRequiredAutoLogoutView, ThemeView):
+ template_name = 'usersview.html'
+
+ # expose this so we can mention the backend URL on the welcome page
+ def default_env (self):
+ return {
+ 'MANIFOLD_URL':ConfigEngine().manifold_url(),
+ }
+
+ def post (self,request):
+ env = self.default_env()
+ env['theme'] = self.theme
+ return render_to_response(self.template, env, context_instance=RequestContext(request))
+
+ def get (self, request, state=None):
+ env = self.default_env()
+
- 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 = []
authority_list = []
user_list = [{'email': t[0], 'status': t[1], 'authority':t[2]}
for t in zip(email_list, status_list, authority_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(UsersView, 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('Users', page)
- # so we can sho who is logged
- context['username'] = the_user(self.request)
-
- context.update(page.prelude_env())
+ if request.user.is_authenticated():
+ env['person'] = self.request.user
+ else:
+ env['person'] = None
+
+ env['theme'] = self.theme
+ env['user_list']= user_list
- context['layout_1_or_2']="layout-unfold2.html" if not context['username'] else "layout-unfold1.html"
+ env['username']=the_user(request)
+ env['topmenu_items'] = topmenu_items(None, request)
+ if state: env['state'] = state
+ elif not env['username']: env['state'] = None
+ # use one or two columns for the layout - not logged in users will see the login prompt
+ env['layout_1_or_2']="layout-unfold2.html" if not env['username'] else "layout-unfold1.html"
+
+
+ return render_to_response(self.template, env, context_instance=RequestContext(request))
- return context