Commit 5ff8e617 by Saleem Latif Committed by Saleem Latif

Fixed Bulk enrollment code creation.

parent 233c17a8
...@@ -25,6 +25,7 @@ from ecommerce.courses.models import Course ...@@ -25,6 +25,7 @@ from ecommerce.courses.models import Course
from ecommerce.courses.utils import mode_for_product from ecommerce.courses.utils import mode_for_product
from ecommerce.enterprise.utils import get_or_create_enterprise_customer_user from ecommerce.enterprise.utils import get_or_create_enterprise_customer_user
from ecommerce.extensions.analytics.utils import audit_log, parse_tracking_context from ecommerce.extensions.analytics.utils import audit_log, parse_tracking_context
from ecommerce.extensions.api.v2.views.coupons import CouponViewSet
from ecommerce.extensions.checkout.utils import get_receipt_page_url from ecommerce.extensions.checkout.utils import get_receipt_page_url
from ecommerce.extensions.fulfillment.status import LINE from ecommerce.extensions.fulfillment.status import LINE
from ecommerce.extensions.voucher.models import OrderLineVouchers from ecommerce.extensions.voucher.models import OrderLineVouchers
...@@ -36,6 +37,7 @@ Option = get_model('catalogue', 'Option') ...@@ -36,6 +37,7 @@ Option = get_model('catalogue', 'Option')
Product = get_model('catalogue', 'Product') Product = get_model('catalogue', 'Product')
Range = get_model('offer', 'Range') Range = get_model('offer', 'Range')
Voucher = get_model('voucher', 'Voucher') Voucher = get_model('voucher', 'Voucher')
StockRecord = get_model('partner', 'StockRecord')
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
...@@ -503,11 +505,16 @@ class EnrollmentCodeFulfillmentModule(BaseFulfillmentModule): ...@@ -503,11 +505,16 @@ class EnrollmentCodeFulfillmentModule(BaseFulfillmentModule):
if created: if created:
_range.add_product(seat) _range.add_product(seat)
stock_record = StockRecord.objects.get(product=seat, partner=seat.course.partner)
coupon_catalog = CouponViewSet.get_coupon_catalog([stock_record.id], seat.course.partner)
_range.catalog = coupon_catalog
_range.save()
vouchers = create_vouchers( vouchers = create_vouchers(
name='Enrollment code voucher [{}]'.format(line.product.title), name='Enrollment code voucher [{}]'.format(line.product.title),
benefit_type=Benefit.PERCENTAGE, benefit_type=Benefit.PERCENTAGE,
benefit_value=100, benefit_value=100,
catalog=None, catalog=coupon_catalog,
coupon=seat, coupon=seat,
end_datetime=settings.ENROLLMENT_CODE_EXIPRATION_DATE, end_datetime=settings.ENROLLMENT_CODE_EXIPRATION_DATE,
enterprise_customer=None, enterprise_customer=None,
......
...@@ -523,7 +523,7 @@ class EnrollmentCodeFulfillmentModuleTests(DiscoveryTestMixin, TestCase): ...@@ -523,7 +523,7 @@ class EnrollmentCodeFulfillmentModuleTests(DiscoveryTestMixin, TestCase):
def setUp(self): def setUp(self):
super(EnrollmentCodeFulfillmentModuleTests, self).setUp() super(EnrollmentCodeFulfillmentModuleTests, self).setUp()
course = CourseFactory() course = CourseFactory(site=self.site)
course.create_or_update_seat('verified', True, 50, self.partner, create_enrollment_code=True) course.create_or_update_seat('verified', True, 50, self.partner, create_enrollment_code=True)
enrollment_code = Product.objects.get(product_class__name=ENROLLMENT_CODE_PRODUCT_CLASS_NAME) enrollment_code = Product.objects.get(product_class__name=ENROLLMENT_CODE_PRODUCT_CLASS_NAME)
user = factories.UserFactory() user = factories.UserFactory()
...@@ -556,6 +556,7 @@ class EnrollmentCodeFulfillmentModuleTests(DiscoveryTestMixin, TestCase): ...@@ -556,6 +556,7 @@ class EnrollmentCodeFulfillmentModuleTests(DiscoveryTestMixin, TestCase):
self.assertEqual(completed_lines[0].status, LINE.COMPLETE) self.assertEqual(completed_lines[0].status, LINE.COMPLETE)
self.assertEqual(OrderLineVouchers.objects.count(), 1) self.assertEqual(OrderLineVouchers.objects.count(), 1)
self.assertEqual(OrderLineVouchers.objects.first().vouchers.count(), self.QUANTITY) self.assertEqual(OrderLineVouchers.objects.first().vouchers.count(), self.QUANTITY)
self.assertIsNotNone(OrderLineVouchers.objects.first().vouchers.first().benefit.range.catalog)
def test_revoke_line(self): def test_revoke_line(self):
line = self.order.lines.first() line = self.order.lines.first()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment