Sha256: e7c0c4fe671844b14221af9890e5f1b1fe2dea4abe7adea50336c2088d9b5e7f

Contents?: true

Size: 1.84 KB

Versions: 2

Compression:

Stored size: 1.84 KB

Contents

# frozen_string_literal: true
module Decidim
  module Proposals
    # Simple helpers to handle markup variations for proposal votes partials
    module ProposalVotesHelper
      # Returns the css classes used for proposal votes count in both proposals list and show pages
      #
      # from_proposals_list - A boolean to indicate if the template is rendered from the proposals list page
      #
      # Returns a hash with the css classes for the count number and label
      def votes_count_classes(from_proposals_list)
        return { number: "card__support__number", label: "" } if from_proposals_list
        { number: "extra__suport-number", label: "extra__suport-text" }
      end

      # Returns the css classes used for proposal vote button in both proposals list and show pages
      #
      # from_proposals_list - A boolean to indicate if the template is rendered from the proposals list page
      #
      # Returns a string with the value of the css classes.
      def vote_button_classes(from_proposals_list)
        return "small" if from_proposals_list
        "expanded button--sc"
      end

      # Check if the vote limit is enabled for the current feature
      #
      # Returns true if the vote limit is enabled
      def vote_limit_enabled?
        current_user && feature_settings.vote_limit.present? && feature_settings.vote_limit.positive?
      end

      # Return the remaining votes for a user if the current feature has a vote limit
      #
      # user - A User object
      #
      # Returns a number with the remaining votes for that user
      def remaining_votes_count_for(user)
        return 0 unless vote_limit_enabled?
        proposals = Proposal.where(feature: current_feature)
        votes_count = ProposalVote.where(author: user, proposal: proposals).size
        feature_settings.vote_limit - votes_count
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 2 rubygems

Version Path
decidim-proposals-0.0.3 app/helpers/decidim/proposals/proposal_votes_helper.rb
decidim-0.0.3 decidim-proposals/app/helpers/decidim/proposals/proposal_votes_helper.rb