Sha256: f12fea355f6388fb2472051efda6f6a1c25bfac634de4e435f696552d3abc744
Contents?: true
Size: 1.77 KB
Versions: 4
Compression:
Stored size: 1.77 KB
Contents
# frozen_string_literal: true module Decidim module Initiatives module Admin # A form object used to show the initiative data in the administration # panel. class InitiativeForm < Form include TranslatableAttributes mimic :initiative translatable_attribute :title, String translatable_attribute :description, String attribute :type_id, Integer attribute :decidim_scope_id, Integer attribute :signature_type, String attribute :signature_start_date, Date attribute :signature_end_date, Date attribute :hashtag, String attribute :offline_votes, Integer translatable_attribute :answer, String attribute :answer_url, String validates :title, :description, presence: true validates :signature_type, presence: true validates :signature_start_date, presence: true, if: ->(form) { form.context.initiative.published? } validates :signature_end_date, presence: true, if: ->(form) { form.context.initiative.published? } validates :signature_end_date, date: { after: :signature_start_date }, if: lambda { |form| form.signature_start_date.present? && form.signature_end_date.present? } validates :answer, translatable_presence: true, if: ->(form) { form.context.initiative.accepted? } validates :answer_url, presence: true, if: ->(form) { form.context.initiative.accepted? } validates :offline_votes, numericality: { only_integer: true, greater_than: 0 }, allow_blank: true def map_model(model) self.type_id = model.type.id self.decidim_scope_id = model.scope.id end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems