Implement emit_setting_changed_event in terms of emit_settings_changed_event

This commit is contained in:
Calen Pennington
2021-01-13 14:10:51 -05:00
parent f1a9132308
commit c8b6d69341
3 changed files with 18 additions and 32 deletions

View File

@@ -96,7 +96,6 @@ def emit_field_changed_events(instance, user, db_table, excluded_fields=None, hi
old_value = clean_field(field_name, changed_fields[field_name])
new_value = clean_field(field_name, getattr(instance, field_name))
clean_changed_fields[field_name] = (old_value, new_value)
emit_setting_changed_event(user, db_table, field_name, old_value, new_value)
emit_settings_changed_event(user, db_table, clean_changed_fields)
# Remove the now inaccurate _changed_fields attribute.
if hasattr(instance, '_changed_fields'):
@@ -145,20 +144,7 @@ def emit_setting_changed_event(user, db_table, setting_name, old_value, new_valu
Returns:
None
"""
truncated_fields = truncate_fields(old_value, new_value)
truncated_fields['setting'] = setting_name
truncated_fields['user_id'] = user.id
truncated_fields['table'] = db_table
tracker.emit(
USER_SETTINGS_CHANGED_EVENT_NAME,
truncated_fields
)
# Announce field change
USER_FIELD_CHANGED.send(sender=None, user=user, table=db_table, setting=setting_name,
old_value=old_value, new_value=new_value)
emit_settings_changed_event(user, db_table, {setting_name: (old_value, new_value)})
def emit_settings_changed_event(user, db_table, changed_fields: Dict[str, Tuple[Any, Any]]):
@@ -172,6 +158,22 @@ def emit_settings_changed_event(user, db_table, changed_fields: Dict[str, Tuple[
Returns:
None
"""
for (setting_name, (old_value, new_value)) in changed_fields.items():
truncated_fields = truncate_fields(old_value, new_value)
truncated_fields['setting'] = setting_name
truncated_fields['user_id'] = user.id
truncated_fields['table'] = db_table
tracker.emit(
USER_SETTINGS_CHANGED_EVENT_NAME,
truncated_fields
)
# Announce field change
USER_FIELD_CHANGED.send(sender=None, user=user, table=db_table, setting=setting_name,
old_value=old_value, new_value=new_value)
# Announce field change
USER_FIELDS_CHANGED.send(sender=None, user=user, table=db_table, changed_fields=changed_fields)

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, emit_settings_changed_event
from common.djangoapps.util.model_utils import emit_setting_changed_event
from common.djangoapps.util.password_policy_validators import validate_password
from openedx.core.djangoapps.user_api import accounts, errors, helpers
@@ -277,11 +277,6 @@ 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

@@ -32,7 +32,6 @@ from common.djangoapps.student.models import (
from common.djangoapps.util.model_utils import (
emit_setting_changed_event,
get_changed_fields_dict,
emit_settings_changed_event,
)
@@ -126,11 +125,6 @@ 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
@@ -143,11 +137,6 @@ 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):