discourse-assign/lib/discourse_assign/helpers.rb

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