Sha256: aec6a2cc1ebbb1bba372610f8b1455333a563a364a058a4f7603cef5c37ec5e8

Contents?: true

Size: 1004 Bytes

Versions: 7

Compression:

Stored size: 1004 Bytes

Contents

# coding: utf-8
class Formily::Submit < ActiveRecord::Base

  self.table_name = 'formily_submits'

  has_paper_trail

  after_destroy :delete_data

  belongs_to :form
  has_many :input_values, foreign_key: :submit_id, class_name: 'Formily::InputValue', dependent: :destroy

  validates :form_id, presence: true
  validates :resource_id, presence: true
  validates :resource_type, presence: true

  STATES = {
    0 => 'Not Started',
    1 => 'In Progress',
    2 => 'Complete'
  }

  def is_complete?
    self.state == 2
  end

  def data
    ids = self.form.inputs.map do |i|
      if i.try(:inputs)
        i.inputs.map(&:id)
      else
        i.id
      end
    end

    values = self.input_values.to_a

    ids.map do |i|

      if i.is_a?(Array)
        values.select{|x| i.include?(x.input_id)}.map(&:get_value).join(', ')
      else
        values.select{|x| x.input_id == i}.first.get_value rescue ''
      end

    end
  end

  private

  def delete_data
    input_values.destroy_all
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
formily-0.0.5.6.5 app/models/formily/submit.rb
formily-0.0.5.6.4 app/models/formily/submit.rb
formily-0.0.5.6.3 app/models/formily/submit.rb
formily-0.0.5.6.2 app/models/formily/submit.rb
formily-0.0.5.6.1 app/models/formily/submit.rb
formily-0.0.5.6.0 app/models/formily/submit.rb
formily-0.0.5.5.9 app/models/formily/submit.rb