diff --git a/zerver/lib/actions.py b/zerver/lib/actions.py index 9615ef0888..ba63a8b692 100644 --- a/zerver/lib/actions.py +++ b/zerver/lib/actions.py @@ -1722,6 +1722,7 @@ def do_change_twenty_four_hour_time(user_profile, twenty_four_hour_time, log=Tru user_profile.save(update_fields=["twenty_four_hour_time"]) event = {'type': 'update_display_settings', 'user': user_profile.email, + 'setting_name': 'twenty_four_hour_time', 'setting': twenty_four_hour_time} if log: log_event(event) @@ -2503,7 +2504,8 @@ def apply_events(state, events, user_profile): elif event['type'] == "realm_filters": state['realm_filters'] = event["realm_filters"] elif event['type'] == "update_display_settings": - state['twenty_four_hour_time'] == event["twenty_four_hour_time"] + if event['setting_name'] == "twenty_four_hour_time": + state['twenty_four_hour_time'] = event["setting"] else: raise ValueError("Unexpected event type %s" % (event['type'],)) diff --git a/zerver/test_events.py b/zerver/test_events.py index cc35047a3b..1e6ed3cac8 100644 --- a/zerver/test_events.py +++ b/zerver/test_events.py @@ -438,12 +438,10 @@ class EventsRegisterTest(AuthedTestCase): def test_change_twenty_four_hour_time(self): schema_checker = check_dict([ ('type', equals('update_display_settings')), - ('op', equals('update')), - ('person', check_dict([ - ('email', check_string), - ('twenty_four_hour_time', check_bool), - ])), - ]) + ('setting_name', equals('twenty_four_hour_time')), + ('user', check_string), + ('setting', check_bool), + ]) # The first False is probably a noop, then we get transitions in both directions. for twenty_four_hour_time in [False, True, False]: events = self.do_test(lambda: do_change_twenty_four_hour_time(self.user_profile, twenty_four_hour_time)) diff --git a/zerver/tests/frontend/node/message_list_view.js b/zerver/tests/frontend/node/message_list_view.js index d991680fe0..c0c8615fed 100644 --- a/zerver/tests/frontend/node/message_list_view.js +++ b/zerver/tests/frontend/node/message_list_view.js @@ -7,6 +7,9 @@ add_dependencies({ util: 'js/util.js' }); +set_global('page_params', { + twenty_four_hour_time: false +}); set_global('home_msg_list', null); set_global('feature_flags', {twenty_four_hour_time: false}); set_global('ui', {small_avatar_url: function () { return ''; }});