settings: Remove conditions for dense_mode setting.

This commit is contained in:
Sahil Batra
2025-03-07 21:21:37 +05:30
committed by Tim Abbott
parent 63ef84d9a3
commit d8bc2f350e
5 changed files with 7 additions and 123 deletions

View File

@@ -709,19 +709,6 @@ class SystemGroupRequiredError(JsonableError):
return _("'{setting_name}' must be a system user group.") 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): class CannotDeactivateGroupInUseError(JsonableError):
code = ErrorCode.CANNOT_DEACTIVATE_GROUP_IN_USE code = ErrorCode.CANNOT_DEACTIVATE_GROUP_IN_USE
data_fields = ["objections"] data_fields = ["objections"]

View File

@@ -2423,13 +2423,6 @@ class RealmAPITest(ZulipTestCase):
realm_user_default.save() realm_user_default.save()
self.login("iago") 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()} data = {"web_font_size_px": 16, "dense_mode": orjson.dumps(False).decode()}
result = self.client_patch("/json/realm/user_settings_defaults", data) result = self.client_patch("/json/realm/user_settings_defaults", data)
self.assert_json_success(result) 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.web_font_size_px, 14)
self.assertEqual(realm_user_default.dense_mode, True) 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()} data = {"web_line_height_percent": 140, "dense_mode": orjson.dumps(False).decode()}
result = self.client_patch("/json/realm/user_settings_defaults", data) result = self.client_patch("/json/realm/user_settings_defaults", data)
self.assert_json_success(result) 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.web_line_height_percent, 122)
self.assertEqual(realm_user_default.dense_mode, False) 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 = { data = {
"dense_mode": orjson.dumps(True).decode(), "dense_mode": orjson.dumps(True).decode(),
"web_font_size_px": 14, "web_font_size_px": 14,

View File

@@ -580,14 +580,10 @@ class ChangeSettingsTest(ZulipTestCase):
hamlet.save() hamlet.save()
self.login("hamlet") self.login("hamlet")
data: dict[str, str | int] = {"web_font_size_px": 16} data: dict[str, str | int] = {
result = self.client_patch("/json/settings", data) "web_font_size_px": 16,
self.assert_json_error( "dense_mode": orjson.dumps(False).decode(),
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/settings", data) result = self.client_patch("/json/settings", data)
self.assert_json_success(result) self.assert_json_success(result)
hamlet = self.example_user("hamlet") hamlet = self.example_user("hamlet")
@@ -618,13 +614,6 @@ class ChangeSettingsTest(ZulipTestCase):
self.assertEqual(hamlet.web_font_size_px, 14) self.assertEqual(hamlet.web_font_size_px, 14)
self.assertEqual(hamlet.dense_mode, True) 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()} data = {"web_line_height_percent": 140, "dense_mode": orjson.dumps(False).decode()}
result = self.client_patch("/json/settings", data) result = self.client_patch("/json/settings", data)
self.assert_json_success(result) self.assert_json_success(result)
@@ -649,20 +638,6 @@ class ChangeSettingsTest(ZulipTestCase):
self.assertEqual(hamlet.web_line_height_percent, 122) self.assertEqual(hamlet.web_line_height_percent, 122)
self.assertEqual(hamlet.dense_mode, False) 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 = { data = {
"dense_mode": orjson.dumps(True).decode(), "dense_mode": orjson.dumps(True).decode(),
"web_font_size_px": 14, "web_font_size_px": 14,

View File

@@ -53,10 +53,7 @@ from zerver.models.realms import (
MessageEditHistoryVisibilityPolicyEnum, MessageEditHistoryVisibilityPolicyEnum,
OrgTypeEnum, OrgTypeEnum,
) )
from zerver.views.user_settings import ( from zerver.views.user_settings import check_settings_values
check_information_density_setting_values,
check_settings_values,
)
def parse_jitsi_server_url(value: str, special_values_map: Mapping[str, str | None]) -> str | None: 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) 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} request_settings = {k: v for k, v in locals().items() if k in RealmUserDefault.property_types}
for k, v in request_settings.items(): for k, v in request_settings.items():
if v is not None and getattr(realm_user_default, k) != v: if v is not None and getattr(realm_user_default, k) != v:

View File

@@ -38,12 +38,7 @@ from zerver.lib.email_validation import (
validate_email_is_valid, validate_email_is_valid,
validate_email_not_already_in_realm, validate_email_not_already_in_realm,
) )
from zerver.lib.exceptions import ( from zerver.lib.exceptions import JsonableError, RateLimitedError, UserDeactivatedError
IncompatibleParameterValuesError,
JsonableError,
RateLimitedError,
UserDeactivatedError,
)
from zerver.lib.i18n import get_available_language_codes from zerver.lib.i18n import get_available_language_codes
from zerver.lib.rate_limiter import RateLimitedUser from zerver.lib.rate_limiter import RateLimitedUser
from zerver.lib.response import json_success from zerver.lib.response import json_success
@@ -56,7 +51,7 @@ from zerver.lib.typed_endpoint_validators import (
timezone_validator, timezone_validator,
) )
from zerver.lib.upload import upload_avatar_image 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.models.realms import avatar_changes_disabled, name_changes_disabled
from zerver.views.auth import redirect_to_deactivation_notice from zerver.views.auth import redirect_to_deactivation_notice
from zproject.backends import check_password_strength, email_belongs_to_ldap 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 @human_users_only
@typed_endpoint @typed_endpoint
def json_change_settings( def json_change_settings(
@@ -414,15 +385,6 @@ def json_change_settings(
# Note that check_change_full_name strips the passed name automatically # Note that check_change_full_name strips the passed name automatically
check_change_full_name(user_profile, full_name, user_profile) 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 # Loop over user_profile.property_types
request_settings = {k: v for k, v in locals().items() if k in 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(): for k, v in request_settings.items():