Call segment.identify with any changed values when user profile fields change

This commit is contained in:
Calen Pennington
2021-01-12 11:27:53 -05:00
parent e858addce1
commit fdac36ec13
4 changed files with 86 additions and 5 deletions

View File

@@ -23,7 +23,7 @@ from common.djangoapps.student.models import (
email_exists_or_retired,
username_exists_or_retired
)
from common.djangoapps.util.model_utils import emit_setting_changed_event
from common.djangoapps.util.model_utils import emit_setting_changed_event, emit_settings_changed_event
from common.djangoapps.util.password_policy_validators import validate_password
from openedx.core.djangoapps.user_api import accounts, errors, helpers
@@ -277,6 +277,11 @@ def _notify_language_proficiencies_update_if_needed(data, user, user_profile, ol
old_value=old_language_proficiencies,
new_value=new_language_proficiencies,
)
emit_settings_changed_event(
user=user,
db_table=user_profile.language_proficiencies.model._meta.db_table,
changed_fields={"language_proficiencies": (old_language_proficiencies, new_language_proficiencies)},
)
def _update_extended_profile_if_needed(data, user_profile):

View File

@@ -29,7 +29,11 @@ from common.djangoapps.student.models import (
get_retired_email_by_email,
get_retired_username_by_username
)
from common.djangoapps.util.model_utils import emit_setting_changed_event, get_changed_fields_dict
from common.djangoapps.util.model_utils import (
emit_setting_changed_event,
get_changed_fields_dict,
emit_settings_changed_event,
)
class RetirementStateError(Exception):
@@ -122,6 +126,11 @@ def post_save_callback(sender, **kwargs):
user_preference.user, sender._meta.db_table, user_preference.key,
user_preference._old_value, user_preference.value # pylint: disable=protected-access
)
emit_settings_changed_event(
user_preference.user,
sender._meta.db_table,
{user_preference.key: (user_preference._old_value, user_preference.value)} # pylint: disable=protected-access
)
user_preference._old_value = None # pylint: disable=protected-access
@@ -134,6 +143,11 @@ def post_delete_callback(sender, **kwargs):
emit_setting_changed_event(
user_preference.user, sender._meta.db_table, user_preference.key, user_preference.value, None
)
emit_settings_changed_event(
user_preference.user,
sender._meta.db_table,
{user_preference.key: (user_preference.value, None)}
)
class UserCourseTag(models.Model):