custom_profile_fields: Remove op field for the event.

* `op` (operation) field, added in f6fb88549f, was never intended for
`custom_profile_fields` event. This commit removes the `op` as it doesn't
have any use in the code.

* As a part of cleanup, this also eliminates the schema check warnings
for `custom_profile_fields` event, mentioned in #17568.
This commit is contained in:
shanukun 2021-03-26 14:21:43 +05:30 committed by Tim Abbott
parent 79586cc466
commit bc2d58ad4a
8 changed files with 37 additions and 22 deletions

View File

@ -180,7 +180,7 @@ run_test("user groups", (override) => {
}); });
run_test("custom profile fields", (override) => { run_test("custom profile fields", (override) => {
const event = event_fixtures.custom_profile_fields__update; const event = event_fixtures.custom_profile_fields;
override(settings_profile_fields, "populate_profile_fields", noop); override(settings_profile_fields, "populate_profile_fields", noop);
override(settings_account, "add_custom_profile_fields_to_settings", noop); override(settings_account, "add_custom_profile_fields_to_settings", noop);
dispatch(event); dispatch(event);

View File

@ -111,12 +111,11 @@ exports.fixtures = {
upload_space_used: 90000, upload_space_used: 90000,
}, },
custom_profile_fields__update: { custom_profile_fields: {
type: "custom_profile_fields", type: "custom_profile_fields",
op: "update",
fields: [ fields: [
{id: 1, name: "teams", type: 1}, {id: 1, name: "teams", type: 1, hint: "", field_data: "", order: 1},
{id: 2, name: "hobbies", type: 1}, {id: 2, name: "hobbies", type: 1, hint: "", field_data: "", order: 2},
], ],
}, },

View File

@ -10,6 +10,13 @@ below features are supported.
## Changes in Zulip 4.0 ## Changes in Zulip 4.0
**Feature level 45**
* [`GET /events`](/api/get-events): Removed useless `op` field from
`custom_profile_fields` events. These events contain the full set
of configured `custom_profile_fields` for the organization
regardless of what triggered the change.
**Feature level 44** **Feature level 44**
* [`POST /register`](/api/register-queue): extended the `unread_msgs` * [`POST /register`](/api/register-queue): extended the `unread_msgs`

View File

@ -30,7 +30,7 @@ DESKTOP_WARNING_VERSION = "5.2.0"
# #
# Changes should be accompanied by documentation explaining what the # Changes should be accompanied by documentation explaining what the
# new level means in templates/zerver/api/changelog.md. # new level means in templates/zerver/api/changelog.md.
API_FEATURE_LEVEL = 44 API_FEATURE_LEVEL = 45
# Bump the minor PROVISION_VERSION to indicate that folks should provision # Bump the minor PROVISION_VERSION to indicate that folks should provision
# only when going from an old version of the code to a newer version. Bump # only when going from an old version of the code to a newer version. Bump

View File

@ -6715,9 +6715,9 @@ def check_attachment_reference_change(message: Message) -> bool:
return message.attachment_set.exists() return message.attachment_set.exists()
def notify_realm_custom_profile_fields(realm: Realm, operation: str) -> None: def notify_realm_custom_profile_fields(realm: Realm) -> None:
fields = custom_profile_fields_for_realm(realm.id) fields = custom_profile_fields_for_realm(realm.id)
event = dict(type="custom_profile_fields", op=operation, fields=[f.as_dict() for f in fields]) event = dict(type="custom_profile_fields", fields=[f.as_dict() for f in fields])
send_event(realm, event, active_user_ids(realm.id)) send_event(realm, event, active_user_ids(realm.id))
@ -6735,7 +6735,7 @@ def try_add_realm_default_custom_profile_field(
field.save() field.save()
field.order = field.id field.order = field.id
field.save(update_fields=["order"]) field.save(update_fields=["order"])
notify_realm_custom_profile_fields(realm, "add") notify_realm_custom_profile_fields(realm)
return field return field
@ -6757,7 +6757,7 @@ def try_add_realm_custom_profile_field(
field.save() field.save()
field.order = field.id field.order = field.id
field.save(update_fields=["order"]) field.save(update_fields=["order"])
notify_realm_custom_profile_fields(realm, "add") notify_realm_custom_profile_fields(realm)
return field return field
@ -6767,7 +6767,7 @@ def do_remove_realm_custom_profile_field(realm: Realm, field: CustomProfileField
associated with it in CustomProfileFieldValue model. associated with it in CustomProfileFieldValue model.
""" """
field.delete() field.delete()
notify_realm_custom_profile_fields(realm, "delete") notify_realm_custom_profile_fields(realm)
def do_remove_realm_custom_profile_fields(realm: Realm) -> None: def do_remove_realm_custom_profile_fields(realm: Realm) -> None:
@ -6789,7 +6789,7 @@ def try_update_realm_custom_profile_field(
): ):
field.field_data = orjson.dumps(field_data or {}).decode() field.field_data = orjson.dumps(field_data or {}).decode()
field.save() field.save()
notify_realm_custom_profile_fields(realm, "update") notify_realm_custom_profile_fields(realm)
def try_reorder_realm_custom_profile_fields(realm: Realm, order: List[int]) -> None: def try_reorder_realm_custom_profile_fields(realm: Realm, order: List[int]) -> None:
@ -6801,7 +6801,7 @@ def try_reorder_realm_custom_profile_fields(realm: Realm, order: List[int]) -> N
for field in fields: for field in fields:
field.order = order_mapping[field.id] field.order = order_mapping[field.id]
field.save(update_fields=["order"]) field.save(update_fields=["order"])
notify_realm_custom_profile_fields(realm, "update") notify_realm_custom_profile_fields(realm)
def notify_user_update_custom_profile_data( def notify_user_update_custom_profile_data(

View File

@ -184,7 +184,6 @@ custom_profile_field_type = DictType(
custom_profile_fields_event = event_dict_type( custom_profile_fields_event = event_dict_type(
required_keys=[ required_keys=[
("type", Equals("custom_profile_fields")), ("type", Equals("custom_profile_fields")),
("op", Equals("add")),
("fields", ListType(custom_profile_field_type)), ("fields", ListType(custom_profile_field_type)),
] ]
) )

View File

@ -1390,10 +1390,6 @@ paths:
- $ref: "#/components/schemas/EventTypeSchema" - $ref: "#/components/schemas/EventTypeSchema"
- enum: - enum:
- custom_profile_fields - custom_profile_fields
op:
type: string
enum:
- add
fields: fields:
type: array type: array
description: | description: |
@ -1405,7 +1401,6 @@ paths:
example: example:
{ {
"type": "custom_profile_fields", "type": "custom_profile_fields",
"op": "add",
"fields": "fields":
[ [
{ {

View File

@ -65,6 +65,7 @@ from zerver.lib.actions import (
do_remove_default_stream, do_remove_default_stream,
do_remove_default_stream_group, do_remove_default_stream_group,
do_remove_reaction, do_remove_reaction,
do_remove_realm_custom_profile_field,
do_remove_realm_domain, do_remove_realm_domain,
do_remove_realm_emoji, do_remove_realm_emoji,
do_remove_realm_filter, do_remove_realm_filter,
@ -92,6 +93,7 @@ from zerver.lib.actions import (
lookup_default_stream_groups, lookup_default_stream_groups,
notify_realm_custom_profile_fields, notify_realm_custom_profile_fields,
remove_members_from_user_group, remove_members_from_user_group,
try_add_realm_custom_profile_field,
try_update_realm_custom_profile_field, try_update_realm_custom_profile_field,
) )
from zerver.lib.event_schema import ( from zerver.lib.event_schema import (
@ -165,6 +167,7 @@ from zerver.lib.test_helpers import (
from zerver.lib.topic import TOPIC_NAME from zerver.lib.topic import TOPIC_NAME
from zerver.models import ( from zerver.models import (
Attachment, Attachment,
CustomProfileField,
Message, Message,
MultiuseInvite, MultiuseInvite,
PreregistrationUser, PreregistrationUser,
@ -694,20 +697,32 @@ class NormalActionsTest(BaseAction):
check_typing_stop("events[0]", events[0]) check_typing_stop("events[0]", events[0])
def test_custom_profile_fields_events(self) -> None: def test_custom_profile_fields_events(self) -> None:
realm = self.user_profile.realm
try_add_realm_custom_profile_field(
realm=realm, name="Expertise", field_type=CustomProfileField.LONG_TEXT
)
events = self.verify_action( events = self.verify_action(
lambda: notify_realm_custom_profile_fields(self.user_profile.realm, "add"), lambda: notify_realm_custom_profile_fields(self.user_profile.realm),
state_change_expected=False, state_change_expected=False,
) )
check_custom_profile_fields("events[0]", events[0]) check_custom_profile_fields("events[0]", events[0])
realm = self.user_profile.realm
field = realm.customprofilefield_set.get(realm=realm, name="Biography") field = realm.customprofilefield_set.get(realm=realm, name="Biography")
name = field.name name = field.name
hint = "Biography of the user" hint = "Biography of the user"
try_update_realm_custom_profile_field(realm, field, name, hint=hint) try_update_realm_custom_profile_field(realm, field, name, hint=hint)
events = self.verify_action( events = self.verify_action(
lambda: notify_realm_custom_profile_fields(self.user_profile.realm, "add"), lambda: notify_realm_custom_profile_fields(self.user_profile.realm),
state_change_expected=False,
)
check_custom_profile_fields("events[0]", events[0])
do_remove_realm_custom_profile_field(realm, field)
events = self.verify_action(
lambda: notify_realm_custom_profile_fields(self.user_profile.realm),
state_change_expected=False, state_change_expected=False,
) )
check_custom_profile_fields("events[0]", events[0]) check_custom_profile_fields("events[0]", events[0])