Sha256: 990dc4d2ee0d4b300f428988ce8a264bd60bb5ec6e60ac0b0a2084da2b804a4b

Contents?: true

Size: 855 Bytes

Versions: 8

Compression:

Stored size: 855 Bytes

Contents

# frozen_string_literal: true

module Decidim
  module Budgets
    module Workflows
      # This Workflow allows users to vote in any budget, but only in one.
      class One < Base
        # No budget resource is highlighted for this workflow.
        def highlighted?(_resource)
          false
        end

        # Users can vote in any budget with this workflow, but only in one.
        def vote_allowed?(resource, consider_progress = true)
          return false if voted.any?

          if consider_progress
            progress?(resource) || progress.none?
          else
            true
          end
        end

        # Public: Returns a list of budgets where the user can discard their order to vote in another.
        #
        # Returns Array.
        def discardable
          progress + voted
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
decidim-budgets-0.23.6 lib/decidim/budgets/workflows/one.rb
decidim-budgets-0.23.5 lib/decidim/budgets/workflows/one.rb
decidim-budgets-0.23.4 lib/decidim/budgets/workflows/one.rb
decidim-budgets-0.23.3 lib/decidim/budgets/workflows/one.rb
decidim-budgets-0.23.2 lib/decidim/budgets/workflows/one.rb
decidim-budgets-0.23.1 lib/decidim/budgets/workflows/one.rb
decidim-budgets-0.23.1.rc1 lib/decidim/budgets/workflows/one.rb
decidim-budgets-0.23.0 lib/decidim/budgets/workflows/one.rb