views: Use property_types for display settings.

This reduces semi-duplicated code here.
This commit is contained in:
JoshuaGoldin
2017-05-22 12:07:35 -07:00
committed by Tim Abbott
parent 3843f191b4
commit 0b88957d12

View File

@@ -126,7 +126,7 @@ def json_change_settings(request, user_profile,
# by Django,
request.session.save()
result = {}
result = {} # type: Dict[str, Any]
new_email = email.strip()
if user_profile.email != email and new_email != '':
if user_profile.realm.email_changes_disabled:
@@ -171,35 +171,12 @@ def update_display_settings_backend(request, user_profile,
emojiset not in UserProfile.emojiset_choices()):
raise JsonableError(_("Invalid emojiset '%s'" % (emojiset,)))
request_settings = {k: v for k, v in list(locals().items()) if k in user_profile.property_types}
result = {} # type: Dict[str, Any]
if (default_language is not None and
user_profile.default_language != default_language):
do_set_user_display_setting(user_profile, "default_language", default_language)
result['default_language'] = default_language
elif (twenty_four_hour_time is not None and
user_profile.twenty_four_hour_time != twenty_four_hour_time):
do_set_user_display_setting(user_profile, "twenty_four_hour_time", twenty_four_hour_time)
result['twenty_four_hour_time'] = twenty_four_hour_time
elif (left_side_userlist is not None and
user_profile.left_side_userlist != left_side_userlist):
do_set_user_display_setting(user_profile, "left_side_userlist", left_side_userlist)
result['left_side_userlist'] = left_side_userlist
elif (emoji_alt_code is not None and
user_profile.emoji_alt_code != emoji_alt_code):
do_set_user_display_setting(user_profile, "emoji_alt_code", emoji_alt_code)
result['emoji_alt_code'] = emoji_alt_code
elif (emojiset is not None and user_profile.emojiset != emojiset):
do_set_user_display_setting(user_profile, "emojiset", emojiset)
result['emojiset'] = emojiset
elif (timezone is not None and
user_profile.timezone != timezone):
do_set_user_display_setting(user_profile, "timezone", timezone)
result['timezone'] = timezone
for k, v in list(request_settings.items()):
if v is not None and getattr(user_profile, k) != v:
do_set_user_display_setting(user_profile, k, v)
result[k] = v
return json_success(result)