diff --git a/app/controllers/wow_characters_controller.rb b/app/controllers/wow_characters_controller.rb index a0fbf15..ecc6616 100644 --- a/app/controllers/wow_characters_controller.rb +++ b/app/controllers/wow_characters_controller.rb @@ -2,10 +2,10 @@ class WowCharactersController < ProtectedController def index - @wow_characters = current_user.wow_characters.all + @wow_characters = current_user.wow_characters.includes(:wow_realm, :wow_race, :wow_class, :wow_character_medium) end def show - @wow_character = current_user.wow_characters.find(params[:id]) + @wow_character = current_user.wow_characters.includes(wow_standings: { wow_reputation: { wow_reputation_tier: :wow_reputation_tier_levels }}).find(params[:id]) end end diff --git a/app/controllers/wow_mounts_controller.rb b/app/controllers/wow_mounts_controller.rb index 457421f..d55cf64 100644 --- a/app/controllers/wow_mounts_controller.rb +++ b/app/controllers/wow_mounts_controller.rb @@ -2,7 +2,7 @@ class WowMountsController < ProtectedController def index - @pagy, @wow_mounts = pagy(WowMount.all, items: 12) + @pagy, @wow_mounts = pagy(WowMount.includes(:users), items: 12) end def show diff --git a/app/controllers/wow_pets_controller.rb b/app/controllers/wow_pets_controller.rb index 1691645..af0eb9a 100644 --- a/app/controllers/wow_pets_controller.rb +++ b/app/controllers/wow_pets_controller.rb @@ -2,7 +2,7 @@ class WowPetsController < ProtectedController def index - @pagy, @wow_pets = pagy(WowPet.all, items: 12) + @pagy, @wow_pets = pagy(WowPet.includes(:users), items: 12) end def show diff --git a/app/helpers/wow_standings_helper.rb b/app/helpers/wow_standings_helper.rb new file mode 100644 index 0000000..9d50721 --- /dev/null +++ b/app/helpers/wow_standings_helper.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +module WowStandingsHelper + def reput_pourcentage(standing, tier) + max = tier.max_value + min = tier.min_value + value = standing.value + + return 100 if max == min + return value * 100 / (max - min) if max.positive? && (min.positive? || min.zero?) + return value * -100 / (min - max) if min.negative? && (max.negative? || max.zero?) + + 0 + end +end diff --git a/app/models/wow_reputation.rb b/app/models/wow_reputation.rb index ffdb69c..16ee3d6 100644 --- a/app/models/wow_reputation.rb +++ b/app/models/wow_reputation.rb @@ -10,4 +10,6 @@ class WowReputation < ApplicationRecord validates :name, presence: true validates :reputation_id, presence: true, uniqueness: true + + scope :meta_reputations, -> { where(meta_wow_reputation: nil) } end diff --git a/app/models/wow_reputation_tier_level.rb b/app/models/wow_reputation_tier_level.rb index 8c21706..50f6435 100644 --- a/app/models/wow_reputation_tier_level.rb +++ b/app/models/wow_reputation_tier_level.rb @@ -6,4 +6,6 @@ class WowReputationTierLevel < ApplicationRecord validates :name, presence: true validates :order, presence: true, uniqueness: { scope: :wow_reputation_tier } + + default_scope { order(:order) } end diff --git a/app/views/wow_characters/_reputations.html.erb b/app/views/wow_characters/_reputations.html.erb new file mode 100644 index 0000000..ff3fdb8 --- /dev/null +++ b/app/views/wow_characters/_reputations.html.erb @@ -0,0 +1,8 @@ +