mirror of
https://github.com/zulip/zulip.git
synced 2025-10-23 16:14:02 +00:00
settings: Remove conditions for dense_mode setting.
This commit is contained in:
@@ -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"]
|
||||||
|
@@ -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,
|
||||||
|
@@ -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,
|
||||||
|
@@ -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:
|
||||||
|
@@ -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():
|
||||||
|
Reference in New Issue
Block a user