diff --git a/common/djangoapps/course_modes/views.py b/common/djangoapps/course_modes/views.py index a2ccc8583abe9e907c9c761f50a5288fb8d38d7c..13bbb2d4f8c358a8cf1c982420e1f461420a7d33 100644 --- a/common/djangoapps/course_modes/views.py +++ b/common/djangoapps/course_modes/views.py @@ -47,6 +47,14 @@ class ChooseModeView(View): return redirect('dashboard') if requested_mode == "verified": + amount = request.POST.get("contribution") or \ + request.POST.get("contribution-other-amt") or \ + requested_mode.min_price + + donation_for_course = request.session.get("donation_for_course", {}) + donation_for_course[course_id] = float(amount) + request.session["donation_for_course"] = donation_for_course + return redirect( "{}?{}".format( reverse('verify_student_verify'), diff --git a/common/templates/course_modes/choose.html b/common/templates/course_modes/choose.html index 6c9bf1a0a845e197b93445da4712d649a42cdce3..111bdf8dfca72d35d5656120d82b0bf0dbe8eef7 100644 --- a/common/templates/course_modes/choose.html +++ b/common/templates/course_modes/choose.html @@ -39,24 +39,19 @@ <p>Sign up as a verified student and work toward a Certificate of Achievement.</p> <dl> <dt> - Select your contribution for this course (in USD): + Select your contribution for this course (in ${modes["verified"].currency.upper()|h}): </dt> <dd> <ul> + % for price in modes["verified"].suggested_prices.split(","): <li> - <input type="radio" name="contribution-25" id="contribution"> <label for="contribution-25">$25</label> + <input type="radio" name="contribution" value="${price|h}"><label for="contribution-${price|h}">$${price}</label> </li> + % endfor <li> - <input type="radio" name="contribution-50" id="contribution"> <label for="contribution-50">$50</label> - </li> - <li> - <input type="radio" name="contribution-100" id="contribution"> <label for="contribution-100">$100</label> - </li> - <li> - <input type="radio" name="contribution-other" id="contribution"> <label for="contribution-other">Other</label> - </li> - <li> - <label for="contribution-other-amt">Other Amount</label> <input type="text" name="contribution-other" id="contribution-other-amt"> + <input type="radio" name="contribution" value=""/> + <label for="contribution-other-amt">Other Amount</label> + $<input type="text" name="contribution-other-amt" id="contribution-other-amt" /> </li> </ul> </dd> diff --git a/lms/djangoapps/verify_student/views.py b/lms/djangoapps/verify_student/views.py index 79ad5589b7f1af4cc30683eae118500b02a7fe5e..18461bc180d8fa8634473aaf204d45cc472f0714 100644 --- a/lms/djangoapps/verify_student/views.py +++ b/lms/djangoapps/verify_student/views.py @@ -58,11 +58,16 @@ def create_order(request): attempt.save() course_id = request.POST['course_id'] + donation_for_course = request.session.get("donation_for_course", {}) + + # FIXME: When this isn't available we do...? + amount = donation_for_course.get(course_id) # I know, we should check this is valid. All kinds of stuff missing here # enrollment = CourseEnrollment.create_enrollment(request.user, course_id) cart = Order.get_cart_for_user(request.user) - CertificateItem.add_to_order(cart, course_id, 30, 'verified') + cart.clear() + CertificateItem.add_to_order(cart, course_id, amount, 'verified') params = get_signed_purchase_params(cart)