Sha256: 866cb521784e37c0efc964bb9cc22594e149fd2d8d21bb93d5e3961610477db5

Contents?: true

Size: 1.43 KB

Versions: 4

Compression:

Stored size: 1.43 KB

Contents

# frozen_string_literal: true

module Decidim
  class BadgeCell < Decidim::ViewModel
    include Decidim::ApplicationHelper
    include Decidim::Core::Engine.routes.url_helpers
    include Decidim::IconHelper

    delegate :current_user, to: :controller

    def badge
      @options[:badge]
    end

    def user
      model
    end

    def description
      if user == current_user && status.level.zero?
        t "decidim.gamification.badges.#{badge.name}.unearned_own"
      elsif user == current_user && status.level.positive?
        t "decidim.gamification.badges.#{badge.name}.description_own", score: status.score
      elsif user != current_user && status.level.zero?
        t "decidim.gamification.badges.#{badge.name}.unearned_another"
      elsif user != current_user && status.level.positive?
        t "decidim.gamification.badges.#{badge.name}.description_another", score: status.score
      end
    end

    def tooltip
      if user == current_user
        if status.next_level_in
          t "decidim.gamification.badges.#{badge.name}.next_level_in", score: status.next_level_in
        else
          t "decidim.gamification.reached_top"
        end
      else
        t "decidim.gamification.badges.#{badge.name}.explanation"
      end
    end

    def badge_name
      t "decidim.gamification.badges.#{badge.name}.name"
    end

    private

    def status
      @status ||= Decidim::Gamification.status_for(user, badge.name)
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
decidim-core-0.14.4 app/cells/decidim/badge_cell.rb
decidim-core-0.14.3 app/cells/decidim/badge_cell.rb
decidim-core-0.14.2 app/cells/decidim/badge_cell.rb
decidim-core-0.14.1 app/cells/decidim/badge_cell.rb