mirror of https://github.com/zulip/zulip.git
Migrate legacy /json/time_setting to new REST style endpoint.
This commit is contained in:
parent
4db2da66c3
commit
333cf0f015
|
@ -432,7 +432,7 @@ function _setup_page() {
|
|||
}
|
||||
|
||||
channel.patch({
|
||||
url: '/json/time_setting',
|
||||
url: '/json/settings/display',
|
||||
data: data,
|
||||
success: function () {
|
||||
ui.report_success(i18n.t("Time will be displayed in the __format__-hour format! You will need to reload the window for your changes to take effect", context),
|
||||
|
|
|
@ -1530,6 +1530,8 @@ class ChangeSettingsTest(ZulipTestCase):
|
|||
# type: (Dict[str, Any]) -> None
|
||||
self.assertIn("full_name", result)
|
||||
|
||||
# DEPRECATED, to be deleted after all uses of check_for_toggle_param
|
||||
# are converted into check_for_toggle_param_patch.
|
||||
def check_for_toggle_param(self, pattern, param):
|
||||
# type: (str, str) -> None
|
||||
self.login("hamlet@zulip.com")
|
||||
|
@ -1548,6 +1550,26 @@ class ChangeSettingsTest(ZulipTestCase):
|
|||
user_profile = get_user_profile_by_email("hamlet@zulip.com")
|
||||
self.assertEqual(getattr(user_profile, param), False)
|
||||
|
||||
# TODO: requires method consolidation, right now, there's no alternative
|
||||
# for check_for_toggle_param for PATCH.
|
||||
def check_for_toggle_param_patch(self, pattern, url):
|
||||
# type: (str, str) -> None
|
||||
self.login("hamlet@zulip.com")
|
||||
user_profile = get_user_profile_by_email("hamlet@zulip.com")
|
||||
json_result = self.client_patch(pattern,
|
||||
{url: ujson.dumps(True)})
|
||||
self.assert_json_success(json_result)
|
||||
# refetch user_profile object to correctly handle caching
|
||||
user_profile = get_user_profile_by_email("hamlet@zulip.com")
|
||||
self.assertEqual(getattr(user_profile, url), True)
|
||||
|
||||
json_result = self.client_patch(pattern,
|
||||
{url: ujson.dumps(False)})
|
||||
self.assert_json_success(json_result)
|
||||
# refetch user_profile object to correctly handle caching
|
||||
user_profile = get_user_profile_by_email("hamlet@zulip.com")
|
||||
self.assertEqual(getattr(user_profile, url), False)
|
||||
|
||||
def test_successful_change_settings(self):
|
||||
# type: () -> None
|
||||
"""
|
||||
|
@ -1620,7 +1642,7 @@ class ChangeSettingsTest(ZulipTestCase):
|
|||
|
||||
def test_time_setting(self):
|
||||
# type: () -> None
|
||||
self.check_for_toggle_param("/json/time_setting", "twenty_four_hour_time")
|
||||
self.check_for_toggle_param_patch("/json/settings/display", "twenty_four_hour_time")
|
||||
|
||||
def test_enter_sends_setting(self):
|
||||
# type: () -> None
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
from __future__ import absolute_import
|
||||
from typing import Optional
|
||||
from typing import Optional, Any
|
||||
from six import text_type
|
||||
|
||||
from django.utils.translation import ugettext as _
|
||||
|
@ -95,19 +95,6 @@ def json_change_settings(request, user_profile,
|
|||
|
||||
return json_success(result)
|
||||
|
||||
@authenticated_json_post_view
|
||||
@has_request_variables
|
||||
def json_time_setting(request, user_profile, twenty_four_hour_time=REQ(validator=check_bool, default=None)):
|
||||
# type: (HttpRequest, UserProfile, Optional[bool]) -> HttpResponse
|
||||
result = {}
|
||||
if twenty_four_hour_time is not None and \
|
||||
user_profile.twenty_four_hour_time != twenty_four_hour_time:
|
||||
do_change_twenty_four_hour_time(user_profile, twenty_four_hour_time)
|
||||
|
||||
result['twenty_four_hour_time'] = twenty_four_hour_time
|
||||
|
||||
return json_success(result)
|
||||
|
||||
@authenticated_json_post_view
|
||||
@has_request_variables
|
||||
def json_left_side_userlist(request, user_profile, left_side_userlist=REQ(validator=check_bool, default=None)):
|
||||
|
@ -122,22 +109,28 @@ def json_left_side_userlist(request, user_profile, left_side_userlist=REQ(valida
|
|||
|
||||
return json_success(result)
|
||||
|
||||
# TODO: Merge json_left_side_userlist and json_time_setting endpoints
|
||||
# TODO: Merge json_left_side_userlist endpoint
|
||||
# into this one; it should be straightforward
|
||||
@has_request_variables
|
||||
def update_display_settings_backend(request, user_profile,
|
||||
twenty_four_hour_time=REQ(validator=check_bool, default=None),
|
||||
default_language=REQ(validator=check_string, default=None)):
|
||||
# type: (HttpRequest, UserProfile, Optional[str]) -> HttpResponse
|
||||
# type: (HttpRequest, UserProfile, Optional[bool], Optional[str]) -> HttpResponse
|
||||
if (default_language is not None and
|
||||
default_language not in get_available_language_codes()):
|
||||
raise JsonableError(_("Invalid language '%s'" % (default_language,)))
|
||||
|
||||
result = {}
|
||||
result = {} # type: Dict[str, Any]
|
||||
if (default_language is not None and
|
||||
user_profile.default_language != default_language):
|
||||
do_change_default_language(user_profile, 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_change_twenty_four_hour_time(user_profile, twenty_four_hour_time)
|
||||
result['twenty_four_hour_time'] = twenty_four_hour_time
|
||||
|
||||
return json_success(result)
|
||||
|
||||
@authenticated_json_post_view
|
||||
|
|
|
@ -42,6 +42,5 @@ legacy_urls = [
|
|||
url(r'^json/messages_in_narrow$', zerver.views.messages.json_messages_in_narrow),
|
||||
url(r'^json/update_message$', zerver.views.messages.json_update_message),
|
||||
url(r'^json/set_muted_topics$', zerver.views.json_set_muted_topics),
|
||||
url(r'^json/time_setting$', zerver.views.user_settings.json_time_setting),
|
||||
url(r'^json/left_side_userlist$', zerver.views.user_settings.json_left_side_userlist),
|
||||
]
|
||||
|
|
Loading…
Reference in New Issue