Sha256: 2eccf493cd4c4ecfea44046eda17510cdd4aa7a3366c299d6b7114130bf9d37f

Contents?: true

Size: 1.04 KB

Versions: 7

Compression:

Stored size: 1.04 KB

Contents

# frozen_string_literal: true

module Decidim
  module Templates
    module Admin
      class ProposalAnswerTemplateForm < TemplateForm
        attribute :proposal_state_id, Integer
        attribute :component_constraint, Integer
        attribute :select_component, Boolean, default: false

        validate :component_has_been_selected
        validate :proposal_state_id_is_valid

        def map_model(model)
          self.proposal_state_id = model.field_values["proposal_state_id"]&.to_i
          self.component_constraint = model.templatable&.id
        end

        def skip_name_validation
          select_component
        end

        def proposal_state_id_is_valid
          if Decidim::Proposals::ProposalState.where(decidim_component_id: component_constraint).find_by(id: proposal_state_id).blank?
            errors.add(:proposal_state_id,
                       :blank)
          end
        end

        def component_has_been_selected
          errors.add(:select_component, :blank) if select_component
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
decidim-templates-0.29.2 app/forms/decidim/templates/admin/proposal_answer_template_form.rb
decidim-templates-0.29.1 app/forms/decidim/templates/admin/proposal_answer_template_form.rb
decidim-templates-0.29.0 app/forms/decidim/templates/admin/proposal_answer_template_form.rb
decidim-templates-0.29.0.rc4 app/forms/decidim/templates/admin/proposal_answer_template_form.rb
decidim-templates-0.29.0.rc3 app/forms/decidim/templates/admin/proposal_answer_template_form.rb
decidim-templates-0.29.0.rc2 app/forms/decidim/templates/admin/proposal_answer_template_form.rb
decidim-templates-0.29.0.rc1 app/forms/decidim/templates/admin/proposal_answer_template_form.rb