Sha256: ec45426a43e79ba167fabf5c2cde12e82b660544dce3aa4cea1a2f712be5c9e6

Contents?: true

Size: 896 Bytes

Versions: 17

Compression:

Stored size: 896 Bytes

Contents

# frozen_string_literal: true

module Decidim
  # This concern contains the logic related with resources that can be endorsed.
  # Thus, it is expected to be included into a resource that is wanted to be endorsable.
  # This resource will have many `Decidim::Endorsement`s.
  module Endorsable
    extend ActiveSupport::Concern

    included do
      has_many :endorsements,
               as: :resource,
               dependent: :destroy,
               counter_cache: "endorsements_count"

      # Public: Check if the user has endorsed the resource.
      # - user_group: may be nil if user is not representing any user_group.
      #
      # Returns Boolean.
      def endorsed_by?(user, user_group = nil)
        if user_group
          endorsements.where(user_group:).any?
        else
          endorsements.where(author: user, user_group: 0).any?
        end
      end
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
decidim-core-0.30.0.rc2 lib/decidim/endorsable.rb
decidim-core-0.30.0.rc1 lib/decidim/endorsable.rb
decidim-core-0.29.2 lib/decidim/endorsable.rb
decidim-core-0.28.5 lib/decidim/endorsable.rb
decidim-core-0.29.1 lib/decidim/endorsable.rb
decidim-core-0.28.4 lib/decidim/endorsable.rb
decidim-core-0.29.0 lib/decidim/endorsable.rb
decidim-core-0.28.3 lib/decidim/endorsable.rb
decidim-core-0.29.0.rc4 lib/decidim/endorsable.rb
decidim-core-0.29.0.rc3 lib/decidim/endorsable.rb
decidim-core-0.29.0.rc2 lib/decidim/endorsable.rb
decidim-core-0.29.0.rc1 lib/decidim/endorsable.rb
decidim-core-0.28.2 lib/decidim/endorsable.rb
decidim-core-0.28.1 lib/decidim/endorsable.rb
decidim-core-0.28.0 lib/decidim/endorsable.rb
decidim-core-0.28.0.rc5 lib/decidim/endorsable.rb
decidim-core-0.28.0.rc4 lib/decidim/endorsable.rb