diff --git a/.github/workflows/pylint-checks.yml b/.github/workflows/pylint-checks.yml index 3feb3c0aadae..eeb53c24ed98 100644 --- a/.github/workflows/pylint-checks.yml +++ b/.github/workflows/pylint-checks.yml @@ -18,7 +18,7 @@ jobs: - module-name: lms-2 path: "--django-settings-module=lms.envs.test lms/djangoapps/gating/ lms/djangoapps/grades/ lms/djangoapps/instructor/ lms/djangoapps/instructor_analytics/ lms/djangoapps/discussion/ lms/djangoapps/edxnotes/ lms/djangoapps/email_marketing/ lms/djangoapps/experiments/ lms/djangoapps/instructor_task/ lms/djangoapps/learner_dashboard/ lms/djangoapps/learner_home/ lms/djangoapps/lms_initialization/ lms/djangoapps/lms_xblock/ lms/djangoapps/lti_provider/ lms/djangoapps/mailing/ lms/djangoapps/mobile_api/ lms/djangoapps/monitoring/ lms/djangoapps/ora_staff_grader/ lms/djangoapps/program_enrollments/ lms/djangoapps/rss_proxy lms/djangoapps/static_template_view/ lms/djangoapps/staticbook/ lms/djangoapps/support/ lms/djangoapps/survey/ lms/djangoapps/teams/ lms/djangoapps/tests/ lms/djangoapps/user_tours/ lms/djangoapps/verify_student/ lms/djangoapps/mfe_config_api/ lms/envs/ lms/lib/ lms/tests.py" - module-name: openedx-1 - path: "--django-settings-module=lms.envs.test openedx/core/types/ openedx/core/djangoapps/ace_common/ openedx/core/djangoapps/agreements/ openedx/core/djangoapps/api_admin/ openedx/core/djangoapps/auth_exchange/ openedx/core/djangoapps/bookmarks/ openedx/core/djangoapps/cache_toolbox/ openedx/core/djangoapps/catalog/ openedx/core/djangoapps/ccxcon/ openedx/core/djangoapps/commerce/ openedx/core/djangoapps/common_initialization/ openedx/core/djangoapps/common_views/ openedx/core/djangoapps/config_model_utils/ openedx/core/djangoapps/content/ openedx/core/djangoapps/content_libraries/ openedx/core/djangoapps/content_staging/ openedx/core/djangoapps/contentserver/ openedx/core/djangoapps/cookie_metadata/ openedx/core/djangoapps/cors_csrf/ openedx/core/djangoapps/course_apps/ openedx/core/djangoapps/course_date_signals/ openedx/core/djangoapps/course_groups/ openedx/core/djangoapps/courseware_api/ openedx/core/djangoapps/crawlers/ openedx/core/djangoapps/credentials/ openedx/core/djangoapps/credit/ openedx/core/djangoapps/dark_lang/ openedx/core/djangoapps/debug/ openedx/core/djangoapps/demographics/ openedx/core/djangoapps/discussions/ openedx/core/djangoapps/django_comment_common/ openedx/core/djangoapps/embargo/ openedx/core/djangoapps/enrollments/ openedx/core/djangoapps/external_user_ids/ openedx/core/djangoapps/zendesk_proxy/ openedx/core/djangolib/ openedx/core/lib/ openedx/core/tests/ openedx/core/djangoapps/course_live/" + path: "--django-settings-module=lms.envs.test openedx/core/types/ openedx/core/djangoapps/ace_common/ openedx/core/djangoapps/agreements/ openedx/core/djangoapps/api_admin/ openedx/core/djangoapps/auth_exchange/ openedx/core/djangoapps/bookmarks/ openedx/core/djangoapps/cache_toolbox/ openedx/core/djangoapps/catalog/ openedx/core/djangoapps/ccxcon/ openedx/core/djangoapps/commerce/ openedx/core/djangoapps/common_initialization/ openedx/core/djangoapps/common_views/ openedx/core/djangoapps/config_model_utils/ openedx/core/djangoapps/content/ openedx/core/djangoapps/content_libraries/ openedx/core/djangoapps/content_staging/ openedx/core/djangoapps/contentserver/ openedx/core/djangoapps/cookie_metadata/ openedx/core/djangoapps/cors_csrf/ openedx/core/djangoapps/course_apps/ openedx/core/djangoapps/course_date_signals/ openedx/core/djangoapps/course_groups/ openedx/core/djangoapps/courseware_api/ openedx/core/djangoapps/crawlers/ openedx/core/djangoapps/credentials/ openedx/core/djangoapps/credit/ openedx/core/djangoapps/dark_lang/ openedx/core/djangoapps/debug/ openedx/core/djangoapps/discussions/ openedx/core/djangoapps/django_comment_common/ openedx/core/djangoapps/embargo/ openedx/core/djangoapps/enrollments/ openedx/core/djangoapps/external_user_ids/ openedx/core/djangoapps/zendesk_proxy/ openedx/core/djangolib/ openedx/core/lib/ openedx/core/tests/ openedx/core/djangoapps/course_live/" - module-name: openedx-2 path: "--django-settings-module=lms.envs.test openedx/core/djangoapps/geoinfo/ openedx/core/djangoapps/header_control/ openedx/core/djangoapps/heartbeat/ openedx/core/djangoapps/lang_pref/ openedx/core/djangoapps/models/ openedx/core/djangoapps/monkey_patch/ openedx/core/djangoapps/oauth_dispatch/ openedx/core/djangoapps/olx_rest_api/ openedx/core/djangoapps/password_policy/ openedx/core/djangoapps/plugin_api/ openedx/core/djangoapps/plugins/ openedx/core/djangoapps/profile_images/ openedx/core/djangoapps/programs/ openedx/core/djangoapps/safe_sessions/ openedx/core/djangoapps/schedules/ openedx/core/djangoapps/service_status/ openedx/core/djangoapps/session_inactivity_timeout/ openedx/core/djangoapps/signals/ openedx/core/djangoapps/site_configuration/ openedx/core/djangoapps/system_wide_roles/ openedx/core/djangoapps/theming/ openedx/core/djangoapps/user_api/ openedx/core/djangoapps/user_authn/ openedx/core/djangoapps/util/ openedx/core/djangoapps/verified_track_content/ openedx/core/djangoapps/video_config/ openedx/core/djangoapps/video_pipeline/ openedx/core/djangoapps/waffle_utils/ openedx/core/djangoapps/xblock/ openedx/core/djangoapps/xmodule_django/ openedx/core/tests/ openedx/features/ openedx/testing/ openedx/tests/ openedx/core/djangoapps/learner_pathway/ openedx/core/djangoapps/notifications/ openedx/core/djangoapps/staticfiles/ openedx/core/djangoapps/content_tagging/" - module-name: common diff --git a/.github/workflows/unit-test-shards.json b/.github/workflows/unit-test-shards.json index 8b6c1694da28..4ab126cb4715 100644 --- a/.github/workflows/unit-test-shards.json +++ b/.github/workflows/unit-test-shards.json @@ -106,7 +106,6 @@ "openedx/core/djangoapps/course_live/", "openedx/core/djangoapps/dark_lang/", "openedx/core/djangoapps/debug/", - "openedx/core/djangoapps/demographics/", "openedx/core/djangoapps/discussions/", "openedx/core/djangoapps/django_comment_common/", "openedx/core/djangoapps/embargo/", @@ -187,7 +186,6 @@ "openedx/core/djangoapps/credit/", "openedx/core/djangoapps/dark_lang/", "openedx/core/djangoapps/debug/", - "openedx/core/djangoapps/demographics/", "openedx/core/djangoapps/discussions/", "openedx/core/djangoapps/django_comment_common/", "openedx/core/djangoapps/embargo/", diff --git a/lms/envs/common.py b/lms/envs/common.py index 26073335a267..9f9004976e0c 100644 --- a/lms/envs/common.py +++ b/lms/envs/common.py @@ -3350,9 +3350,6 @@ def _make_locale_paths(settings): # pylint: disable=missing-function-docstring # Management of external user ids 'openedx.core.djangoapps.external_user_ids', - # Provides api for Demographics support - 'openedx.core.djangoapps.demographics', - # Management of per-user schedules 'openedx.core.djangoapps.schedules', diff --git a/lms/urls.py b/lms/urls.py index 99288e25b519..f97bc7f0d04e 100644 --- a/lms/urls.py +++ b/lms/urls.py @@ -129,9 +129,6 @@ ), ), - # Demographics API RESTful endpoints - path('api/demographics/', include('openedx.core.djangoapps.demographics.rest_api.urls')), - # Courseware search endpoints path('search/', include('search.urls')), diff --git a/openedx/core/djangoapps/demographics/README.rst b/openedx/core/djangoapps/demographics/README.rst deleted file mode 100644 index 9081b000585a..000000000000 --- a/openedx/core/djangoapps/demographics/README.rst +++ /dev/null @@ -1,19 +0,0 @@ -Status: Active - -Responsibilities -================ -The Demographics app is an application to support the Demographics feature set -and IDA. It serves as the access point for demographics related status. - -Direction: Decompose -=============== -This app may be removed in the future as the Demographics feature set expands -to a larger set of users. It is not recommended that new features are added -here at this time. - -Glossary -======== -IDA: Independently Deployable Application - -More Documentation -================== diff --git a/openedx/core/djangoapps/demographics/__init__.py b/openedx/core/djangoapps/demographics/__init__.py deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/openedx/core/djangoapps/demographics/admin.py b/openedx/core/djangoapps/demographics/admin.py deleted file mode 100644 index 7ae952ee1dbf..000000000000 --- a/openedx/core/djangoapps/demographics/admin.py +++ /dev/null @@ -1,3 +0,0 @@ -""" -Django admin page for demographics -""" diff --git a/openedx/core/djangoapps/demographics/api/__init__.py b/openedx/core/djangoapps/demographics/api/__init__.py deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/openedx/core/djangoapps/demographics/api/status.py b/openedx/core/djangoapps/demographics/api/status.py deleted file mode 100644 index 5dfb1e8f1942..000000000000 --- a/openedx/core/djangoapps/demographics/api/status.py +++ /dev/null @@ -1,25 +0,0 @@ -""" -Python API for Demographics Status -""" - -from openedx.core.djangoapps.programs.api import is_user_enrolled_in_program_type -from openedx.features.enterprise_support.utils import is_enterprise_learner - - -def show_user_demographics(user, enrollments=None, entitlements=None): - """ - Check if the user should be shown demographics collection fields. Currently limited - to MicroBachlors Programs' learners who aren't part of an enterprise. - """ - is_user_in_microbachelors_program = is_user_enrolled_in_program_type( - user, "microbachelors", enrollments=enrollments, entitlements=entitlements - ) - return is_user_in_microbachelors_program and not is_enterprise_learner(user) - - -def show_call_to_action_for_user(user): - """ - Utility method to determine if a user should be shown the Demographics call to - action. - """ - return False diff --git a/openedx/core/djangoapps/demographics/docs/decisions/0001-demographics-djangoapp-api.rst b/openedx/core/djangoapps/demographics/docs/decisions/0001-demographics-djangoapp-api.rst deleted file mode 100644 index 343b63576160..000000000000 --- a/openedx/core/djangoapps/demographics/docs/decisions/0001-demographics-djangoapp-api.rst +++ /dev/null @@ -1,22 +0,0 @@ -Django Application to Support Demographics Features ---------------------------------------------------- - - -Status -====== - -Accepted - -Context -======= - -To support demographics features and the IDA we need to be able to access the -current state of a User from the LMS (i.e. Program Enrollments, Enterprise status). - -Decisions -========= - -* To meet this need we are creating the Demographics Django Application in the -Open edX core. This application will contain utilities and APIs that will support -the Demographics feature set until they are replaced with other more general APIs -or no longer needed. diff --git a/openedx/core/djangoapps/demographics/migrations/0001_initial.py b/openedx/core/djangoapps/demographics/migrations/0001_initial.py deleted file mode 100644 index 313406112549..000000000000 --- a/openedx/core/djangoapps/demographics/migrations/0001_initial.py +++ /dev/null @@ -1,55 +0,0 @@ -# Generated by Django 2.2.14 on 2020-07-23 19:25 - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion -import django.utils.timezone -import model_utils.fields -import simple_history.models - - -class Migration(migrations.Migration): - - initial = True - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.CreateModel( - name='UserDemographics', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, editable=False, verbose_name='created')), - ('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, editable=False, verbose_name='modified')), - ('show_call_to_action', models.BooleanField(default=True)), - ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), - ], - options={ - 'verbose_name': 'user demographic', - 'verbose_name_plural': 'user demographic', - }, - ), - migrations.CreateModel( - name='HistoricalUserDemographics', - fields=[ - ('id', models.IntegerField(auto_created=True, blank=True, db_index=True, verbose_name='ID')), - ('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, editable=False, verbose_name='created')), - ('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, editable=False, verbose_name='modified')), - ('show_call_to_action', models.BooleanField(default=True)), - ('history_id', models.AutoField(primary_key=True, serialize=False)), - ('history_date', models.DateTimeField()), - ('history_change_reason', models.CharField(max_length=100, null=True)), - ('history_type', models.CharField(choices=[('+', 'Created'), ('~', 'Changed'), ('-', 'Deleted')], max_length=1)), - ('history_user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL)), - ('user', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to=settings.AUTH_USER_MODEL)), - ], - options={ - 'verbose_name': 'historical user demographic', - 'get_latest_by': 'history_date', - 'ordering': ('-history_date', '-history_id'), - }, - bases=(simple_history.models.HistoricalChanges, models.Model), - ), - ] diff --git a/openedx/core/djangoapps/demographics/migrations/0002_clean_duplicate_entries.py b/openedx/core/djangoapps/demographics/migrations/0002_clean_duplicate_entries.py deleted file mode 100644 index bfadadf061b3..000000000000 --- a/openedx/core/djangoapps/demographics/migrations/0002_clean_duplicate_entries.py +++ /dev/null @@ -1,48 +0,0 @@ -import logging - -from django.conf import settings -from django.db import migrations, models - -log = logging.getLogger(__name__) - - -def _clean_duplicate_entries(apps, schema_editor): - """ - This method finds all the duplicate user entries in the UserDemographics model - and then removes all duplicate entries except for the most recently modified one. - """ - demographics_model = apps.get_model('demographics', 'UserDemographics') - # Retrieve a list of all users that have more than one entry. - duplicate_users = ( - demographics_model.objects.values( - 'user' - ).annotate(models.Count('id')).values('user').order_by().filter(id__count__gt=1) - ) - # Get a QuerySet of all the UserDemographics instances for the duplicates - # sorted by user and modified in descending order. - user_demographic_dupes = demographics_model.objects.filter(user__in=duplicate_users).order_by('user', '-modified') - - # Go through the QuerySet and only keep the most recent instance. - existing_user_ids = set() - for demographic in user_demographic_dupes: - if demographic.user_id in existing_user_ids: - log.info('UserDemographics {user} -- {modified}'.format( - user=demographic.user_id, modified=demographic.modified - )) - demographic.delete() - else: - log.info('UserDemographics Duplicate User Delete {user} -- {modified}'.format( - user=demographic.user_id, modified=demographic.modified - )) - existing_user_ids.add(demographic.user_id) - - -class Migration(migrations.Migration): - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('demographics', '0001_initial'), - ] - - operations = [ - migrations.RunPython(_clean_duplicate_entries, migrations.RunPython.noop), - ] diff --git a/openedx/core/djangoapps/demographics/migrations/0003_auto_20200827_1949.py b/openedx/core/djangoapps/demographics/migrations/0003_auto_20200827_1949.py deleted file mode 100644 index d31c24841ea6..000000000000 --- a/openedx/core/djangoapps/demographics/migrations/0003_auto_20200827_1949.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 2.2.15 on 2020-08-27 19:49 - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('demographics', '0002_clean_duplicate_entries'), - ] - - operations = [ - migrations.AlterField( - model_name='userdemographics', - name='user', - field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), - ), - ] diff --git a/openedx/core/djangoapps/demographics/migrations/0004_alter_historicaluserdemographics_options.py b/openedx/core/djangoapps/demographics/migrations/0004_alter_historicaluserdemographics_options.py deleted file mode 100644 index 4e6b50a81cd4..000000000000 --- a/openedx/core/djangoapps/demographics/migrations/0004_alter_historicaluserdemographics_options.py +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by Django 3.2.20 on 2023-08-08 09:44 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('demographics', '0003_auto_20200827_1949'), - ] - - operations = [ - migrations.AlterModelOptions( - name='historicaluserdemographics', - options={'get_latest_by': ('history_date', 'history_id'), 'ordering': ('-history_date', '-history_id'), 'verbose_name': 'historical user demographic', 'verbose_name_plural': 'historical user demographic'}, - ), - ] diff --git a/openedx/core/djangoapps/demographics/migrations/0005_remove_demographics_models.py b/openedx/core/djangoapps/demographics/migrations/0005_remove_demographics_models.py deleted file mode 100644 index aa33188d6269..000000000000 --- a/openedx/core/djangoapps/demographics/migrations/0005_remove_demographics_models.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 4.2.14 on 2024-07-25 15:19 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('demographics', '0004_alter_historicaluserdemographics_options'), - ] - - operations = [ - migrations.RemoveField( - model_name='userdemographics', - name='user', - ), - migrations.DeleteModel( - name='HistoricalUserDemographics', - ), - migrations.DeleteModel( - name='UserDemographics', - ), - ] diff --git a/openedx/core/djangoapps/demographics/migrations/__init__.py b/openedx/core/djangoapps/demographics/migrations/__init__.py deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/openedx/core/djangoapps/demographics/models.py b/openedx/core/djangoapps/demographics/models.py deleted file mode 100644 index be66352f64bd..000000000000 --- a/openedx/core/djangoapps/demographics/models.py +++ /dev/null @@ -1,3 +0,0 @@ -""" -Demographics models -""" diff --git a/openedx/core/djangoapps/demographics/rest_api/__init__.py b/openedx/core/djangoapps/demographics/rest_api/__init__.py deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/openedx/core/djangoapps/demographics/rest_api/urls.py b/openedx/core/djangoapps/demographics/rest_api/urls.py deleted file mode 100644 index 2f7dcc1f11e7..000000000000 --- a/openedx/core/djangoapps/demographics/rest_api/urls.py +++ /dev/null @@ -1,12 +0,0 @@ -""" -Demographics API URLs. -""" -from django.urls import path, include - -from .v1 import urls as v1_urls - -app_name = 'openedx.core.djangoapps.demographics' - -urlpatterns = [ - path('v1/', include(v1_urls)) -] diff --git a/openedx/core/djangoapps/demographics/rest_api/v1/__init__.py b/openedx/core/djangoapps/demographics/rest_api/v1/__init__.py deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/openedx/core/djangoapps/demographics/rest_api/v1/urls.py b/openedx/core/djangoapps/demographics/rest_api/v1/urls.py deleted file mode 100644 index 2bc0383771b0..000000000000 --- a/openedx/core/djangoapps/demographics/rest_api/v1/urls.py +++ /dev/null @@ -1,12 +0,0 @@ -""" -URL Routes for this app. -""" -from django.urls import path -from .views import DemographicsStatusView - - -urlpatterns = [ - path('demographics/status/', DemographicsStatusView.as_view(), - name='demographics_status' - ), -] diff --git a/openedx/core/djangoapps/demographics/rest_api/v1/views.py b/openedx/core/djangoapps/demographics/rest_api/v1/views.py deleted file mode 100644 index 04c06ccdcd8b..000000000000 --- a/openedx/core/djangoapps/demographics/rest_api/v1/views.py +++ /dev/null @@ -1,36 +0,0 @@ -# lint-amnesty, pylint: disable=missing-module-docstring -from rest_framework import permissions -from rest_framework.response import Response -from rest_framework.views import APIView - -from openedx.core.djangoapps.demographics.api.status import show_call_to_action_for_user, show_user_demographics - - -class DemographicsStatusView(APIView): - """ - Demographics display status for the User. - - The API will return whether or not to display the Demographics UI based on - the User's status in the Platform - """ - - permission_classes = (permissions.IsAuthenticated,) - - def _response_context(self, user, user_demographics=None): - """ - Determine whether the user should be shown demographics collection fields and the demographics call to action. - """ - if user_demographics: - show_call_to_action = user_demographics.show_call_to_action - else: - show_call_to_action = show_call_to_action_for_user(user) - return {"display": show_user_demographics(user), "show_call_to_action": show_call_to_action} - - def get(self, request): - """ - GET /api/user/v1/accounts/demographics/status - - This is a Web API to determine the status of demographics related features - """ - user = request.user - return Response(self._response_context(user)) diff --git a/scripts/user_retirement/retire_one_learner.py b/scripts/user_retirement/retire_one_learner.py index 2d298c0729b4..b8c40364e643 100755 --- a/scripts/user_retirement/retire_one_learner.py +++ b/scripts/user_retirement/retire_one_learner.py @@ -10,11 +10,9 @@ lms: http://localhost:18000/ ecommerce: http://localhost:18130/ credentials: http://localhost:18150/ - demographics: http://localhost:18360/ retirement_pipeline: - ['RETIRING_CREDENTIALS', 'CREDENTIALS_COMPLETE', 'CREDENTIALS', 'retire_learner'] - ['RETIRING_ECOM', 'ECOM_COMPLETE', 'ECOMMERCE', 'retire_learner'] - - ['RETIRING_DEMOGRAPHICS', 'DEMOGRAPHICS_COMPLETE', 'DEMOGRAPHICS', 'retire_learner'] - ['RETIRING_LICENSE_MANAGER', 'LICENSE_MANAGER_COMPLETE', 'LICENSE_MANAGER', 'retire_learner'] - ['RETIRING_FORUMS', 'FORUMS_COMPLETE', 'LMS', 'retirement_retire_forum'] - ['RETIRING_EMAIL_LISTS', 'EMAIL_LISTS_COMPLETE', 'LMS', 'retirement_retire_mailings'] diff --git a/scripts/user_retirement/utils/helpers.py b/scripts/user_retirement/utils/helpers.py index 8203e363593c..1bcbadb4b3c4 100644 --- a/scripts/user_retirement/utils/helpers.py +++ b/scripts/user_retirement/utils/helpers.py @@ -18,7 +18,7 @@ from six import text_type from scripts.user_retirement.utils.edx_api import LmsApi # pylint: disable=wrong-import-position -from scripts.user_retirement.utils.edx_api import CredentialsApi, DemographicsApi, EcommerceApi, LicenseManagerApi +from scripts.user_retirement.utils.edx_api import CredentialsApi, EcommerceApi, LicenseManagerApi from scripts.user_retirement.utils.thirdparty_apis.amplitude_api import \ AmplitudeApi # pylint: disable=wrong-import-position from scripts.user_retirement.utils.thirdparty_apis.braze_api import BrazeApi # pylint: disable=wrong-import-position @@ -143,17 +143,16 @@ def _setup_lms_api_or_exit(fail_func, fail_code, config): def _setup_all_apis_or_exit(fail_func, fail_code, config): """ - Performs setup of EdxRestClientApi instances for LMS, E-Commerce, Credentials, and - Demographics, as well as fetching the learner's record from LMS and validating that - it is in a state to work on. Returns the learner dict and their current stage in the - retirement flow. + Performs setup of EdxRestClientApi instances for LMS, E-Commerce, and Credentials, + as well as fetching the learner's record from LMS and validating that it is + in a state to work on. Returns the learner dict and their current stage in + the retirement flow. """ try: lms_base_url = config['base_urls']['lms'] ecommerce_base_url = config['base_urls'].get('ecommerce', None) credentials_base_url = config['base_urls'].get('credentials', None) segment_base_url = config['base_urls'].get('segment', None) - demographics_base_url = config['base_urls'].get('demographics', None) license_manager_base_url = config['base_urls'].get('license_manager', None) client_id = config['client_id'] client_secret = config['client_secret'] @@ -181,7 +180,6 @@ def _setup_all_apis_or_exit(fail_func, fail_code, config): ('CREDENTIALS', credentials_base_url), ('SEGMENT', segment_base_url), ('HUBSPOT', hubspot_api_key), - ('DEMOGRAPHICS', demographics_base_url) ): if state[2] == service and service_url is None: fail_func(fail_code, 'Service URL is not configured, but required for state {}'.format(state)) @@ -223,9 +221,6 @@ def _setup_all_apis_or_exit(fail_func, fail_code, config): if credentials_base_url: config['CREDENTIALS'] = CredentialsApi(lms_base_url, credentials_base_url, client_id, client_secret) - if demographics_base_url: - config['DEMOGRAPHICS'] = DemographicsApi(lms_base_url, demographics_base_url, client_id, client_secret) - if license_manager_base_url: config['LICENSE_MANAGER'] = LicenseManagerApi( lms_base_url,