diff --git a/lms/djangoapps/shoppingcart/models.py b/lms/djangoapps/shoppingcart/models.py index 8d3ecfa32f..3699613ff0 100644 --- a/lms/djangoapps/shoppingcart/models.py +++ b/lms/djangoapps/shoppingcart/models.py @@ -422,6 +422,8 @@ class CertificateItem(OrderItem): return target_cert.status = 'refunded' target_cert.save() + target_cert.order.status = 'refunded' + target_cert.order.save() order_number = target_cert.order_id # send billing an email so they can handle refunding diff --git a/lms/djangoapps/shoppingcart/tests/test_models.py b/lms/djangoapps/shoppingcart/tests/test_models.py index ecb76ac941..492307e4b1 100644 --- a/lms/djangoapps/shoppingcart/tests/test_models.py +++ b/lms/djangoapps/shoppingcart/tests/test_models.py @@ -373,6 +373,7 @@ class CertificateItemTest(ModuleStoreTestCase): CourseEnrollment.unenroll(self.user, self.course_id) target_certs = CertificateItem.objects.filter(course_id=self.course_id, user_id=self.user, status='refunded', mode='verified') self.assertTrue(target_certs[0]) + self.assertEquals(target_certs[0].order.status, 'refunded') def test_refund_cert_callback_before_expiration(self): # If the expiration date has not yet passed on a verified mode, the user can be refunded @@ -395,6 +396,7 @@ class CertificateItemTest(ModuleStoreTestCase): CourseEnrollment.unenroll(self.user, course_id) target_certs = CertificateItem.objects.filter(course_id=course_id, user_id=self.user, status='refunded', mode='verified') self.assertTrue(target_certs[0]) + self.assertEquals(target_certs[0].order.status, 'refunded') @patch('shoppingcart.models.log.error') def test_refund_cert_callback_before_expiration_email_error(self, error_logger):