improve achievement management and and views

This commit is contained in:
2021-08-24 20:53:32 +02:00
parent 39ebeea387
commit 2be44a89b8
18 changed files with 197 additions and 8 deletions

View File

@@ -0,0 +1,76 @@
<div class="row">
<div class="col-3">
<div class="row">
<div class="col-12">
<% if wow_achievement_category %><h3> Achievement category: <%= wow_achievement_category.name %></h3><% end %>
<div class="d-grid gap-2">
<% wow_achievement_categories.each do |category| %>
<%= link_to category.name, "/#{locale}/achievements/#{category.id}", class: "btn btn-outline-dark" %>
<% end %>
</div>
</div>
</div>
<br />
<div class="row">
<div class="col-12">
<% if wow_achievement_category&.parent_category %>
<%= link_to "Back", "/#{locale}/achievements/#{wow_achievement_category.parent_category.id}", class: "btn btn-outline-dark" %>
<% elsif wow_achievement_category %>
<%= link_to "Back", "/#{locale}/achievements", class: "btn btn-outline-dark" %>
<% end %>
</div>
</div>
</div>
<% if wow_achievements %>
<div class="col-6">
<h3> Achievement:</h3>
<div class="d-grid gap-2">
<% wow_achievements.each do |achievement| %>
<div class="card">
<div class="card-header <% if achievement_completed(achievement.id, current_user) %>bg-success text-white<% else %>bg-secondary text-white<% end %>">
<%= achievement.name %><% if Rails.env.development? %> - ID: <%= achievement.achievement_id %><% end %>
</div>
<div class="card-body">
<p class="card-text">Description: <%= achievement.description %></p>
<p class="card-text">Criterium: <%= achievement&.wow_achievement_criterium&.description %></p>
<div class="row">
<% achievement&.wow_achievement_criterium&.child_criteria&.each do |criterium| %>
<div class="col-3">
<p class="card-text"><%= criterium&.description %></p>
</div>
<% end %>
</div>
</div>
</div>
<% end %>
</div>
</div>
<% elsif wow_last_completed_achievements %>
<div class="col-6">
<h3> Last achievement:</h3>
<div class="d-grid gap-2">
<% wow_last_completed_achievements.each do |achievement| %>
<div class="card">
<div class="card-header">
<%= achievement.wow_achievement.name %> - ID: <%= achievement.wow_achievement.achievement_id %>
</div>
<div class="card-body">
<p class="card-text">Description: <%= achievement.wow_achievement.description %></p>
<p class="card-text">Criterium: <%= achievement&.wow_achievement.wow_achievement_criterium&.description %></p>
<% if achievement&.wow_achievement.wow_achievement_criterium.child_criteria %>
<div class="row">
<% achievement&.wow_achievement.wow_achievement_criterium.child_criteria.each do |criterium| %>
<div class="col-3">
<p class="card-text"><%= criterium&.description %></p>
</div>
<% end %>
</div>
<% end %>
<p class="card-text">Completed by: <%= link_to achievement.wow_character.name, achievement.wow_character, data: { turbo: false } %></p>
</div>
</div>
<% end %>
</div>
</div>
<% end %>
</div>

View File

@@ -0,0 +1,5 @@
<h2>Achievement list</h2>
<%= turbo_frame_tag 'achievements' do %>
<%= render partial: 'achievements/achievements', locals: { wow_achievement_category: @wow_achievement_category, wow_achievement_categories: @wow_achievement_categories, wow_achievements: @wow_achievements, wow_last_completed_achievements: @wow_last_completed_achievements } %>
<% end %>

View File

@@ -0,0 +1,5 @@
<h2>Achievement list</h2>
<%= turbo_frame_tag 'achievements' do %>
<%= render partial: 'achievements/achievements', locals: { wow_achievement_category: @wow_achievement_category, wow_achievement_categories: @wow_achievement_categories, wow_achievements: @wow_achievements, wow_last_completed_achievements: nil } %>
<% end %>

View File

@@ -19,6 +19,9 @@
<li class="nav-item">
<a class="nav-link <%= 'active' if current_page?(rp_worlds_path) %>" aria-current="page" href="<%= rp_worlds_path %>"><%= t('layouts.navbar.worlds') %></a>
</li>
<li class="nav-item">
<a class="nav-link <%= 'active' if current_page?(achievements_path) %>" aria-current="page" href="<%= achievements_path %>"><%= t('layouts.navbar.achievements') %></a>
</li>
</ul>
<ul class="navbar-nav ms-auto mb-2 mb-lg-0">
<%= render 'layouts/locales' %>

View File

@@ -18,7 +18,7 @@
<div class="col-7">
<div class="row">
<div class="col-6">
<%= render partial: 'wow_characters/reputations', locals: { standings: @wow_character.wow_standings.group_by { |standing| standing.wow_reputation.meta_wow_reputation_id }, meta_wow_reputations: @meta_wow_reputations } %>
<%= render partial: 'wow_characters/reputations', locals: { standings: @wow_character.wow_standings.group_by { |standing| standing.wow_reputation.meta_wow_reputation_id}, meta_wow_reputations: @meta_wow_reputations } %>
</div>
</div>
</div>