From 2653f0ad6b0e0ca0355c785ea3e0031f42af49d0 Mon Sep 17 00:00:00 2001 From: Clinton Blackburn Date: Mon, 5 Oct 2015 17:32:09 -0400 Subject: [PATCH 1/3] Fixed credit form submission bug Firefox requires the form to be attached to a DOM element ECOM-2492 --- lms/static/js/commerce/credit.js | 3 ++- lms/static/js/commerce/views/receipt_view.js | 2 ++ lms/static/js/dashboard/credit.js | 2 ++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lms/static/js/commerce/credit.js b/lms/static/js/commerce/credit.js index 516127aa51..831b0ec0e1 100644 --- a/lms/static/js/commerce/credit.js +++ b/lms/static/js/commerce/credit.js @@ -23,6 +23,7 @@ var edx = edx || {}; context: this, success: function (requestData) { var $form = $('
', { + 'class': 'hidden', 'action': requestData.url, 'method': 'POST', 'accept-method': 'UTF-8' @@ -35,7 +36,7 @@ var edx = edx || {}; }).appendTo($form); }); - $form.submit(); + $form.appendTo('body').submit(); } }); }; diff --git a/lms/static/js/commerce/views/receipt_view.js b/lms/static/js/commerce/views/receipt_view.js index a627205218..b583a39eab 100644 --- a/lms/static/js/commerce/views/receipt_view.js +++ b/lms/static/js/commerce/views/receipt_view.js @@ -288,6 +288,8 @@ function completeOrder(event) { // jshint ignore:line providerId = $(event).data("provider"), $errorContainer = $("#error-container"); + event.preventDefault(); + analytics.track( "edx.bi.credit.clicked_complete_credit", { diff --git a/lms/static/js/dashboard/credit.js b/lms/static/js/dashboard/credit.js index b6f08a8915..04f2e35a3e 100644 --- a/lms/static/js/dashboard/credit.js +++ b/lms/static/js/dashboard/credit.js @@ -36,6 +36,8 @@ var edx = edx || {}; username = $target.data("user"), providerId = $target.data("provider"); + event.preventDefault(); + edx.commerce.credit.createCreditRequest(providerId, courseKey, username).fail(function () { $(".credit-action").hide(); $errorContainer.toggleClass("is-hidden"); From d9007455c19e2b0bdc8cebf4127549ea019f2ab9 Mon Sep 17 00:00:00 2001 From: Clinton Blackburn Date: Mon, 5 Oct 2015 17:52:08 -0400 Subject: [PATCH 2/3] Removed mailing address from provider request Given the time crunch this is the safest option for dealing with newlines. ECOM-2492 --- openedx/core/djangoapps/credit/api/provider.py | 6 +----- openedx/core/djangoapps/credit/tests/test_api.py | 8 +++++++- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/openedx/core/djangoapps/credit/api/provider.py b/openedx/core/djangoapps/credit/api/provider.py index 4260149cca..8e2bf81d21 100644 --- a/openedx/core/djangoapps/credit/api/provider.py +++ b/openedx/core/djangoapps/credit/api/provider.py @@ -274,11 +274,7 @@ def create_credit_request(course_key, provider_id, username): "user_username": user.username, "user_email": user.email, "user_full_name": user.profile.name, - "user_mailing_address": ( - user.profile.mailing_address - if user.profile.mailing_address is not None - else "" - ), + "user_mailing_address": "", "user_country": ( user.profile.country.code if user.profile.country.code is not None diff --git a/openedx/core/djangoapps/credit/tests/test_api.py b/openedx/core/djangoapps/credit/tests/test_api.py index 64c7d8136f..11ea560876 100644 --- a/openedx/core/djangoapps/credit/tests/test_api.py +++ b/openedx/core/djangoapps/credit/tests/test_api.py @@ -639,7 +639,8 @@ class CreditProviderIntegrationApiTests(CreditApiTestBase): for key in self.USER_INFO.keys(): param_key = 'user_{key}'.format(key=key) self.assertIn(param_key, parameters) - self.assertEqual(parameters[param_key], self.USER_INFO[key]) + expected = '' if key == 'mailing_address' else self.USER_INFO[key] + self.assertEqual(parameters[param_key], expected) def test_create_credit_request_grade_length(self): """ Verify the length of the final grade is limited to seven (7) characters total. @@ -656,6 +657,11 @@ class CreditProviderIntegrationApiTests(CreditApiTestBase): request = api.create_credit_request(self.course_key, self.PROVIDER_ID, self.USER_INFO['username']) self.assertEqual(request['parameters']['final_grade'], u'0.33333') + def test_create_credit_request_address_empty(self): + """ Verify the mailing address is always empty. """ + request = api.create_credit_request(self.course_key, self.PROVIDER_ID, self.user.username) + self.assertEqual(request['parameters']['user_mailing_address'], '') + def test_credit_request_disable_integration(self): CreditProvider.objects.all().update(enable_integration=False) From be4f37f26baf8b9ade8cc794c27929ada5da383b Mon Sep 17 00:00:00 2001 From: Clinton Blackburn Date: Tue, 6 Oct 2015 16:54:52 -0400 Subject: [PATCH 3/3] Credit fixes - Fixed receipt page button - Fixed message on dashboard ECOM-2492 --- lms/static/js/commerce/views/receipt_view.js | 6 +++++- lms/templates/dashboard/_dashboard_credit_info.html | 4 ++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/lms/static/js/commerce/views/receipt_view.js b/lms/static/js/commerce/views/receipt_view.js index b583a39eab..5eeaa38487 100644 --- a/lms/static/js/commerce/views/receipt_view.js +++ b/lms/static/js/commerce/views/receipt_view.js @@ -288,7 +288,11 @@ function completeOrder(event) { // jshint ignore:line providerId = $(event).data("provider"), $errorContainer = $("#error-container"); - event.preventDefault(); + try { + event.preventDefault(); + } catch (err) { + // Ignore the error as not all event inputs have the preventDefault method. + } analytics.track( "edx.bi.credit.clicked_complete_credit", diff --git a/lms/templates/dashboard/_dashboard_credit_info.html b/lms/templates/dashboard/_dashboard_credit_info.html index bca86acee3..509c84c95b 100644 --- a/lms/templates/dashboard/_dashboard_credit_info.html +++ b/lms/templates/dashboard/_dashboard_credit_info.html @@ -23,8 +23,8 @@ % if not credit_status["purchased"] and not credit_status["error"] :

## Translators: provider_name is the name of a credit provider or university (e.g. State University) - ${_("You are now eligible to purchase course credit from {provider_name} for this course. Click Get Credit to get started.").format( - provider_name=credit_status["provider_name"], + ${_("You are now eligible to purchase course credit for this course. Click Get Credit to get started.").format( + provider_name=credit_status["provider_name"], )}