Cleaned up activation pages. Added "Log In" link to notice when anonymous user tries to enroll in course.
This commit is contained in:
@@ -109,6 +109,24 @@ def dashboard(request):
|
||||
return render_to_response('dashboard.html', context)
|
||||
|
||||
|
||||
def try_change_enrollment(request):
|
||||
"""
|
||||
This method calls change_enrollment if the necessary POST
|
||||
parameters are present, but does not return anything. It
|
||||
simply logs the result or exception. This is usually
|
||||
called after a registration or login, as secondary action.
|
||||
It should not interrupt a successful registration or login.
|
||||
"""
|
||||
if 'enrollment_action' in request.POST:
|
||||
try:
|
||||
enrollment_output = change_enrollment(request)
|
||||
# There isn't really a way to display the results to the user, so we just log it
|
||||
# We expect the enrollment to be a success, and will show up on the dashboard anyway
|
||||
log.info("Attempted to automatically enroll after login. Results: {0}".format(enrollment_output))
|
||||
except Exception, e:
|
||||
log.error("Exception automatically enrolling after login: {0}".format(str(e)))
|
||||
|
||||
|
||||
@login_required
|
||||
def change_enrollment_view(request):
|
||||
return HttpResponse(json.dumps(change_enrollment(request)))
|
||||
@@ -186,14 +204,7 @@ def login_user(request, error=""):
|
||||
|
||||
log.info("Login success - {0} ({1})".format(username, email))
|
||||
|
||||
if 'enrollment_action' in request.POST:
|
||||
try:
|
||||
enrollment_output = change_enrollment(request)
|
||||
# There isn't really a way to display the results to the user, so we just log it
|
||||
# We expect the enrollment to be a success, and will show up on the dashboard anyway
|
||||
log.info("Attempted to automatically enroll after login. Results: {0}".format(enrollment_output))
|
||||
except Exception, e:
|
||||
log.error("Exception automatically enrolling after login: {0}".format(str(e)))
|
||||
try_change_enrollment(request)
|
||||
|
||||
return HttpResponse(json.dumps({'success':True}))
|
||||
|
||||
@@ -335,14 +346,7 @@ def create_account(request, post_override=None):
|
||||
login(request, login_user)
|
||||
request.session.set_expiry(0)
|
||||
|
||||
if 'enrollment_action' in request.POST:
|
||||
try:
|
||||
enrollment_output = change_enrollment(request)
|
||||
# There isn't really a way to display the results to the user, so we just log it
|
||||
# We expect the enrollment to be a success, and will show up on the dashboard anyway
|
||||
log.info("Attempted to automatically enroll after login. Results: {0}".format(enrollment_output))
|
||||
except Exception, e:
|
||||
log.error("Exception automatically enrolling after login: {0}".format(str(e)))
|
||||
try_change_enrollment(request)
|
||||
|
||||
js={'success': True}
|
||||
return HttpResponse(json.dumps(js), mimetype="application/json")
|
||||
@@ -374,14 +378,15 @@ def activate_account(request, key):
|
||||
'''
|
||||
r=Registration.objects.filter(activation_key=key)
|
||||
if len(r)==1:
|
||||
user_logged_in = request.user.is_authenticated()
|
||||
already_active = True
|
||||
if not r[0].user.is_active:
|
||||
r[0].activate()
|
||||
resp = render_to_response("activation_complete.html",{'csrf':csrf(request)['csrf_token']})
|
||||
return resp
|
||||
resp = render_to_response("activation_active.html",{'csrf':csrf(request)['csrf_token']})
|
||||
already_active = False
|
||||
resp = render_to_response("registration/activation_complete.html",{'user_logged_in':user_logged_in, 'already_active' : already_active})
|
||||
return resp
|
||||
if len(r)==0:
|
||||
return render_to_response("activation_invalid.html",{'csrf':csrf(request)['csrf_token']})
|
||||
return render_to_response("registration/activation_invalid.html",{'csrf':csrf(request)['csrf_token']})
|
||||
return HttpResponse("Unknown error. Please e-mail us to let us know how it happened.")
|
||||
|
||||
@ensure_csrf_cookie
|
||||
|
||||
@@ -7,9 +7,11 @@
|
||||
closeButton: null,
|
||||
position: 'fixed'
|
||||
}
|
||||
|
||||
var overlay = $("<div id='lean_overlay'></div>");
|
||||
$("body").append(overlay);
|
||||
|
||||
if ($("#lean_overlay").length == 0) {
|
||||
var overlay = $("<div id='lean_overlay'></div>");
|
||||
$("body").append(overlay);
|
||||
}
|
||||
|
||||
options = $.extend(defaults, options);
|
||||
|
||||
@@ -51,7 +53,11 @@
|
||||
$(modal_id).find(".notice").hide().html("");
|
||||
var notice = $(this).data('notice')
|
||||
if(notice !== undefined) {
|
||||
$(modal_id).find(".notice").show().html(notice);
|
||||
$notice = $(modal_id).find(".notice");
|
||||
$notice.show().html(notice);
|
||||
// This is for activating leanModal links that were in the notice. We should have a cleaner way of
|
||||
// allowing all dynamically added leanmodal links to work.
|
||||
$notice.find("a[rel*=leanModal]").leanModal({ top : 120, overlay: 1, closeButton: ".close-modal", position: 'absolute' });
|
||||
}
|
||||
window.scrollTo(0, 0);
|
||||
e.preventDefault();
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
<%! from django.core.urlresolvers import reverse %>
|
||||
<%inherit file="main.html" />
|
||||
|
||||
<%namespace name='static' file='static_content.html'/>
|
||||
|
||||
<section class="container activation">
|
||||
|
||||
<section class="message">
|
||||
<h1>Account already active!</h1>
|
||||
<hr class="horizontal-divider">
|
||||
|
||||
<p> This account has already been activated. You can now <a href="#login-modal" rel="leanModal">login</a>.</p>
|
||||
</section>
|
||||
</section>
|
||||
@@ -1,14 +0,0 @@
|
||||
<%! from django.core.urlresolvers import reverse %>
|
||||
<%inherit file="main.html" />
|
||||
|
||||
<%namespace name='static' file='static_content.html'/>
|
||||
|
||||
<section class="container activation">
|
||||
|
||||
<section class="message">
|
||||
<h1 class="valid">Activation Complete!</h1>
|
||||
<hr class="horizontal-divider">
|
||||
|
||||
<p>Thanks for activating your account. You can now <a href="#login-modal" rel="leanModal">login</a>.</p>
|
||||
</section>
|
||||
</section>
|
||||
@@ -28,7 +28,7 @@
|
||||
<a href="#" class="register">Register for ${course.number}</a>
|
||||
%endif
|
||||
%else:
|
||||
<a href="#signup-modal" class="register" rel="leanModal" data-notice="You must Sign Up in order to register">Register for ${course.number}</a>
|
||||
<a href="#signup-modal" class="register" rel="leanModal" data-notice='You must Sign Up or <a href="#login-modal" rel="leanModal">Log In</a> to enroll.'>Register for ${course.number}</a>
|
||||
%endif
|
||||
</div>
|
||||
|
||||
|
||||
30
lms/templates/registration/activation_complete.html
Normal file
30
lms/templates/registration/activation_complete.html
Normal file
@@ -0,0 +1,30 @@
|
||||
<%! from django.core.urlresolvers import reverse %>
|
||||
<%inherit file="../main.html" />
|
||||
|
||||
<%namespace name='static' file='../static_content.html'/>
|
||||
|
||||
<section class="container activation">
|
||||
|
||||
<section class="message">
|
||||
%if not already_active:
|
||||
<h1 class="valid">Activation Complete!</h1>
|
||||
%else:
|
||||
<h1>Account already active!</h1>
|
||||
%endif
|
||||
<hr class="horizontal-divider">
|
||||
|
||||
<p>
|
||||
%if not already_active:
|
||||
Thanks for activating your account.
|
||||
%else:
|
||||
This account has already been activated.
|
||||
%endif
|
||||
|
||||
%if user_logged_in:
|
||||
Visit your <a href="${reverse('dashboard')}">dashboard</a> to see your courses.
|
||||
%else:
|
||||
You can now <a href="#login-modal" rel="leanModal">login</a>.
|
||||
%endif
|
||||
</p>
|
||||
</section>
|
||||
</section>
|
||||
@@ -1,7 +1,7 @@
|
||||
<%! from django.core.urlresolvers import reverse %>
|
||||
<%inherit file="main.html" />
|
||||
<%inherit file="../main.html" />
|
||||
|
||||
<%namespace name='static' file='static_content.html'/>
|
||||
<%namespace name='static' file='../static_content.html'/>
|
||||
|
||||
<section class="container activation">
|
||||
|
||||
Reference in New Issue
Block a user