myslice/config becomes myslice/configengine to avoid confusion
[myslice.git] / portal / homeview.py
index 960c8f0..c71481a 100644 (file)
@@ -1,22 +1,22 @@
 # this somehow is not used anymore - should it not be ?
-from django.views.generic import View
 from django.core.context_processors import csrf
 from django.http import HttpResponseRedirect
 from django.contrib.auth import authenticate, login, logout
 from django.template import RequestContext
 from django.shortcuts import render_to_response
 
+from unfold.loginrequired import FreeAccessView
+
 from manifold.manifoldresult import ManifoldResult
 from ui.topmenu import topmenu_items, the_user
-from myslice.config import Config
+from myslice.configengine import ConfigEngine
 
-class HomeView (View):
+class HomeView (FreeAccessView):
 
     # expose this so we can mention the backend URL on the welcome page
     def default_env (self):
-        config=Config()
         return { 
-                 'MANIFOLD_URL':config.manifold_url(),
+                 'MANIFOLD_URL':ConfigEngine().manifold_url(),
                  }
 
     def post (self,request):
@@ -32,11 +32,13 @@ class HomeView (View):
         # . a django User in case of success
         # . or None if the backend could be reached but the authentication failed
         auth_result = authenticate(token=token)
+        # use one or two columns for the layout - not logged in users will see the login prompt
         # high-level errors, like connection refused or the like
         if isinstance (auth_result, ManifoldResult):
             manifoldresult = auth_result
             # let's use ManifoldResult.__repr__
             env['state']="%s"%manifoldresult
+            env['layout_1_or_2']="layout-unfold2.html"
             return render_to_response('home-view.html',env, context_instance=RequestContext(request))
         # user was authenticated at the backend
         elif auth_result is not None:
@@ -47,10 +49,12 @@ class HomeView (View):
                 return HttpResponseRedirect ('/login-ok')
             else:
                 env['state'] = "Your account is not active, please contact the site admin."
+                env['layout_1_or_2']="layout-unfold2.html"
                 return render_to_response('home-view.html',env, context_instance=RequestContext(request))
         # otherwise
         else:
             env['state'] = "Your username and/or password were incorrect."
+            env['layout_1_or_2']="layout-unfold2.html"
             return render_to_response('home-view.html',env, context_instance=RequestContext(request))
 
     # login-ok sets state="Welcome to MySlice" in urls.py
@@ -60,5 +64,7 @@ class HomeView (View):
         env['topmenu_items'] = topmenu_items(None, request)
         if state: env['state'] = state
         elif not env['username']: env['state'] = "Please sign in"
+        # 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('home-view.html',env, context_instance=RequestContext(request))