41 lines
1.1 KiB
Ruby
41 lines
1.1 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module DiscourseAssign
|
|
module Helpers
|
|
def self.build_assigned_to_user(user, topic)
|
|
return if !user
|
|
{
|
|
username: user.username,
|
|
name: user.name,
|
|
avatar_template: user.avatar_template,
|
|
assign_icon: 'user-plus',
|
|
assign_path: SiteSetting.assigns_user_url_path.gsub("{username}", user.username),
|
|
}
|
|
end
|
|
|
|
def self.build_assigned_to_group(group, topic)
|
|
return if !group
|
|
|
|
{
|
|
name: group.name,
|
|
flair_bg_color: group.flair_bg_color,
|
|
flair_color: group.flair_color,
|
|
flair_icon: group.flair_icon,
|
|
flair_upload_id: group.flair_upload_id,
|
|
assign_icon: 'group-plus',
|
|
assign_path: "/g/#{group.name}/assigned/everyone",
|
|
}
|
|
end
|
|
|
|
def self.build_indirectly_assigned_to(post_assignments, topic)
|
|
post_assignments.map do |post_id, assigned_to|
|
|
if (assigned_to.is_a?(User))
|
|
[post_id, build_assigned_to_user(assigned_to, topic)]
|
|
elsif assigned_to.is_a?(Group)
|
|
[post_id, build_assigned_to_group(assigned_to, topic)]
|
|
end
|
|
end.to_h
|
|
end
|
|
end
|
|
end
|