diff --git a/common/djangoapps/student/models/user.py b/common/djangoapps/student/models/user.py index bb8a878e80..5467288638 100644 --- a/common/djangoapps/student/models/user.py +++ b/common/djangoapps/student/models/user.py @@ -602,15 +602,18 @@ class UserProfile(models.Model): return self.__enumerable_to_display(self.GENDER_CHOICES, self.gender) def get_meta(self): # pylint: disable=missing-function-docstring + log.info(f"[Extended Profile] Retrieving user profile meta data for user {self.user.id}") js_str = self.meta if not js_str: js_str = {} else: js_str = json.loads(self.meta) + log.info(f"[Extended Profile] Returning user profile meta data for user {self.user.id} with data [{js_str}]") return js_str def set_meta(self, meta_json): + log.info(f"[Extended Profile] Updating user profile meta data for user {self.user.id} with: [{meta_json}]") self.meta = json.dumps(meta_json) def set_login_session(self, session_id=None): diff --git a/openedx/core/djangoapps/user_api/accounts/api.py b/openedx/core/djangoapps/user_api/accounts/api.py index 4e1c6b426d..2ac7493a4c 100644 --- a/openedx/core/djangoapps/user_api/accounts/api.py +++ b/openedx/core/djangoapps/user_api/accounts/api.py @@ -5,6 +5,7 @@ Programmatic integration point for User API Accounts sub-application import datetime +import logging import re from django.conf import settings @@ -48,6 +49,7 @@ if name_affirmation_installed: # Public access point for this function. visible_fields = _visible_fields +log = logging.getLogger(__name__) @helpers.intercept_errors(errors.UserAPIInternalError, ignore_errors=[errors.UserAPIRequestError]) @@ -337,13 +339,21 @@ def _notify_language_proficiencies_update_if_needed(data, user, user_profile, ol def _update_extended_profile_if_needed(data, user_profile): if 'extended_profile' in data: + log.info(f"[Extended Profile] Extended profile data update requested for user {user_profile.user.id}") meta = user_profile.get_meta() new_extended_profile = data['extended_profile'] for field in new_extended_profile: field_name = field['field_name'] new_value = field['field_value'] + log.info(f"[Extended Profile] Extended profile data field: [{field_name}]") + log.info(f"[Extended Profile] Extended profile data value: [{new_value}]") meta[field_name] = new_value + user_profile.set_meta(meta) + log.info( + "[Extended Profile] Saving user profile after extended profile data update for user " + f"{user_profile.user.id}" + ) user_profile.save()