mirror of
https://github.com/zulip/zulip.git
synced 2025-11-03 13:33:24 +00:00
markdown: Remove is_me_message UserMessage flags.
This never made sense to be a flag on the UserMessage table, since it's not per-user state. And in fact it doesn't need to be in a database at all, since it's easily computed from content anyway. Fixes #1099.
This commit is contained in:
@@ -318,31 +318,30 @@ var bugdown_data = JSON.parse(fs.readFileSync(path.join(__dirname, '../../zerver
|
|||||||
var message = {subject: "No links here", raw_content: input};
|
var message = {subject: "No links here", raw_content: input};
|
||||||
message.flags = ['read'];
|
message.flags = ['read'];
|
||||||
markdown.apply_markdown(message);
|
markdown.apply_markdown(message);
|
||||||
markdown.add_message_flags(message);
|
markdown.set_is_me_message(message);
|
||||||
|
|
||||||
assert.equal(message.flags.length, 2);
|
assert.equal(message.is_me_message, true);
|
||||||
|
assert.equal(message.flags.length, 1);
|
||||||
assert(message.flags.indexOf('read') !== -1);
|
assert(message.flags.indexOf('read') !== -1);
|
||||||
assert(message.flags.indexOf('is_me_message') !== -1);
|
|
||||||
|
|
||||||
input = "testing this @**all** @**Cordelia Lear**";
|
input = "testing this @**all** @**Cordelia Lear**";
|
||||||
message = {subject: "No links here", raw_content: input};
|
message = {subject: "No links here", raw_content: input};
|
||||||
markdown.apply_markdown(message);
|
markdown.apply_markdown(message);
|
||||||
markdown.add_message_flags(message);
|
markdown.set_is_me_message(message);
|
||||||
|
|
||||||
|
assert.equal(message.is_me_message, false);
|
||||||
assert.equal(message.flags.length, 1);
|
assert.equal(message.flags.length, 1);
|
||||||
assert(message.flags.indexOf('mentioned') !== -1);
|
assert(message.flags.indexOf('mentioned') !== -1);
|
||||||
|
|
||||||
input = "test @all";
|
input = "test @all";
|
||||||
message = {subject: "No links here", raw_content: input};
|
message = {subject: "No links here", raw_content: input};
|
||||||
markdown.apply_markdown(message);
|
markdown.apply_markdown(message);
|
||||||
markdown.add_message_flags(message);
|
|
||||||
assert.equal(message.flags.length, 1);
|
assert.equal(message.flags.length, 1);
|
||||||
assert(message.flags.indexOf('mentioned') !== -1);
|
assert(message.flags.indexOf('mentioned') !== -1);
|
||||||
|
|
||||||
input = "test @any";
|
input = "test @any";
|
||||||
message = {subject: "No links here", raw_content: input};
|
message = {subject: "No links here", raw_content: input};
|
||||||
markdown.apply_markdown(message);
|
markdown.apply_markdown(message);
|
||||||
markdown.add_message_flags(message);
|
|
||||||
assert.equal(message.flags.length, 0);
|
assert.equal(message.flags.length, 0);
|
||||||
assert(message.flags.indexOf('mentioned') === -1);
|
assert(message.flags.indexOf('mentioned') === -1);
|
||||||
}());
|
}());
|
||||||
|
|||||||
@@ -84,6 +84,7 @@ var message_store = require('js/message_store.js');
|
|||||||
type: 'private',
|
type: 'private',
|
||||||
display_recipient: [me, bob, cindy],
|
display_recipient: [me, bob, cindy],
|
||||||
flags: ['has_alert_word'],
|
flags: ['has_alert_word'],
|
||||||
|
is_me_message: false,
|
||||||
id: 2067,
|
id: 2067,
|
||||||
};
|
};
|
||||||
message_store.add_message_metadata(message);
|
message_store.add_message_metadata(message);
|
||||||
|
|||||||
@@ -105,7 +105,7 @@ function insert_local_message(message_request, local_id) {
|
|||||||
message.local_id = local_id;
|
message.local_id = local_id;
|
||||||
message.locally_echoed = true;
|
message.locally_echoed = true;
|
||||||
message.id = message.local_id;
|
message.id = message.local_id;
|
||||||
markdown.add_message_flags(message);
|
markdown.set_is_me_message(message);
|
||||||
markdown.add_subject_links(message);
|
markdown.add_subject_links(message);
|
||||||
|
|
||||||
waiting_for_id[message.local_id] = message;
|
waiting_for_id[message.local_id] = message;
|
||||||
|
|||||||
@@ -76,14 +76,10 @@ exports.apply_markdown = function (message) {
|
|||||||
message.content = marked(message.raw_content + '\n\n', options).trim();
|
message.content = marked(message.raw_content + '\n\n', options).trim();
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.add_message_flags = function (message) {
|
exports.set_is_me_message = function (message) {
|
||||||
// Note: mention flags are set in apply_markdown()
|
message.is_me_message = (message.raw_content.indexOf('/me ') === 0 &&
|
||||||
|
message.content.indexOf('<p>') === 0 &&
|
||||||
if (message.raw_content.indexOf('/me ') === 0 &&
|
message.content.lastIndexOf('</p>') === message.content.length - 4);
|
||||||
message.content.indexOf('<p>') === 0 &&
|
|
||||||
message.content.lastIndexOf('</p>') === message.content.length - 4) {
|
|
||||||
message.flags.push('is_me_message');
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.add_subject_links = function (message) {
|
exports.add_subject_links = function (message) {
|
||||||
|
|||||||
@@ -102,7 +102,6 @@ exports.set_message_booleans = function (message, flags) {
|
|||||||
message.mentioned_me_directly = convert_flag('mentioned');
|
message.mentioned_me_directly = convert_flag('mentioned');
|
||||||
message.collapsed = convert_flag('collapsed');
|
message.collapsed = convert_flag('collapsed');
|
||||||
message.alerted = convert_flag('has_alert_word');
|
message.alerted = convert_flag('has_alert_word');
|
||||||
message.is_me_message = convert_flag('is_me_message');
|
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.add_message_metadata = function (message) {
|
exports.add_message_metadata = function (message) {
|
||||||
|
|||||||
@@ -813,7 +813,6 @@ def do_send_messages(messages_maybe_none):
|
|||||||
wildcard = message['message'].mentions_wildcard
|
wildcard = message['message'].mentions_wildcard
|
||||||
mentioned_ids = message['message'].mentions_user_ids
|
mentioned_ids = message['message'].mentions_user_ids
|
||||||
ids_with_alert_words = message['message'].user_ids_with_alert_words
|
ids_with_alert_words = message['message'].user_ids_with_alert_words
|
||||||
is_me_message = message['message'].is_me_message
|
|
||||||
|
|
||||||
for um in ums_to_create:
|
for um in ums_to_create:
|
||||||
if um.user_profile.id == message['message'].sender.id and \
|
if um.user_profile.id == message['message'].sender.id and \
|
||||||
@@ -825,8 +824,6 @@ def do_send_messages(messages_maybe_none):
|
|||||||
um.flags |= UserMessage.flags.mentioned
|
um.flags |= UserMessage.flags.mentioned
|
||||||
if um.user_profile_id in ids_with_alert_words:
|
if um.user_profile_id in ids_with_alert_words:
|
||||||
um.flags |= UserMessage.flags.has_alert_word
|
um.flags |= UserMessage.flags.has_alert_word
|
||||||
if is_me_message:
|
|
||||||
um.flags |= UserMessage.flags.is_me_message
|
|
||||||
|
|
||||||
user_messages = []
|
user_messages = []
|
||||||
for um in ums_to_create:
|
for um in ums_to_create:
|
||||||
@@ -2781,9 +2778,6 @@ def update_user_message_flags(message, ums):
|
|||||||
|
|
||||||
update_flag(um, wildcard, UserMessage.flags.wildcard_mentioned)
|
update_flag(um, wildcard, UserMessage.flags.wildcard_mentioned)
|
||||||
|
|
||||||
is_me_message = getattr(message, 'is_me_message', False)
|
|
||||||
update_flag(um, is_me_message, UserMessage.flags.is_me_message)
|
|
||||||
|
|
||||||
for um in changed_ums:
|
for um in changed_ums:
|
||||||
um.save(update_fields=['flags'])
|
um.save(update_fields=['flags'])
|
||||||
|
|
||||||
|
|||||||
@@ -243,6 +243,7 @@ class MessageDict(object):
|
|||||||
obj['content'] = content
|
obj['content'] = content
|
||||||
obj['content_type'] = 'text/x-markdown'
|
obj['content_type'] = 'text/x-markdown'
|
||||||
|
|
||||||
|
obj['is_me_message'] = Message.is_status_message(content, rendered_content)
|
||||||
obj['reactions'] = [ReactionDict.build_dict_from_raw_db_row(reaction)
|
obj['reactions'] = [ReactionDict.build_dict_from_raw_db_row(reaction)
|
||||||
for reaction in reactions]
|
for reaction in reactions]
|
||||||
return obj
|
return obj
|
||||||
@@ -314,7 +315,6 @@ def render_markdown(message, content, realm=None, realm_alert_words=None, messag
|
|||||||
|
|
||||||
if message is not None:
|
if message is not None:
|
||||||
message.mentions_wildcard = False
|
message.mentions_wildcard = False
|
||||||
message.is_me_message = False
|
|
||||||
message.mentions_user_ids = set()
|
message.mentions_user_ids = set()
|
||||||
message.alert_words = set()
|
message.alert_words = set()
|
||||||
message.links_for_preview = set()
|
message.links_for_preview = set()
|
||||||
@@ -349,8 +349,6 @@ def render_markdown(message, content, realm=None, realm_alert_words=None, messag
|
|||||||
if set(words).intersection(message.alert_words):
|
if set(words).intersection(message.alert_words):
|
||||||
message.user_ids_with_alert_words.add(user_id)
|
message.user_ids_with_alert_words.add(user_id)
|
||||||
|
|
||||||
message.is_me_message = Message.is_status_message(content, rendered_content)
|
|
||||||
|
|
||||||
return rendered_content
|
return rendered_content
|
||||||
|
|
||||||
def huddle_users(recipient_id):
|
def huddle_users(recipient_id):
|
||||||
|
|||||||
@@ -1290,7 +1290,7 @@ class AbstractUserMessage(ModelReprMixin, models.Model):
|
|||||||
user_profile = models.ForeignKey(UserProfile, on_delete=CASCADE) # type: UserProfile
|
user_profile = models.ForeignKey(UserProfile, on_delete=CASCADE) # type: UserProfile
|
||||||
ALL_FLAGS = ['read', 'starred', 'collapsed', 'mentioned', 'wildcard_mentioned',
|
ALL_FLAGS = ['read', 'starred', 'collapsed', 'mentioned', 'wildcard_mentioned',
|
||||||
'summarize_in_home', 'summarize_in_stream', 'force_expand', 'force_collapse',
|
'summarize_in_home', 'summarize_in_stream', 'force_expand', 'force_collapse',
|
||||||
'has_alert_word', "historical", 'is_me_message']
|
'has_alert_word', "historical"]
|
||||||
flags = BitField(flags=ALL_FLAGS, default=0) # type: BitHandler
|
flags = BitField(flags=ALL_FLAGS, default=0) # type: BitHandler
|
||||||
|
|
||||||
class Meta(object):
|
class Meta(object):
|
||||||
|
|||||||
Reference in New Issue
Block a user