0
0
Fork 1
Spiegel von https://github.com/paviliondev/discourse-custom-wizard.git synchronisiert 2024-11-22 09:20:29 +01:00

FEATURE: allow targetting multiple users/groups when sending a private message

Dieser Commit ist enthalten in:
Faizaan Gagan 2021-04-14 08:59:12 +05:30
Ursprung 2788e8026e
Commit f443840358
3 geänderte Dateien mit 69 neuen und 18 gelöschten Zeilen

Datei anzeigen

@ -89,11 +89,13 @@ class CustomWizard::Action
return return
end end
params[:target_group_names] = []
params[:target_usernames] = []
targets.each do |target| targets.each do |target|
if Group.find_by(name: target) if Group.find_by(name: target)
params[:target_group_names] = target params[:target_group_names] << target
elsif User.find_by_username(target) elsif User.find_by_username(target)
params[:target_usernames] = target params[:target_usernames] << target
else else
# #
end end

Datei anzeigen

@ -67,7 +67,8 @@ describe CustomWizard::Action do
end end
end end
it 'sends a message' do context 'sending a message' do
it 'works' do
User.create(username: 'angus1', email: "angus1@email.com") User.create(username: 'angus1', email: "angus1@email.com")
wizard = CustomWizard::Builder.new(@template[:id], user).build wizard = CustomWizard::Builder.new(@template[:id], user).build
@ -89,6 +90,28 @@ describe CustomWizard::Action do
expect(post.exists?).to eq(true) expect(post.exists?).to eq(true)
end end
it 'allows using multiple PM targets' do
User.create(username: 'angus1', email: "angus1@email.com")
User.create(username: 'faiz', email: "faiz@email.com")
wizard = CustomWizard::Builder.new(@template[:id], user).build
wizard.create_updater(wizard.steps[0].id, {}).update
wizard.create_updater(wizard.steps[1].id, {}).update
topic = Topic.where(
archetype: Archetype.private_message,
title: "Multiple Recipients title"
)
post = Post.where(
topic_id: topic.pluck(:id),
raw: "I will interpolate some wizard fields"
)
expect(topic.exists?).to eq(true)
expect(topic.first.all_allowed_users.map(&:username)).to include('angus1', 'faiz')
expect(post.exists?).to eq(true)
end
end
it 'updates a profile' do it 'updates a profile' do
wizard = CustomWizard::Builder.new(@template[:id], user).build wizard = CustomWizard::Builder.new(@template[:id], user).build
upload = Upload.create!( upload = Upload.create!(

Datei anzeigen

@ -464,6 +464,32 @@
} }
] ]
}, },
{
"id": "action_11",
"run_after": "step_2",
"type": "send_message",
"post_builder": true,
"post_template": "I will interpolate some wizard fields w{step_1_field_1} w{step_1_field_2}",
"title": [
{
"type": "assignment",
"output": "Multiple Recipients title",
"output_type": "text",
"output_connector": "set"
}
],
"recipient": [
{
"type": "assignment",
"output_type": "user",
"output_connector": "set",
"output": [
"angus1",
"faiz"
]
}
]
},
{ {
"id": "action_3", "id": "action_3",
"run_after": "step_2", "run_after": "step_2",