diff --git a/common/djangoapps/course_modes/views.py b/common/djangoapps/course_modes/views.py index 641185eb5be0ab1b1cc9ffb0c79cd8ab3832c03b..5d60b03859ff1ff1db60a5c0b5f3e577603d3747 100644 --- a/common/djangoapps/course_modes/views.py +++ b/common/djangoapps/course_modes/views.py @@ -25,10 +25,13 @@ class ChooseModeView(View): if CourseEnrollment.enrollment_mode_for_user(request.user, course_id) == 'verified': return redirect(reverse('dashboard')) modes = CourseMode.modes_for_course_dict(course_id) + course = course_from_id(course_id) context = { "course_id": course_id, "modes": modes, - "course_name": course_from_id(course_id).display_name, + "course_name": course.display_name_with_default, + "course_org" : course.display_org_with_default, + "course_num" : course.display_number_with_default, "chosen_price": None, "error": error, } diff --git a/lms/djangoapps/shoppingcart/models.py b/lms/djangoapps/shoppingcart/models.py index b3c42a862219cbf28ce3f044cf02b974a6209ed0..3bc2a03802c999af37646340e65e298ddb06e3f0 100644 --- a/lms/djangoapps/shoppingcart/models.py +++ b/lms/djangoapps/shoppingcart/models.py @@ -380,6 +380,18 @@ class CertificateItem(OrderItem): else: return super(CertificateItem, self).single_item_receipt_template + @property + def single_item_receipt_context(self): + course = course_from_id(self.course_id) + return { + "course_id" : self.course_id, + "course_name": course.display_name_with_default, + "course_org": course.display_org_with_default, + "course_num": course.display_number_with_default, + "course_start_date_text": course.start_date_text, + "course_has_started": course.start > datetime.today().replace(tzinfo=pytz.utc), + } + @property def additional_instruction_text(self): return _("Note - you have up to 2 weeks into the course to unenroll from the Verified Certificate option " diff --git a/lms/djangoapps/shoppingcart/views.py b/lms/djangoapps/shoppingcart/views.py index fff8b22e080ffe2057357331cefff7fe9ce25fbb..8930136b802de06b2e096797e888083d2dd1fccf 100644 --- a/lms/djangoapps/shoppingcart/views.py +++ b/lms/djangoapps/shoppingcart/views.py @@ -113,5 +113,6 @@ def show_receipt(request, ordernum): if order_items.count() == 1: receipt_template = order_items[0].single_item_receipt_template + context.update(order_items[0].single_item_receipt_context) return render_to_response(receipt_template, context) diff --git a/lms/djangoapps/verify_student/views.py b/lms/djangoapps/verify_student/views.py index 85e7cb5309646df3e7023bf90cc509e5ba563295..db0e1f34076ea9ebdeece9b5aaf055fd9ea492b4 100644 --- a/lms/djangoapps/verify_student/views.py +++ b/lms/djangoapps/verify_student/views.py @@ -55,11 +55,15 @@ class VerifyView(View): chosen_price = request.session["donation_for_course"][course_id] else: chosen_price = verify_mode.min_price + + course = course_from_id(course_id) context = { "progress_state": progress_state, "user_full_name": request.user.profile.name, "course_id": course_id, - "course_name": course_from_id(course_id).display_name, + "course_name": course.display_name_with_default, + "course_org" : course.display_org_with_default, + "course_num" : course.display_number_with_default, "purchase_endpoint": get_purchase_endpoint(), "suggested_prices": [ decimal.Decimal(price) @@ -91,9 +95,12 @@ class VerifiedView(View): else: chosen_price = verify_mode.min_price.format("{:g}") + course = course_from_id(course_id) context = { "course_id": course_id, - "course_name": course_from_id(course_id).display_name, + "course_name": course.display_name_with_default, + "course_org" : course.display_org_with_default, + "course_num" : course.display_number_with_default, "purchase_endpoint": get_purchase_endpoint(), "currency": verify_mode.currency.upper(), "chosen_price": chosen_price, @@ -150,10 +157,14 @@ def show_requirements(request, course_id): """ if CourseEnrollment.enrollment_mode_for_user(request.user, course_id) == 'verified': return redirect(reverse('dashboard')) + + course = course_from_id(course_id) context = { "course_id": course_id, + "course_name": course.display_name_with_default, + "course_org" : course.display_org_with_default, + "course_num" : course.display_number_with_default, "is_not_active": not request.user.is_active, - "course_name": course_from_id(course_id).display_name, } return render_to_response("verify_student/show_requirements.html", context) diff --git a/lms/static/js/verify_student/photocapture.js b/lms/static/js/verify_student/photocapture.js index a214cf06c3a7201c6ea4695cb93a2df2c7de0229..45a926d0555775e2f1e2a0d1f2c2bd62843bac18 100644 --- a/lms/static/js/verify_student/photocapture.js +++ b/lms/static/js/verify_student/photocapture.js @@ -47,18 +47,20 @@ var submitToPaymentProcessing = function() { }); } -function doResetButton(resetButton, captureButton, approveButton, nextButton) { +function doResetButton(resetButton, captureButton, approveButton, nextButtonNav, nextLink) { approveButton.removeClass('approved'); - nextButton.addClass('disabled'); + nextButtonNav.addClass('is-not-ready'); + nextLink.attr('href', "#"); captureButton.show(); resetButton.hide(); approveButton.hide(); } -function doApproveButton(approveButton, nextButton) { +function doApproveButton(approveButton, nextButtonNav, nextLink) { + nextButtonNav.removeClass('is-not-ready'); approveButton.addClass('approved'); - nextButton.removeClass('disabled'); + nextLink.attr('href', "#next"); } function doSnapshotButton(captureButton, resetButton, approveButton) { @@ -67,7 +69,6 @@ function doSnapshotButton(captureButton, resetButton, approveButton) { approveButton.show(); } - function submitNameChange(event) { event.preventDefault(); var full_name = $('input[name="name"]').val(); @@ -84,7 +85,7 @@ function submitNameChange(event) { .fail(function(jqXhr,text_status, error_thrown) { $('.message-copy').html(jqXhr.responseText); }); - + } function initSnapshotHandler(names, hasHtml5CameraSupport) { @@ -99,7 +100,8 @@ function initSnapshotHandler(names, hasHtml5CameraSupport) { var captureButton = $("#" + name + "_capture_button"); var resetButton = $("#" + name + "_reset_button"); var approveButton = $("#" + name + "_approve_button"); - var nextButton = $("#" + name + "_next_button"); + var nextButtonNav = $("#" + name + "_next_button_nav"); + var nextLink = $("#" + name + "_next_link"); var flashCapture = $("#" + name + "_flash"); var ctx = null; @@ -137,12 +139,12 @@ function initSnapshotHandler(names, hasHtml5CameraSupport) { flashCapture[0].reset(); } - doResetButton(resetButton, captureButton, approveButton, nextButton); + doResetButton(resetButton, captureButton, approveButton, nextButtonNav, nextLink); return false; } function approve() { - doApproveButton(approveButton, nextButton) + doApproveButton(approveButton, nextButtonNav, nextLink) return false; } @@ -150,7 +152,8 @@ function initSnapshotHandler(names, hasHtml5CameraSupport) { captureButton.show(); resetButton.hide(); approveButton.hide(); - nextButton.addClass('disabled'); + nextButtonNav.addClass('is-not-ready'); + nextLink.attr('href', "#"); // Connect event handlers... video.click(snapshot); diff --git a/lms/static/sass/elements/_controls.scss b/lms/static/sass/elements/_controls.scss index e7d884d1462d80c801874cd8b9e26b9b88688e42..b179c04b9b924761d5ba86c4119602940a7e4aa3 100644 --- a/lms/static/sass/elements/_controls.scss +++ b/lms/static/sass/elements/_controls.scss @@ -176,6 +176,9 @@ cursor: default; pointer-events: none; box-shadow: none; + :hover { + pointer-events: none; + } } // ==================== diff --git a/lms/templates/shoppingcart/verified_cert_receipt.html b/lms/templates/shoppingcart/verified_cert_receipt.html index 063e32e1731736396cb76fe03daa7c762d768637..d2f00942a1d4e4de2ec050cd7eb2cbc37a7d4a4d 100644 --- a/lms/templates/shoppingcart/verified_cert_receipt.html +++ b/lms/templates/shoppingcart/verified_cert_receipt.html @@ -1,8 +1,6 @@ <%! from django.utils.translation import ugettext as _ %> <%! from django.core.urlresolvers import reverse %> <%! from student.views import course_from_id %> -<%! from datetime import datetime %> -<%! import pytz %> <%inherit file="../main.html" /> <%block name="bodyclass">register verification-process step-confirmation</%block> @@ -15,8 +13,6 @@ ${notification} </section> % endif -<% course_id = order_items[0].course_id %> -<% course = course_from_id(course_id) %> <div class="container"> <section class="wrapper cart-list"> @@ -25,7 +21,7 @@ <h2 class="title"> <span class="wrapper-sts"> <span class="sts">${_("You are now registered for")}</span> - <span class="sts-course">${course.display_name}</span> + <span class="sts-course">${course_name} (${course_org}, ${course_num})</span> </span> <span class="sts-track"> <span class="sts-track-value"> @@ -108,11 +104,11 @@ <tr> <td>${item.line_desc}</td> <td> - ${_("Starts: {start_date}").format(start_date=course.start_date_text)} + ${_("Starts: {start_date}").format(start_date=course_start_date_text)} </td> <td class="options"> - %if course.start > datetime.today().replace(tzinfo=pytz.utc): - ${_("Starts: {start_date}").format(start_date=course.start_date_text)} + %if course_has_started: + ${_("Starts: {start_date}").format(start_date=course_start_date_text)} %else: <a class="action action-course" href="${reverse('course_root', kwargs={'course_id': item.course_id})}">${_("Go to Course")}</a> %endif diff --git a/lms/templates/verify_student/_verification_header.html b/lms/templates/verify_student/_verification_header.html index 171d92dfee1dca44996e8bdb4eb49d73d8593fb3..8e5957fa331d9f0f073029e8c6caeaceea5736af 100644 --- a/lms/templates/verify_student/_verification_header.html +++ b/lms/templates/verify_student/_verification_header.html @@ -4,7 +4,7 @@ <h2 class="title"> <span class="wrapper-sts"> <span class="sts">${_("You are registering for")}</span> - <span class="sts-course">${course_name}</span> + <span class="sts-course">${course_name} (${course_org}, ${course_num})</span> </span> <span class="sts-track"> <span class="sts-track-value"> diff --git a/lms/templates/verify_student/photo_verification.html b/lms/templates/verify_student/photo_verification.html index a54ab6a2b0b5825d6ec9227071b9e80de692d271..40dd8436a215a3c330e6916db15d7cfe2b6efdac 100644 --- a/lms/templates/verify_student/photo_verification.html +++ b/lms/templates/verify_student/photo_verification.html @@ -141,12 +141,12 @@ </div> </div> - <nav class="nav-wizard"> <!-- FIXME: Additional class is-ready, is-not-ready --> + <nav class="nav-wizard" id="face_next_button_nav"> <span class="help help-inline">${_("Once you verify your photo looks good, you can move on to step 2.")}</span> <ol class="wizard-steps"> <li class="wizard-step"> - <a class="next action-primary" id="face_next_button" href="#next" aria-hidden="true" title="Next">${_("Go to Step 2: Take ID Photo")}</a> + <a id="face_next_link" class="next action-primary" href="#next" aria-hidden="true" title="Next">${_("Go to Step 2: Take ID Photo")}</a> </li> </ol> </nav> @@ -228,12 +228,12 @@ </div> </div> - <nav class="nav-wizard"> + <nav class="nav-wizard" id="photo_id_next_button_nav"> <span class="help help-inline">${_("Once you verify your ID photo looks good, you can move on to step 3.")}</span> <ol class="wizard-steps"> <li class="wizard-step"> - <a class="next action-primary" id="photo_id_next_button" href="#next" aria-hidden="true" title="Next">${_("Go to Step 3: Review Your Info")}</a> + <a id="photo_id_next_link" class="next action-primary" href="#next" aria-hidden="true" title="Next">${_("Go to Step 3: Review Your Info")}</a> </li> </ol> </nav>