mirror of
https://github.com/indentlabs/notebook.git
synced 2025-10-26 11:19:22 +00:00
53 lines
1.7 KiB
Plaintext
53 lines
1.7 KiB
Plaintext
<%# Usage:
|
|
render partial: 'content/contexts/relation', locals: {
|
|
content_type: Location,
|
|
content: some_location_to_find_leaders_of,
|
|
relation_class: LocationLeadership,
|
|
relation_class_id: :leader_id,
|
|
relation_text: :leader_of
|
|
}
|
|
|
|
Note: Initializes/appends to @references[content_type]
|
|
%>
|
|
|
|
<%
|
|
string_content_type = content_type.to_s.downcase
|
|
references_key = string_content_type.pluralize.to_sym
|
|
pretty_relation_text = relation_text.to_s.titleize.downcase
|
|
|
|
@references ||= {}
|
|
@references[references_key] ||= []
|
|
%>
|
|
|
|
<%# .joins(:item).where('items.privacy' => ['public']) also works, but doesn't include current_user check %>
|
|
<%
|
|
relations = relation_class.where("#{relation_class_id}": content.id)
|
|
.map { |content| content.send(string_content_type) }
|
|
.select { |content| content && content.readable_by?(current_user || User.new) }
|
|
%>
|
|
<%
|
|
if relations.count == 1
|
|
# pretty_relation_text.gsub!('<plural>', '')
|
|
# pretty_relation_text.strip!
|
|
# pretty_relation_text[0] = pretty_relation_text[0].upcase
|
|
@references[references_key] << [pretty_relation_text, relations.first]
|
|
|
|
|
|
elsif relations.count > 1
|
|
if pretty_relation_text.include? '<plural>'
|
|
pretty_relation_text.gsub!('<plural>', pluralize(relations.count, string_content_type))
|
|
else
|
|
pretty_relation_text = "#{pretty_relation_text} #{pluralize(relations.count, string_content_type)}"
|
|
end
|
|
pretty_relation_text[0] = pretty_relation_text[0].upcase
|
|
|
|
%>
|
|
<div class="col s12 m6 l4">
|
|
<%= render partial: 'content/cards/in_universe_content_list', locals: {
|
|
content_type: content_type.to_s.downcase,
|
|
content_list: relations,
|
|
card_title: pretty_relation_text
|
|
} %>
|
|
</div>
|
|
<% end %>
|