Sha256: 1abdfe4283b670cd5de472aab04471956179e25a405bc8410f56863b4790548c

Contents?: true

Size: 945 Bytes

Versions: 16

Compression:

Stored size: 945 Bytes

Contents

# frozen_string_literal: true

module Decidim
  module Plans
    # A form object common to accept and reject actions requesters of Plans.
    class AccessToPlanForm < Decidim::Form
      mimic :plan

      attribute :id, String
      attribute :requester_user_id, String
      attribute :state, String

      validates :id, :requester_user_id, presence: true
      validates :state, presence: true, inclusion: { in: %w(open) }

      validate :existence_of_requester_in_requesters

      def plan
        @plan ||= Decidim::Plans::Plan.find id if id
      end

      def requester_user
        @requester_user ||= Decidim::User.find_by(id: requester_user_id, organization: current_organization) if requester_user_id
      end

      private

      def existence_of_requester_in_requesters
        if plan
          errors.add(:requester_user_id, :invalid) unless plan.requesters.exists? requester_user_id
        end
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
decidim-plans-0.18.2 app/forms/decidim/plans/access_to_plan_form.rb
decidim-plans-0.18.1 app/forms/decidim/plans/access_to_plan_form.rb
decidim-plans-0.18.0 app/forms/decidim/plans/access_to_plan_form.rb
decidim-plans-0.17.0 app/forms/decidim/plans/access_to_plan_form.rb
decidim-plans-0.16.9 app/forms/decidim/plans/access_to_plan_form.rb
decidim-plans-0.16.8 app/forms/decidim/plans/access_to_plan_form.rb
decidim-plans-0.16.7 app/forms/decidim/plans/access_to_plan_form.rb
decidim-plans-0.16.6 app/forms/decidim/plans/access_to_plan_form.rb
decidim-plans-0.16.5 app/forms/decidim/plans/access_to_plan_form.rb
decidim-plans-0.16.4 app/forms/decidim/plans/access_to_plan_form.rb
decidim-plans-0.16.3 app/forms/decidim/plans/access_to_plan_form.rb
decidim-plans-0.16.2 app/forms/decidim/plans/access_to_plan_form.rb
decidim-plans-0.16.1 app/forms/decidim/plans/access_to_plan_form.rb
decidim-plans-0.16.0 app/forms/decidim/plans/access_to_plan_form.rb
decidim-plans-0.15.1 app/forms/decidim/plans/access_to_plan_form.rb
decidim-plans-0.15.0 app/forms/decidim/plans/access_to_plan_form.rb