2024-08-03 17:15:26 -04:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
module AvoidPostingHelper
|
|
|
|
def format_avoid_posting_list
|
2024-08-12 05:39:53 -04:00
|
|
|
Cache.fetch("avoid_posting_list", expires_in: 1.day) do
|
|
|
|
avoid_postings = AvoidPosting.active.joins(:artist).order("artists.name ASC").group_by(&:header)
|
|
|
|
text = ""
|
|
|
|
avoid_postings.each do |header, entries|
|
|
|
|
text += "h2. #{header} [##{anchor(header)}]\n"
|
|
|
|
entries.each do |dnp|
|
|
|
|
text += "* #{dnp.all_names}"
|
|
|
|
if dnp.pretty_details.present?
|
|
|
|
text += " - #{dnp.pretty_details}"
|
|
|
|
end
|
|
|
|
text += "\n"
|
2024-08-03 17:15:26 -04:00
|
|
|
end
|
|
|
|
text += "\n"
|
|
|
|
end
|
2024-08-12 05:39:53 -04:00
|
|
|
format_text(text)
|
2024-08-03 17:15:26 -04:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
def anchor(header)
|
|
|
|
case header
|
|
|
|
when "#"
|
|
|
|
"number"
|
|
|
|
when "?"
|
|
|
|
"other"
|
|
|
|
else
|
|
|
|
header.downcase
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|