diff --git a/app/views/content/contexts/_character.html.erb b/app/views/content/contexts/_character.html.erb index fbe45fe3..f482ecf4 100644 --- a/app/views/content/contexts/_character.html.erb +++ b/app/views/content/contexts/_character.html.erb @@ -1,6 +1,8 @@ -<%= +<%# # TODO: Reflect on content_type to pull `relates` relations instead of hard-coding each here. +%> +<%= render partial: 'content/contexts/relation', locals: { content_type: Location, content: content, diff --git a/app/views/content/contexts/_item.html.erb b/app/views/content/contexts/_item.html.erb index 37345982..70ac52d3 100644 --- a/app/views/content/contexts/_item.html.erb +++ b/app/views/content/contexts/_item.html.erb @@ -1,35 +1,32 @@ -<% religions = Artifactship.where(artifact_id: content.id).map(&:religion).select { |content| content.readable_by?(current_user || User.new) } %> -<% if religions.any? %> -
- <%= render partial: 'content/cards/in_universe_content_list', locals: { - content_type: :religion, - content_list: religions, - card_title: "Artifact of #{pluralize(religions.count, 'religion')}" - } %> -
-<% end %> +<%= + render partial: 'content/contexts/relation', locals: { + content_type: Religion, + content: content, + relation_class: Artifactship, + relation_class_id: :artifact_id, + relation_text: :artifact_of + } +%> -<% groups = GroupEquipmentship.where(equipment_id: content.id).map(&:group).select { |content| content.readable_by?(current_user || User.new) } %> -<% if groups.any? %> -
- <%= render partial: 'content/cards/in_universe_content_list', locals: { - content_type: :group, - content_list: groups, - card_title: "Equipment for #{pluralize(groups.count, 'group')}" - } %> -
-<% end %> +<%= + render partial: 'content/contexts/relation', locals: { + content_type: Group, + content: content, + relation_class: GroupEquipmentship, + relation_class_id: :equipment_id, + relation_text: :equipment_for + } +%> -<% groups = KeyItemship.where(key_item_id: content.id).map(&:group).select { |content| content.readable_by?(current_user || User.new) } %> -<% if groups.any? %> -
- <%= render partial: 'content/cards/in_universe_content_list', locals: { - content_type: :group, - content_list: groups, - card_title: "Key item for #{pluralize(groups.count, 'group')}" - } %> -
-<% end %> +<%= + render partial: 'content/contexts/relation', locals: { + content_type: Group, + content: content, + relation_class: KeyItemship, + relation_class_id: :key_item_id, + relation_text: :key_item_for + } +%> <% scenes = SceneItemship.where(scene_item_id: content.id).map(&:scene).select { |content| content.readable_by?(current_user || User.new) } %> <% if scenes.any? %> @@ -40,4 +37,18 @@ card_title: "Appears in #{pluralize(scenes.count, 'scene')}" } %> +<% end %> + +<% @references.each do |content_type, relations| %> + <% next unless relations.any? %> +
+ <%= render partial: 'content/cards/content_relation_list', locals: { + content_type: content_type, + relations: relations, + card_title: [ + 'Related to ', + pluralize(relations.count, "other #{content_type.to_s.singularize}") + ].join + } %> +
<% end %> \ No newline at end of file