From d8bc2f350e26b608863f1255c1723917b7f19845 Mon Sep 17 00:00:00 2001 From: Sahil Batra Date: Fri, 7 Mar 2025 21:21:37 +0530 Subject: [PATCH] settings: Remove conditions for dense_mode setting. --- zerver/lib/exceptions.py | 13 ----------- zerver/tests/test_realm.py | 28 ----------------------- zerver/tests/test_settings.py | 33 ++++----------------------- zerver/views/realm.py | 14 +----------- zerver/views/user_settings.py | 42 ++--------------------------------- 5 files changed, 7 insertions(+), 123 deletions(-) diff --git a/zerver/lib/exceptions.py b/zerver/lib/exceptions.py index fb38606f1e..38bcf8947a 100644 --- a/zerver/lib/exceptions.py +++ b/zerver/lib/exceptions.py @@ -709,19 +709,6 @@ class SystemGroupRequiredError(JsonableError): return _("'{setting_name}' must be a system user group.") -class IncompatibleParameterValuesError(JsonableError): - data_fields = ["first_parameter", "second_parameter"] - - def __init__(self, first_parameter: str, second_parameter: str) -> None: - self.first_parameter = first_parameter - self.second_parameter = second_parameter - - @staticmethod - @override - def msg_format() -> str: - return _("Incompatible values for '{first_parameter}' and '{second_parameter}'.") - - class CannotDeactivateGroupInUseError(JsonableError): code = ErrorCode.CANNOT_DEACTIVATE_GROUP_IN_USE data_fields = ["objections"] diff --git a/zerver/tests/test_realm.py b/zerver/tests/test_realm.py index 57490c71e8..8aeb4ff902 100644 --- a/zerver/tests/test_realm.py +++ b/zerver/tests/test_realm.py @@ -2423,13 +2423,6 @@ class RealmAPITest(ZulipTestCase): realm_user_default.save() self.login("iago") - data: dict[str, str | int] = {"web_font_size_px": 16} - result = self.client_patch("/json/realm/user_settings_defaults", data) - self.assert_json_error( - result, - "Incompatible values for 'dense_mode' and 'web_font_size_px'.", - ) - data = {"web_font_size_px": 16, "dense_mode": orjson.dumps(False).decode()} result = self.client_patch("/json/realm/user_settings_defaults", data) self.assert_json_success(result) @@ -2461,13 +2454,6 @@ class RealmAPITest(ZulipTestCase): self.assertEqual(realm_user_default.web_font_size_px, 14) self.assertEqual(realm_user_default.dense_mode, True) - data = {"web_line_height_percent": 140} - result = self.client_patch("/json/realm/user_settings_defaults", data) - self.assert_json_error( - result, - "Incompatible values for 'dense_mode' and 'web_line_height_percent'.", - ) - data = {"web_line_height_percent": 140, "dense_mode": orjson.dumps(False).decode()} result = self.client_patch("/json/realm/user_settings_defaults", data) self.assert_json_success(result) @@ -2492,20 +2478,6 @@ class RealmAPITest(ZulipTestCase): self.assertEqual(realm_user_default.web_line_height_percent, 122) self.assertEqual(realm_user_default.dense_mode, False) - data = {"dense_mode": orjson.dumps(True).decode(), "web_font_size_px": 16} - result = self.client_patch("/json/realm/user_settings_defaults", data) - self.assert_json_error( - result, - "Incompatible values for 'dense_mode' and 'web_font_size_px'.", - ) - - data = {"dense_mode": orjson.dumps(True).decode(), "web_line_height_percent": 140} - result = self.client_patch("/json/realm/user_settings_defaults", data) - self.assert_json_error( - result, - "Incompatible values for 'dense_mode' and 'web_line_height_percent'.", - ) - data = { "dense_mode": orjson.dumps(True).decode(), "web_font_size_px": 14, diff --git a/zerver/tests/test_settings.py b/zerver/tests/test_settings.py index b35627404d..b190c6d32f 100644 --- a/zerver/tests/test_settings.py +++ b/zerver/tests/test_settings.py @@ -580,14 +580,10 @@ class ChangeSettingsTest(ZulipTestCase): hamlet.save() self.login("hamlet") - data: dict[str, str | int] = {"web_font_size_px": 16} - result = self.client_patch("/json/settings", data) - self.assert_json_error( - result, - "Incompatible values for 'dense_mode' and 'web_font_size_px'.", - ) - - data = {"web_font_size_px": 16, "dense_mode": orjson.dumps(False).decode()} + data: dict[str, str | int] = { + "web_font_size_px": 16, + "dense_mode": orjson.dumps(False).decode(), + } result = self.client_patch("/json/settings", data) self.assert_json_success(result) hamlet = self.example_user("hamlet") @@ -618,13 +614,6 @@ class ChangeSettingsTest(ZulipTestCase): self.assertEqual(hamlet.web_font_size_px, 14) self.assertEqual(hamlet.dense_mode, True) - data = {"web_line_height_percent": 140} - result = self.client_patch("/json/settings", data) - self.assert_json_error( - result, - "Incompatible values for 'dense_mode' and 'web_line_height_percent'.", - ) - data = {"web_line_height_percent": 140, "dense_mode": orjson.dumps(False).decode()} result = self.client_patch("/json/settings", data) self.assert_json_success(result) @@ -649,20 +638,6 @@ class ChangeSettingsTest(ZulipTestCase): self.assertEqual(hamlet.web_line_height_percent, 122) self.assertEqual(hamlet.dense_mode, False) - data = {"dense_mode": orjson.dumps(True).decode(), "web_font_size_px": 16} - result = self.client_patch("/json/settings", data) - self.assert_json_error( - result, - "Incompatible values for 'dense_mode' and 'web_font_size_px'.", - ) - - data = {"dense_mode": orjson.dumps(True).decode(), "web_line_height_percent": 140} - result = self.client_patch("/json/settings", data) - self.assert_json_error( - result, - "Incompatible values for 'dense_mode' and 'web_line_height_percent'.", - ) - data = { "dense_mode": orjson.dumps(True).decode(), "web_font_size_px": 14, diff --git a/zerver/views/realm.py b/zerver/views/realm.py index a27441366b..c4852e8cb4 100644 --- a/zerver/views/realm.py +++ b/zerver/views/realm.py @@ -53,10 +53,7 @@ from zerver.models.realms import ( MessageEditHistoryVisibilityPolicyEnum, OrgTypeEnum, ) -from zerver.views.user_settings import ( - check_information_density_setting_values, - check_settings_values, -) +from zerver.views.user_settings import check_settings_values def parse_jitsi_server_url(value: str, special_values_map: Mapping[str, str | None]) -> str | None: @@ -705,15 +702,6 @@ def update_realm_user_settings_defaults( realm_user_default = RealmUserDefault.objects.get(realm=user_profile.realm) - if ( - dense_mode is not None - or web_font_size_px is not None - or web_line_height_percent is not None - ): - check_information_density_setting_values( - realm_user_default, dense_mode, web_font_size_px, web_line_height_percent - ) - request_settings = {k: v for k, v in locals().items() if k in RealmUserDefault.property_types} for k, v in request_settings.items(): if v is not None and getattr(realm_user_default, k) != v: diff --git a/zerver/views/user_settings.py b/zerver/views/user_settings.py index 916e18a378..fb45747a17 100644 --- a/zerver/views/user_settings.py +++ b/zerver/views/user_settings.py @@ -38,12 +38,7 @@ from zerver.lib.email_validation import ( validate_email_is_valid, validate_email_not_already_in_realm, ) -from zerver.lib.exceptions import ( - IncompatibleParameterValuesError, - JsonableError, - RateLimitedError, - UserDeactivatedError, -) +from zerver.lib.exceptions import JsonableError, RateLimitedError, UserDeactivatedError from zerver.lib.i18n import get_available_language_codes from zerver.lib.rate_limiter import RateLimitedUser from zerver.lib.response import json_success @@ -56,7 +51,7 @@ from zerver.lib.typed_endpoint_validators import ( timezone_validator, ) from zerver.lib.upload import upload_avatar_image -from zerver.models import EmailChangeStatus, RealmUserDefault, UserBaseSettings, UserProfile +from zerver.models import EmailChangeStatus, UserProfile from zerver.models.realms import avatar_changes_disabled, name_changes_disabled from zerver.views.auth import redirect_to_deactivation_notice from zproject.backends import check_password_strength, email_belongs_to_ldap @@ -197,30 +192,6 @@ def check_settings_values( ) -def check_information_density_setting_values( - setting_object: UserProfile | RealmUserDefault, - dense_mode: bool | None, - web_font_size_px: int | None, - web_line_height_percent: int | None, -) -> None: - dense_mode = dense_mode if dense_mode is not None else setting_object.dense_mode - web_font_size_px = ( - web_font_size_px if web_font_size_px is not None else setting_object.web_font_size_px - ) - web_line_height_percent = ( - web_line_height_percent - if web_line_height_percent is not None - else setting_object.web_line_height_percent - ) - - if dense_mode: - if web_font_size_px != UserBaseSettings.WEB_FONT_SIZE_PX_COMPACT: - raise IncompatibleParameterValuesError("dense_mode", "web_font_size_px") - - if web_line_height_percent != UserBaseSettings.WEB_LINE_HEIGHT_PERCENT_COMPACT: - raise IncompatibleParameterValuesError("dense_mode", "web_line_height_percent") - - @human_users_only @typed_endpoint def json_change_settings( @@ -414,15 +385,6 @@ def json_change_settings( # Note that check_change_full_name strips the passed name automatically check_change_full_name(user_profile, full_name, user_profile) - if ( - dense_mode is not None - or web_font_size_px is not None - or web_line_height_percent is not None - ): - check_information_density_setting_values( - user_profile, dense_mode, web_font_size_px, web_line_height_percent - ) - # Loop over user_profile.property_types request_settings = {k: v for k, v in locals().items() if k in user_profile.property_types} for k, v in request_settings.items():