diff --git a/enterprise_catalog/apps/api/v1/export_utils.py b/enterprise_catalog/apps/api/v1/export_utils.py index 61332553..ef451b83 100644 --- a/enterprise_catalog/apps/api/v1/export_utils.py +++ b/enterprise_catalog/apps/api/v1/export_utils.py @@ -58,6 +58,7 @@ 'End Date', 'Verified Upgrade Deadline', 'Enroll-by Date', + 'Price', 'Min Effort', 'Max Effort', 'Length', @@ -210,7 +211,10 @@ def course_hit_to_row(hit): csv_row.append(hit.get('level_type')) - csv_row.append(hit.get('first_enrollable_paid_seat_price')) + if content_price := advertised_course_run.get('content_price'): + content_price = math.trunc(float(content_price)) + csv_row.append(content_price) + csv_row.append(hit.get('language')) csv_row.append(', '.join(hit.get('transcript_languages', []))) csv_row.append(hit.get('marketing_url')) @@ -283,8 +287,12 @@ def exec_ed_course_to_row(hit): adv_course_run = hit.get('advertised_course_run', {}) key = adv_course_run.get('key') - price = float(hit['entitlements'][0]['price']) - csv_row.append(math.trunc(price)) + empty_advertised_course_run = {} + advertised_course_run = hit.get('advertised_course_run', empty_advertised_course_run) + if content_price := advertised_course_run.get('content_price'): + content_price = math.trunc(float(content_price)) + csv_row.append(content_price) + csv_row.append(hit.get('language')) csv_row.append(', '.join(hit.get('transcript_languages', []))) csv_row.append(hit.get('marketing_url')) @@ -355,6 +363,10 @@ def course_run_to_row(hit, course_run): enroll_by = datetime.datetime.fromtimestamp(enroll_by).strftime(DATE_FORMAT) csv_row.append(enroll_by) + if content_price := course_run.get('content_price'): + content_price = math.trunc(float(content_price)) + csv_row.append(content_price) + # Min Effort csv_row.append(course_run.get('min_effort')) diff --git a/enterprise_catalog/apps/api/v1/tests/test_views.py b/enterprise_catalog/apps/api/v1/tests/test_views.py index f3fd7698..1a904422 100644 --- a/enterprise_catalog/apps/api/v1/tests/test_views.py +++ b/enterprise_catalog/apps/api/v1/tests/test_views.py @@ -731,6 +731,7 @@ class EnterpriseCatalogCsvDataViewTests(APITestMixin): 'max_effort': 10, 'min_effort': 1, 'weeks_to_complete': 1, + 'content_price': 100, }, 'outcome': '

learn

', 'prerequisites_raw': '

interest

', @@ -777,8 +778,8 @@ def _get_contains_content_base_url(self): def _get_mock_algolia_hits_with_missing_values(self): mock_hits_missing_values = copy.deepcopy(self.mock_algolia_hits) mock_hits_missing_values['hits'][0]['advertised_course_run'].pop('upgrade_deadline') + mock_hits_missing_values['hits'][0]['advertised_course_run'].pop('content_price') mock_hits_missing_values['hits'][0].pop('marketing_url') - mock_hits_missing_values['hits'][0].pop('first_enrollable_paid_seat_price') mock_hits_missing_values['hits'][0]['advertised_course_run']['end'] = None return mock_hits_missing_values