From 7af4accc50705b5fb5e7e09fab9befe97c6dc520 Mon Sep 17 00:00:00 2001 From: David Ormsbee Date: Wed, 28 Aug 2013 15:06:58 -0400 Subject: [PATCH] Preserve purchase amount choice and redisplay on final verification page. --- common/djangoapps/course_modes/views.py | 5 +++-- common/templates/course_modes/_contribution.html | 6 +++--- common/templates/course_modes/choose.html | 2 +- lms/djangoapps/verify_student/views.py | 8 ++++++-- 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/common/djangoapps/course_modes/views.py b/common/djangoapps/course_modes/views.py index 5c1be54f2c..d98ac6fa0b 100644 --- a/common/djangoapps/course_modes/views.py +++ b/common/djangoapps/course_modes/views.py @@ -26,6 +26,7 @@ class ChooseModeView(View): "course_id": course_id, "modes": modes, "course_name": course_from_id(course_id).display_name, + "chosen_price" : None, } if "verified" in modes: context["suggested_prices"] = modes["verified"].suggested_prices.split(",") @@ -57,10 +58,10 @@ class ChooseModeView(View): if requested_mode == "verified": amount = request.POST.get("contribution") or \ request.POST.get("contribution-other-amt") or \ - requested_mode.min_price + requested_mode.min_price.format("{:g}") donation_for_course = request.session.get("donation_for_course", {}) - donation_for_course[course_id] = float(amount) + donation_for_course[course_id] = amount request.session["donation_for_course"] = donation_for_course # TODO: Check here for minimum pricing diff --git a/common/templates/course_modes/_contribution.html b/common/templates/course_modes/_contribution.html index 33ce39a7c7..c86311d8ff 100644 --- a/common/templates/course_modes/_contribution.html +++ b/common/templates/course_modes/_contribution.html @@ -6,16 +6,16 @@ diff --git a/common/templates/course_modes/choose.html b/common/templates/course_modes/choose.html index 9ed96e0826..7f2aa01555 100644 --- a/common/templates/course_modes/choose.html +++ b/common/templates/course_modes/choose.html @@ -54,7 +54,7 @@

Sign up as a verified student and work toward a Certificate of Achievement.

- <%include file="_contribution.html" args="suggested_prices=suggested_prices, currency=currency"/> + <%include file="_contribution.html" args="suggested_prices=suggested_prices, currency=currency, chosen_price=chosen_price"/>

Why do I have to pay? What if I don't meet all the requirements? diff --git a/lms/djangoapps/verify_student/views.py b/lms/djangoapps/verify_student/views.py index ed6fd64d32..4c76251d84 100644 --- a/lms/djangoapps/verify_student/views.py +++ b/lms/djangoapps/verify_student/views.py @@ -42,15 +42,19 @@ class VerifyView(View): course_id = request.GET['course_id'] verify_mode = CourseMode.mode_for_course(course_id, "verified") + if course_id in request.session.get("donation_for_course", {}): + chosen_price = request.session["donation_for_course"][course_id] + else: + chosen_price = verify_mode.min_price.format("{:g}") 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, "purchase_endpoint" : get_purchase_endpoint(), - "suggested_prices" : [int(price) for price in verify_mode.suggested_prices.split(",")], + "suggested_prices" : verify_mode.suggested_prices.split(","), "currency" : verify_mode.currency.upper(), - "chosen_price" : request.session.get("donation_for_course", verify_mode.min_price) + "chosen_price" : chosen_price, } return render_to_response('verify_student/photo_verification.html', context)