Sha256: de197d450345f139239d6f322a6f829759607e7301de48998061655c35e82ac5
Contents?: true
Size: 1.76 KB
Versions: 1
Compression:
Stored size: 1.76 KB
Contents
# frozen_string_literal: true module Decidim module Lausanne module Budgets module Admin # A form object to be used when admin users want to import a collection of proposals # from another component into projects component. class ProjectImportProposalsForm < Decidim::Form mimic :proposals_import attribute :origin_component_id, Integer attribute :scope_id, Integer attribute :default_budget, Integer attribute :import_all_accepted_proposals, Boolean validates :origin_component_id, :origin_component, :current_component, presence: true validates :import_all_accepted_proposals, allow_nil: false, acceptance: true validates :default_budget, presence: true, numericality: { greater_than: 0 } validates :scope, presence: true, if: ->(form) { form.scope_id.present? } validates :scope_id, scope_belongs_to_component: true, if: ->(form) { form.scope_id.present? } def origin_component @origin_component ||= origin_components.find_by(id: origin_component_id) end def origin_components @origin_components ||= current_participatory_space.components.where(manifest_name: :proposals) end def origin_components_collection origin_components.map do |component| [component.name[I18n.locale.to_s], component.id] end end def scope @scope ||= @scope_id ? current_component.scopes.find_by(id: @scope_id) : current_component.scope end def scope_id @scope_id || scope&.id end def budget @budget ||= context[:budget] end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
decidim-lausanne-budgets-0.1.0 | app/forms/decidim/lausanne/budgets/admin/project_import_proposals_form.rb |