tinyforms/app/models/submission.rb
Michael Bumann 409038ecba Add experimental support for dynamic values
This allows a submission to get a dynamic value like for example the current time
2020-04-06 00:26:59 +02:00

27 lines
619 B
Ruby

class Submission < ApplicationRecord
belongs_to :form
after_create :append_to_spreadsheet
validates_presence_of :data
def data=(value)
sanitized_data = {}
value.each do |key, value|
sanitized_data[key] = submission_value(value)
end
write_attribute(:data, sanitized_data)
end
def submission_value(value)
if value.to_s.downcase == 'tinyforms_now'
Time.now.utc.to_formatted_s(:rfc822)
else
value.to_s
end
end
def append_to_spreadsheet
result = form.append(data)
update_column(:appended_at, Time.current) if result.updates.updated_rows > 0
end
end