mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
DEV: Move requested_group_id custom field from post to topic (#9127)
Follow-up-to accbbded15
This commit is contained in:
@@ -40,34 +40,7 @@ class BasicPostSerializer < ApplicationSerializer
|
||||
I18n.t('flagging.user_must_edit')
|
||||
end
|
||||
else
|
||||
cooked = object.filter_quotes(@parent_post)
|
||||
|
||||
if scope&.user
|
||||
|
||||
# PERF: this should not run on every post, only specific ones
|
||||
# also, why is this in basic post serializer?
|
||||
requested_group_id = post_custom_fields['requested_group_id'].to_i
|
||||
|
||||
if requested_group_id > 0
|
||||
group = Group
|
||||
.joins('JOIN group_users ON groups.id = group_users.group_id')
|
||||
.find_by(
|
||||
id: object.custom_fields['requested_group_id'].to_i,
|
||||
group_users: { user_id: scope.user.id, owner: true }
|
||||
)
|
||||
|
||||
if group
|
||||
cooked << <<~EOF
|
||||
<hr />
|
||||
<a href="#{Discourse.base_uri}/g/#{group.name}/requests">
|
||||
#{I18n.t('groups.request_membership_pm.handle')}
|
||||
</a>
|
||||
EOF
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
cooked
|
||||
object.filter_quotes(@parent_post)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -70,7 +70,8 @@ class TopicViewSerializer < ApplicationSerializer
|
||||
:destination_category_id,
|
||||
:pm_with_non_human_user,
|
||||
:queued_posts_count,
|
||||
:show_read_indicator
|
||||
:show_read_indicator,
|
||||
:requested_group_name
|
||||
)
|
||||
|
||||
has_one :details, serializer: TopicViewDetailsSerializer, root: false, embed: :objects
|
||||
@@ -255,4 +256,21 @@ class TopicViewSerializer < ApplicationSerializer
|
||||
def show_read_indicator
|
||||
object.show_read_indicator?
|
||||
end
|
||||
|
||||
def requested_group_name
|
||||
if scope&.user
|
||||
group = Group
|
||||
.joins('JOIN group_users ON groups.id = group_users.group_id')
|
||||
.find_by(
|
||||
id: object.topic.custom_fields['requested_group_id'].to_i,
|
||||
group_users: { user_id: scope.user.id, owner: true }
|
||||
)
|
||||
|
||||
group.name if group
|
||||
end
|
||||
end
|
||||
|
||||
def include_requested_group_name?
|
||||
object.personal_message
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user