Merge pull request #26043 from cpennington/user-profile-segment-identify

Call segment.identify with any changed values when user profile field…
This commit is contained in:
Calen Pennington
2021-01-14 08:54:21 -05:00
committed by GitHub
6 changed files with 123 additions and 36 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_settings_changed_event
from common.djangoapps.util.password_policy_validators import validate_password
from openedx.core.djangoapps.user_api import accounts, errors, helpers
@@ -270,12 +270,15 @@ def _update_preferences_if_needed(data, requesting_user, user):
def _notify_language_proficiencies_update_if_needed(data, user, user_profile, old_language_proficiencies):
if "language_proficiencies" in data:
new_language_proficiencies = data["language_proficiencies"]
emit_setting_changed_event(
emit_settings_changed_event(
user=user,
db_table=user_profile.language_proficiencies.model._meta.db_table,
setting_name="language_proficiencies",
old_value=old_language_proficiencies,
new_value=new_language_proficiencies,
changed_fields={
"language_proficiencies": (
old_language_proficiencies,
new_language_proficiencies,
)
}
)

View File

@@ -29,7 +29,10 @@ 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_settings_changed_event,
get_changed_fields_dict,
)
class RetirementStateError(Exception):
@@ -118,9 +121,14 @@ def post_save_callback(sender, **kwargs):
"""
user_preference = kwargs["instance"]
emit_setting_changed_event(
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, # pylint: disable=protected-access
user_preference.value
)
}
)
user_preference._old_value = None # pylint: disable=protected-access
@@ -131,8 +139,10 @@ def post_delete_callback(sender, **kwargs):
Event changes to user preferences.
"""
user_preference = kwargs["instance"]
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)
}
)