Sha256: f6e875077854e72a3354cd22d93a21726bd5c1c365177d6a9a2ae51d70c770cc

Contents?: true

Size: 1.24 KB

Versions: 36

Compression:

Stored size: 1.24 KB

Contents

# frozen_string_literal: true

module Decidim
  module Budgets
    # This cell renders information when current user can't create more budgets orders.
    class LimitAnnouncementCell < BaseCell
      alias budget model
      delegate :voted?, :vote_allowed?, :discardable, :limit_reached?, to: :current_workflow
      delegate :voting_open?, to: :controller

      def show
        cell("decidim/announcement", announcement_message, callout_class: "warning") if announce?
      end

      private

      def announce?
        return unless voting_open?
        return unless current_user
        return if vote_allowed?(budget)
        return if voted?(budget)

        discardable.any? || !vote_allowed?(budget, consider_progress: false)
      end

      def announcement_message
        if discardable.any?
          t(:limit_reached, scope: i18n_scope,
                            links: budgets_link_list(discardable),
                            landing_path: budgets_path)
        else
          t(:cant_vote, scope: i18n_scope, landing_path: budgets_path)
        end
      end

      def should_discard_to_vote?
        limit_reached? && discardable.any?
      end

      def i18n_scope
        "decidim.budgets.limit_announcement"
      end
    end
  end
end

Version data entries

36 entries across 36 versions & 1 rubygems

Version Path
decidim-budgets-0.27.9 app/cells/decidim/budgets/limit_announcement_cell.rb
decidim-budgets-0.27.8 app/cells/decidim/budgets/limit_announcement_cell.rb
decidim-budgets-0.27.7 app/cells/decidim/budgets/limit_announcement_cell.rb
decidim-budgets-0.27.6 app/cells/decidim/budgets/limit_announcement_cell.rb
decidim-budgets-0.26.10 app/cells/decidim/budgets/limit_announcement_cell.rb
decidim-budgets-0.26.9 app/cells/decidim/budgets/limit_announcement_cell.rb
decidim-budgets-0.27.5 app/cells/decidim/budgets/limit_announcement_cell.rb
decidim-budgets-0.26.8 app/cells/decidim/budgets/limit_announcement_cell.rb
decidim-budgets-0.27.4 app/cells/decidim/budgets/limit_announcement_cell.rb
decidim-budgets-0.27.3 app/cells/decidim/budgets/limit_announcement_cell.rb
decidim-budgets-0.26.7 app/cells/decidim/budgets/limit_announcement_cell.rb
decidim-budgets-0.26.5 app/cells/decidim/budgets/limit_announcement_cell.rb
decidim-budgets-0.27.2 app/cells/decidim/budgets/limit_announcement_cell.rb
decidim-budgets-0.27.1 app/cells/decidim/budgets/limit_announcement_cell.rb
decidim-budgets-0.26.4 app/cells/decidim/budgets/limit_announcement_cell.rb
decidim-budgets-0.27.0 app/cells/decidim/budgets/limit_announcement_cell.rb
decidim-budgets-0.26.3 app/cells/decidim/budgets/limit_announcement_cell.rb
decidim-budgets-0.27.0.rc2 app/cells/decidim/budgets/limit_announcement_cell.rb
decidim-budgets-0.27.0.rc1 app/cells/decidim/budgets/limit_announcement_cell.rb
decidim-budgets-0.26.2 app/cells/decidim/budgets/limit_announcement_cell.rb