Add experimental support for dynamic values

This allows a submission to get a dynamic value like for example the current time
This commit is contained in:
bumi 2020-04-06 00:26:59 +02:00
parent 92236aba2f
commit 409038ecba

View File

@ -6,11 +6,19 @@ class Submission < ApplicationRecord
def data=(value) def data=(value)
sanitized_data = {} sanitized_data = {}
value.each do |key, value| value.each do |key, value|
sanitized_data[key] = value.to_s sanitized_data[key] = submission_value(value)
end end
write_attribute(:data, sanitized_data) write_attribute(:data, sanitized_data)
end 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 def append_to_spreadsheet
result = form.append(data) result = form.append(data)
update_column(:appended_at, Time.current) if result.updates.updated_rows > 0 update_column(:appended_at, Time.current) if result.updates.updated_rows > 0