diff --git a/common/djangoapps/course_modes/views.py b/common/djangoapps/course_modes/views.py index eba06bda3c..6d5fcc73cf 100644 --- a/common/djangoapps/course_modes/views.py +++ b/common/djangoapps/course_modes/views.py @@ -146,20 +146,29 @@ class ChooseModeView(View): bundle_data = {} bundles_on_track_selection = WaffleFlag(WaffleFlagNamespace(name=u'experiments'), u'bundles_on_track_selection') if bundles_on_track_selection.is_enabled(): - meter = ProgramProgressMeter(request.site, request.user, enrollments=[CourseEnrollment]) - if meter.programs and meter.programs[0]: - program_data = meter.programs[0] - program_data = ProgramDataExtender(program_data, request.user, mobile_only=False).extend() - skus = program_data.get('skus') - ecommerce_service = EcommerceService() - bundle_data = { - 'program_marketing_site_url': program_data.get('marketing_url'), - 'program_bundle_url': ecommerce_service.get_checkout_page_url(*skus), - 'discount_data': program_data.get('discount_data'), - 'program_type': program_data.get('type'), - 'program_title': program_data.get('title'), - 'program_price': program_data.get('full_program_price'), - } + # enrollment in the course on this page + current_enrollment = list(CourseEnrollment.enrollments_for_user(request.user).filter(course_id=course_key)) + if current_enrollment: + meter = ProgramProgressMeter(request.site, request.user, enrollments=current_enrollment) + meter_inverted_programs = meter.invert_programs() + if len(meter_inverted_programs) > 0: + # program for the course on this page + program_for_course = meter_inverted_programs.get(course_id)[0] + program_uuid = program_for_course.get('uuid') + if program_for_course: + # program data with bundle info + program_data = ProgramDataExtender(program_for_course, request.user, mobile_only=False).extend() + skus = program_data.get('skus') + ecommerce_service = EcommerceService() + program_bundle_url = ecommerce_service.get_checkout_page_url(*skus, program_uuid=program_uuid) + bundle_data = { + 'program_marketing_site_url': program_data.get('marketing_url'), + 'program_bundle_url': program_bundle_url, + 'discount_data': program_data.get('discount_data'), + 'program_type': program_data.get('type'), + 'program_title': program_data.get('title'), + 'program_price': program_data.get('full_program_price'), + } context = { "bundle_data": bundle_data,