Sha256: 713852fb34a60b7b4804abc758babe2f204d0f9b03b48ed563052caabad695fc

Contents?: true

Size: 1.41 KB

Versions: 7

Compression:

Stored size: 1.41 KB

Contents

# frozen_string_literal: true

module Decidim
  # Initiative type.
  class InitiativesType < ApplicationRecord
    include Decidim::HasResourcePermission

    validates :title, :description, presence: true
    validates :online_signature_enabled, inclusion: { in: [true, false] }

    mount_uploader :banner_image, Decidim::BannerImageUploader

    belongs_to :organization,
               foreign_key: "decidim_organization_id",
               class_name: "Decidim::Organization"

    has_many :scopes,
             foreign_key: "decidim_initiatives_types_id",
             class_name: "Decidim::InitiativesTypeScope",
             dependent: :destroy,
             inverse_of: :type

    def allowed_signature_types_for_initiatives
      signature_types = []

      signature_types << "online" if Decidim::Initiatives.online_voting_allowed && online_signature_enabled
      signature_types << "offline" if Decidim::Initiatives.face_to_face_voting_allowed
      signature_types << "any" if signature_types.size == (Initiative.signature_types.size - 1)

      signature_types
    end

    def initiatives
      initiatives_ids = scopes.map { |scope| scope.initiatives.pluck(:id) }.flatten
      Initiative.where(id: initiatives_ids)
    end

    def allow_resource_permissions?
      true
    end

    def mounted_admin_engine
      "decidim_admin_initiatives"
    end

    def mounted_params
      { host: organization.host }
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
decidim-initiatives-0.19.1 app/models/decidim/initiatives_type.rb
decidim-initiatives-0.18.1 app/models/decidim/initiatives_type.rb
decidim-initiatives-0.19.0 app/models/decidim/initiatives_type.rb
decidim-initiatives-0.17.2 app/models/decidim/initiatives_type.rb
decidim-initiatives-0.18.0 app/models/decidim/initiatives_type.rb
decidim-initiatives-0.17.1 app/models/decidim/initiatives_type.rb
decidim-initiatives-0.17.0 app/models/decidim/initiatives_type.rb