mirror of
https://github.com/discourse/discourse.git
synced 2026-03-04 01:36:36 +08:00
**Description**
These changes were introduced in a previous PR but were reverted due to
a bug when several users were mentioned in a response. This PR
reintroduces the changes along with a fix to the issue.
This is part of a series of changes to allow customers to display users'
names instead of the user's username.
When a user belongs to a group that has been mentioned by another user.
It shows the name of the user that mentioned the group.
[Previous
commit](e147d2afe6)
**Before**

**After**

When a email is sent to the user when mentioned in a post
**Before**

**After**

125 lines
3.8 KiB
Ruby
125 lines
3.8 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
Fabricator(:notification) do
|
|
transient :post
|
|
notification_type Notification.types[:mentioned]
|
|
high_priority false
|
|
user
|
|
topic { |attrs| attrs[:post]&.topic || Fabricate(:topic, user: attrs[:user]) }
|
|
post_number { |attrs| attrs[:post]&.post_number }
|
|
data '{"poison":"ivy","killer":"croc"}'
|
|
end
|
|
|
|
Fabricator(:quote_notification, from: :notification) do
|
|
notification_type Notification.types[:quoted]
|
|
user
|
|
topic { |attrs| Fabricate(:topic, user: attrs[:user]) }
|
|
end
|
|
|
|
Fabricator(:private_message_notification, from: :notification) do
|
|
notification_type Notification.types[:private_message]
|
|
high_priority true
|
|
data do |attrs|
|
|
post = attrs[:post] || Fabricate(:post, topic: attrs[:topic], user: attrs[:user])
|
|
{
|
|
topic_title: attrs[:topic].title,
|
|
original_post_id: post.id,
|
|
original_post_type: post.post_type,
|
|
original_username: post.user.username,
|
|
revision_number: nil,
|
|
display_username: post.user.username,
|
|
}.to_json
|
|
end
|
|
end
|
|
|
|
Fabricator(:bookmark_reminder_notification, from: :notification) do
|
|
notification_type Notification.types[:bookmark_reminder]
|
|
high_priority true
|
|
data do |attrs|
|
|
post = attrs[:post] || Fabricate(:post, topic: attrs[:topic], user: attrs[:user])
|
|
{
|
|
topic_title: attrs[:topic].title,
|
|
original_post_id: post.id,
|
|
original_post_type: post.post_type,
|
|
original_username: post.user.username,
|
|
revision_number: nil,
|
|
display_username: post.user.username,
|
|
bookmark_name: "Check out Mr Freeze's opinion here",
|
|
}.to_json
|
|
end
|
|
end
|
|
|
|
Fabricator(:replied_notification, from: :notification) do
|
|
notification_type Notification.types[:replied]
|
|
data do |attrs|
|
|
post = attrs[:post] || Fabricate(:post, topic: attrs[:topic], user: attrs[:user])
|
|
{
|
|
topic_title: attrs[:topic].title,
|
|
original_post_id: post.id,
|
|
original_username: post.user.username,
|
|
revision_number: nil,
|
|
display_username: post.user.username,
|
|
}.to_json
|
|
end
|
|
end
|
|
|
|
Fabricator(:posted_notification, from: :notification) do
|
|
notification_type Notification.types[:posted]
|
|
data do |attrs|
|
|
post = attrs[:post] || Fabricate(:post, topic: attrs[:topic], user: attrs[:user])
|
|
{
|
|
topic_title: attrs[:topic].title,
|
|
original_post_id: post.id,
|
|
original_post_type: post.post_type,
|
|
original_username: post.user.username,
|
|
revision_number: nil,
|
|
display_username: post.user.username,
|
|
}.to_json
|
|
end
|
|
end
|
|
|
|
Fabricator(:mentioned_notification, from: :notification) do
|
|
notification_type Notification.types[:mentioned]
|
|
data do |attrs|
|
|
{
|
|
topic_title: attrs[:topic].title,
|
|
original_post_id: attrs[:post].id,
|
|
original_post_type: attrs[:post].post_type,
|
|
original_username: attrs[:post].user.username,
|
|
revision_number: nil,
|
|
display_username: attrs[:post].user.username,
|
|
}.to_json
|
|
end
|
|
end
|
|
|
|
Fabricator(:group_mentioned_notification, from: :notification) do
|
|
transient :group
|
|
notification_type Notification.types[:group_mentioned]
|
|
data do |attrs|
|
|
{
|
|
topic_title: attrs[:topic].title,
|
|
original_post_id: attrs[:post].id,
|
|
original_post_type: attrs[:post].post_type,
|
|
original_username: attrs[:post].user.username,
|
|
revision_number: nil,
|
|
display_username: attrs[:post].user.username,
|
|
display_name: attrs[:user].name,
|
|
group_id: attrs[:group].id,
|
|
group_name: attrs[:group].name,
|
|
}.to_json
|
|
end
|
|
end
|
|
|
|
Fabricator(:watching_first_post_notification, from: :notification) do
|
|
notification_type Notification.types[:watching_first_post]
|
|
data do |attrs|
|
|
{
|
|
topic_title: attrs[:topic].title,
|
|
original_post_id: attrs[:post].id,
|
|
original_post_type: attrs[:post].post_type,
|
|
original_username: attrs[:post].user.username,
|
|
revision_number: nil,
|
|
display_username: attrs[:post].user.username,
|
|
}.to_json
|
|
end
|
|
end
|