UX: Group membership PMs thread (#26974)

Instead of creating two separate Topics when a user (1) requests to join a group and (2) gets accepted in, this makes the acceptance message into a Post under the origin group request Topic.
This commit is contained in:
benj
2024-05-22 10:47:28 -05:00
committed by GitHub
parent 0012d9626f
commit e42ba6e90a
3 changed files with 83 additions and 9 deletions

View File

@ -480,6 +480,17 @@ class GroupsController < ApplicationController
user = User.find_by(id: params[:user_id])
raise Discourse::InvalidParameters.new(:user_id) if user.blank?
# find original membership request PM
request_topic =
Topic.find_by(
title:
(
I18n.t "groups.request_membership_pm.title", group_name: group.name, locale: user.locale
),
archetype: "private_message",
user_id: user.id,
)
ActiveRecord::Base.transaction do
if params[:accept]
group.add(user)
@ -492,9 +503,11 @@ class GroupsController < ApplicationController
if params[:accept]
PostCreator.new(
current_user,
title: I18n.t("groups.request_accepted_pm.title", group_name: group.name),
raw: I18n.t("groups.request_accepted_pm.body", group_name: group.name),
archetype: Archetype.private_message,
post_type: Post.types[:regular],
topic_id: request_topic.id,
raw:
(I18n.t "groups.request_accepted_pm.body", group_name: group.name, locale: user.locale),
reply_to_post_number: 1,
target_usernames: user.username,
skip_validations: true,
).create!