diff --git a/common/djangoapps/student/views.py b/common/djangoapps/student/views.py index 1f7ea626a5..6925acf184 100644 --- a/common/djangoapps/student/views.py +++ b/common/djangoapps/student/views.py @@ -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 diff --git a/lms/static/js/toggle_login_modal.js b/lms/static/js/toggle_login_modal.js index 4f07f81bb5..663a04453d 100644 --- a/lms/static/js/toggle_login_modal.js +++ b/lms/static/js/toggle_login_modal.js @@ -7,9 +7,11 @@ closeButton: null, position: 'fixed' } - - var overlay = $("
"); - $("body").append(overlay); + + if ($("#lean_overlay").length == 0) { + var overlay = $(""); + $("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(); diff --git a/lms/templates/activation_active.html b/lms/templates/activation_active.html deleted file mode 100644 index b3ac51d055..0000000000 --- a/lms/templates/activation_active.html +++ /dev/null @@ -1,14 +0,0 @@ -<%! from django.core.urlresolvers import reverse %> -<%inherit file="main.html" /> - -<%namespace name='static' file='static_content.html'/> - -