From 43010d941a5d4ed548b3b2ad92e782cc43e44c71 Mon Sep 17 00:00:00 2001 From: Bryann Valderrama Date: Wed, 6 Aug 2025 10:52:01 -0500 Subject: [PATCH] chore: remove extension point to render/update extended profile fields in the account settings --- .../context_extender.py | 115 ------------------ nau_openedx_extensions/settings/common.py | 4 - nau_openedx_extensions/settings/production.py | 9 -- 3 files changed, 128 deletions(-) delete mode 100644 nau_openedx_extensions/custom_registration_form/context_extender.py diff --git a/nau_openedx_extensions/custom_registration_form/context_extender.py b/nau_openedx_extensions/custom_registration_form/context_extender.py deleted file mode 100644 index 77f46c86..00000000 --- a/nau_openedx_extensions/custom_registration_form/context_extender.py +++ /dev/null @@ -1,115 +0,0 @@ -""" -Context extender module for edx-platform account page -""" -from __future__ import absolute_import, unicode_literals - -import logging - -from django.conf import settings -from django.core.exceptions import ObjectDoesNotExist -from django.db import models -from django.utils.translation import gettext as _ - -from nau_openedx_extensions.custom_registration_form.models import NauUserExtendedModel -from nau_openedx_extensions.edxapp_wrapper import site_configuration_helpers as configuration_helpers - -log = logging.getLogger(__name__) - - -def get_fields(custom_model_instance): - """ - Get CC account visible fields from site configuration. - """ - custom_fields = custom_model_instance._meta.fields - allowed_fields = configuration_helpers.get_value( - "NAU_ACCOUNTS_CC_VISIBLE_FIELDS", settings.NAU_ACCOUNTS_CC_VISIBLE_FIELDS - ) - for field in custom_fields: - if field.name not in allowed_fields: - continue - if isinstance(field, (models.CharField, models.TextField, models.BooleanField)): - yield field - - -def update_account_view(context, user, **kwargs): - """ - Updates the context from the student account view - """ - extended_profile_fields = [] - custom_model_instance = None - try: - custom_model_instance = NauUserExtendedModel.objects.get(user=user) - except ObjectDoesNotExist: - # If a NauUserExtendedModel does not exist for the user, create an empty one - custom_model_instance = NauUserExtendedModel() - finally: - for field in get_fields(custom_model_instance): - extended_profile_field = { - "field_name": _(field.name), # pylint: disable=translation-of-non-string - "field_label": _(field.verbose_name), # pylint: disable=translation-of-non-string - } - if isinstance(field, models.BooleanField): - extended_profile_field["field_type"] = "CheckboxField" - extended_profile_field["field_options"] = [] - elif field.choices: - extended_profile_field["field_type"] = "ListField" - extended_profile_field["field_options"] = field.choices - else: - extended_profile_field["field_type"] = "TextField" - extended_profile_field["field_options"] = [] - - extended_profile_fields.append(extended_profile_field) - - context["extended_profile_fields"].extend(extended_profile_fields) - - -def update_account_serializer(data, user, **kwargs): - """ - Updates the data from the student account serializer - """ - custom_model_instance = None - try: - custom_model_instance = NauUserExtendedModel.objects.get(user=user) - except ObjectDoesNotExist: - # If a NauUserExtendedModel does not exist for the user, create an empty one - custom_model_instance = NauUserExtendedModel() - finally: - extended_profile = data.get("extended_profile", {}) - - custom_profile = [] - for field in get_fields(custom_model_instance): - custom_profile.append( - { - "field_name": field.name, - "field_value": getattr(custom_model_instance, field.name, ""), - } - ) - extended_profile.extend(custom_profile) - - data["extended_profile"] = extended_profile - - -def partial_update(update, user, **kwargs): - """ - Saves the data from the student account when something changes - """ - if "extended_profile" in update: - custom_model_instance = None - try: - custom_model_instance = NauUserExtendedModel.objects.get(user=user) - except ObjectDoesNotExist: - # If a NauUserExtendedModel does not exist for the user, create an empty one - custom_model_instance = NauUserExtendedModel(user=user) - finally: - new_extended_profile = update["extended_profile"] - - for field in new_extended_profile: - field_name = field["field_name"] - new_value = field["field_value"] - setattr(custom_model_instance, field_name, new_value) - - # Save the custom model instance - # This is necessary to trigger the validation of the fields - # and to ensure that the data is saved correctly - custom_model_instance.full_clean() - custom_model_instance.save() diff --git a/nau_openedx_extensions/settings/common.py b/nau_openedx_extensions/settings/common.py index d8473c81..7db69464 100644 --- a/nau_openedx_extensions/settings/common.py +++ b/nau_openedx_extensions/settings/common.py @@ -57,9 +57,6 @@ def plugin_settings(settings): settings.NAU_CERTIFICATE_CONTEXT_EXTENSION = ( "nau_openedx_extensions.certificates.context_extender.update_cert_context" ) - settings.NAU_STUDENT_ACCOUNT_CONTEXT_EXTENSION = "nau_openedx_extensions.custom_registration_form.context_extender.update_account_view" - settings.NAU_STUDENT_SERIALIZER_CONTEXT_EXTENSION = "nau_openedx_extensions.custom_registration_form.context_extender.update_account_serializer" - settings.NAU_STUDENT_ACCOUNT_PARTIAL_UPDATE = "nau_openedx_extensions.custom_registration_form.context_extender.partial_update" settings.NAU_COURSEWARE_MODULE = ( "nau_openedx_extensions.edxapp_wrapper.backends.courseware_h_v1" ) @@ -81,7 +78,6 @@ def plugin_settings(settings): settings.NAU_COURSE_MESSAGE_BATCH_SIZE = 50 settings.NAU_COURSE_MESSAGE_RECIPIENT_FIELDS = ["profile__name", "email"] settings.NAU_CC_ALLOWED_SLUG = "cccmd:" - settings.NAU_ACCOUNTS_CC_VISIBLE_FIELDS = ["employment_situation", "nif", "allow_newsletter"] settings.SCORMXBLOCK_ASYNC_THRESHOLD = 500 settings.NAU_SITE_CONFIGURATION_HELPERS_MODULE = ( "nau_openedx_extensions.edxapp_wrapper.backends.site_configuration_helpers_l_v1" diff --git a/nau_openedx_extensions/settings/production.py b/nau_openedx_extensions/settings/production.py index 38ed3a6f..fdc56a75 100644 --- a/nau_openedx_extensions/settings/production.py +++ b/nau_openedx_extensions/settings/production.py @@ -31,12 +31,6 @@ def plugin_settings(settings): ).get( "NAU_CERTIFICATE_CONTEXT_EXTENSION", settings.NAU_CERTIFICATE_CONTEXT_EXTENSION ) - settings.NAU_STUDENT_ACCOUNT_CONTEXT_EXTENSION = getattr( - settings, "ENV_TOKENS", {} - ).get( - "NAU_STUDENT_ACCOUNT_CONTEXT_EXTENSION", - settings.NAU_STUDENT_ACCOUNT_CONTEXT_EXTENSION, - ) settings.NAU_REGISTRATION_MODULE = getattr(settings, "ENV_TOKENS", {}).get( "NAU_REGISTRATION_MODULE", settings.NAU_REGISTRATION_MODULE ) @@ -72,9 +66,6 @@ def plugin_settings(settings): ) if SOCIAL_AUTH_TPA_SAML_PIPELINE: settings.SOCIAL_AUTH_TPA_SAML_PIPELINE = SOCIAL_AUTH_TPA_SAML_PIPELINE - settings.NAU_ACCOUNTS_CC_VISIBLE_FIELDS = getattr(settings, "ENV_TOKENS", {}).get( - "NAU_ACCOUNTS_CC_VISIBLE_FIELDS", settings.NAU_ACCOUNTS_CC_VISIBLE_FIELDS - ) if settings.SERVICE_VARIANT == "cms": settings.MAX_ASSET_UPLOAD_FILE_SIZE_IN_MB = getattr(settings, "ENV_TOKENS", {}).get( 'MAX_ASSET_UPLOAD_FILE_SIZE_IN_MB', settings.MAX_ASSET_UPLOAD_FILE_SIZE_IN_MB