-# Create your views here.
-from django.core.context_processors import csrf
-from django.template import RequestContext
-from django.shortcuts import render_to_response
-from django.contrib.auth import authenticate, login, logout
+from django.contrib.auth import logout
from django.http import HttpResponseRedirect
-from myslice.viewutils import topmenu_items, the_user
-from myslice.config import Config
-
-def login_user(request):
- state = "Please log in below..."
- username = password = ''
- env={
- 'manifold_url':Config.manifold_url,
- }
-
- if request.POST:
- username = request.POST.get('username')
- password = request.POST.get('password')
-
- # pass request within the token, so manifold session key could be attached to the request session.
- token = {'username': username, 'password': password, 'request': request}
-
- user = authenticate(token=token)
- if user is not None:
- if user.is_active:
- login(request, user)
- #state = "You're successfully logged in!"
- return HttpResponseRedirect ('/portal/dashboard')
- #return HttpResponseRedirect ('/login-ok')
- else:
- env['state'] = "Your account is not active, please contact the site admin."
- return render_to_response('view-login.html',env, context_instance=RequestContext(request))
- else:
- env['state'] = "Your username and/or password were incorrect."
- return render_to_response('view-login.html',env, context_instance=RequestContext(request))
- else:
- state='' #Welcome to MySlice'
- env['state']=state
- env['username']=the_user(request)
- env['topmenu_items'] = topmenu_items('', request)
- return render_to_response('view-login.html',env, context_instance=RequestContext(request))
-
# hard question : where should we redirect requests to logout if user is not logged in ?
def logout_user (request):
# check that we're indeed logged in
if not request.user.is_authenticated():
return HttpResponseRedirect ('/')
+ print "LOGGING OUT"
logout(request)
return HttpResponseRedirect ('/')
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
+import portal.homeview
+home_view=portal.homeview.HomeView.as_view()
+dashboard_view=portal.dashboardview.DashboardView.as_view()
+platforms_view=portal.platformsview.PlatformsView.as_view()
+
+#### high level choices
# main entry point (set to the / URL)
-## 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'
+# beware that if this view is broken you end up in an endless cycle...
+# maybe platforms_view would be best on the longer run
+the_default_view=home_view
# where to be redirected after login
-after_login_view=portal.dashboardview.DashboardView.as_view()
+the_after_login_view=home_view #dashboard_view
+# where to redirect when login is required
+# might need another one ?
+the_login_view=home_view
urlpatterns = patterns(
'',
#
# default / view
#
- (r'^/?$', default_view),
+ (r'^/?$', the_default_view),
#
# login / logout
#
- (r'^login-ok/?$', after_login_view),
+ (r'^login-ok/?$', the_after_login_view, {'state': 'Welcome to MySlice'} ),
# seems to be what login_required uses to redirect ...
- (r'^accounts/login/$', 'auth.views.login_user'),
- (r'^login/?$', 'auth.views.login_user'),
+ (r'^accounts/login/$', the_login_view),
+ (r'^login/?$', the_login_view),
(r'^logout/?$', 'auth.views.logout_user'),
#
# the manifold proxy
#
(r'^manifold/proxy/(?P<format>\w+)/?$', 'manifold.manifoldproxy.proxy'),
- #
- # the slice view
- #
- (r'^slice/?$', portal.sliceview.SliceView.as_view()),
- (r'^slice/(?P<slicename>[\w\.]+)/?$', portal.sliceview.SliceView.as_view()),
#
- # various trash views
- #
- (r'^tab/?$', 'trash.sampleviews.tab_view'),
- (r'^scroll/?$', 'trash.sampleviews.scroll_view'),
- (r'^plugin/?$', 'trash.pluginview.test_plugin_view'),
- (r'^dashboard/?$', 'trash.dashboard.dashboard_view'),
# Portal
url(r'^portal/', include('portal.urls')),
# Portal
url(r'^debug/', include('debug_platform.urls')),
# Static files
(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_ROOT}),
-
+ #
+ # various trash views - bound to go away
+ #
+ (r'^tab/?$', 'trash.sampleviews.tab_view'),
+ (r'^scroll/?$', 'trash.sampleviews.scroll_view'),
+ (r'^plugin/?$', 'trash.pluginview.test_plugin_view'),
+ (r'^dashboard/?$', 'trash.dashboard.dashboard_view'),
)
return result
def the_user (request):
- "This code below is broken"
+ "retrieves logged in user's email, or empty string"
if not request.user.is_authenticated ():
-# print 'void user!'
return ''
else:
return request.user.email
// hard-wire a separate presentation depending on the key being used....
function cell(key, value) {
if (key == 'slice.slice_hrn') {
- return "<i class='icon-play-circle'></i><a href='/slice/" + value + "'>" + value + "</a>";
+ return "<i class='icon-play-circle'></i><a href='/portal/slice/" + value + "'>" + value + "</a>";
} else if (key == 'network_hrn') {
return "<i class='icon-play-circle'></i><a href='/portal/platform/" + value + "'>" + value + "</a>";
} else {
--- /dev/null
+# 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 myslice.viewutils import topmenu_items, the_user
+from myslice.config import Config
+
+class HomeView (View):
+
+ def default_env (self):
+ return {
+ 'manifold_url':Config.manifold_url,
+ }
+
+ def post (self,request):
+ env = self.default_env()
+ username = request.POST.get('username')
+ password = request.POST.get('password')
+
+ # pass request within the token, so manifold session key can be attached to the request session.
+ token = {'username': username, 'password': password, 'request': request}
+
+ user = authenticate(token=token)
+ if user is not None:
+ if user.is_active:
+ print "LOGGING IN"
+ login(request, user)
+ return HttpResponseRedirect ('/login-ok')
+ else:
+ env['state'] = "Your account is not active, please contact the site admin."
+ return render_to_response('home-view.html',env, context_instance=RequestContext(request))
+ else:
+ env['state'] = "Your username and/or password were incorrect."
+ return render_to_response('home-view.html',env, context_instance=RequestContext(request))
+
+ # login-ok sets state="Welcome to MySlice" in urls.py
+ def get (self, request, state=None):
+ env = self.default_env()
+ env['username']=the_user(request)
+ env['topmenu_items'] = topmenu_items('', request)
+ if state: env['state'] = state
+ elif not env['username']: env['state'] = "Please log in below..."
+ return render_to_response('home-view.html',env, context_instance=RequestContext(request))
+
{% extends 'layout-unfold2.html' %}
{% block unfold2_margin %}
+{% if not username %}
{% include 'widget-login.html' %}
+{% endif %}
{% endblock unfold2_margin %}
{% block unfold2_main %}
from portal.contactview import ContactView
from portal.slicerequestview import SliceRequestView
from portal.registrationview import RegistrationView
+from portal.sliceview import SliceView
+
# hopefully these should move in dedicated source files too
from portal.views import PresViewView, pres_view_static, pres_view_methods, pres_view_animation
from portal.views import ValidatePendingView
url(r'^account/?$', AccountView.as_view(), name='account'),
url(r'^platforms/?$', PlatformsView.as_view(), name='platforms'),
url(r'^platform/(?P<platformname>[\w\.]+)/?$', PlatformView.as_view(), name='platform'),
+ url(r'^slice/?$',SliceView.as_view(),name='slice'),
+ url(r'^slice/(?P<slicename>[\w\.]+)/?$', SliceView.as_view(),name='slice'),
url(r'^account/account_process/?$', account_process),
url(r'^register/?$', RegistrationView.as_view(), name='registration'),
url(r'^contact/?$', ContactView.as_view(), name='contact'),