Sha256: d077be5171abce99e26fbfb3c30e54c9f268a8abe161073b3f102bc54b18e07a

Contents?: true

Size: 1.37 KB

Versions: 1

Compression:

Stored size: 1.37 KB

Contents

# frozen_string_literal: true

module Decidim
  module Lausanne
    module Budgets
      # This cell renders the vote count.
      # Two possible layouts: One or two lines
      class ProjectVotesCountCell < Decidim::ViewModel
        include Decidim::IconHelper
        delegate :show_votes_count?, to: :controller

        def show
          return unless show_votes_count?

          content_tag :span, content, class: css_class
        end

        private

          def content
            if options[:layout] == :one_line
              safe_join([model.confirmed_orders_count, " ", label: t("decidim.lausanne_budgets.projects.project.votes",
                                                                    count: model.confirmed_orders_count)])
            else
              safe_join([number, label: t("decidim.lausanne_budgets.projects.project.votes",
                                         count: model.confirmed_orders_count)])
            end
          end

          def number
            content_tag :div, model.confirmed_orders_count, class: "text-large"
          end

          def label(i18n_string)
            content_tag :span, i18n_string, class: "text-uppercase text-small"
          end

          def css_class
            css = ["project-votes"]
            css << options[:class] if options[:class]
            css.join(" ")
          end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
decidim-lausanne-budgets-0.1.0 app/cells/decidim/lausanne/budgets/project_votes_count_cell.rb