prefill signature

This commit is contained in:
Pete Matsyburka
2024-06-11 18:19:21 +03:00
parent 92da790e77
commit 2389c3fc40
9 changed files with 80 additions and 17 deletions
+24 -11
View File
@@ -32,17 +32,7 @@ module Submitters
submitter.values.merge!(values)
submitter.opened_at ||= Time.current
if params[:completed] == 'true'
submitter.completed_at = Time.current
submitter.ip = request.remote_ip
submitter.ua = request.user_agent
submitter.values = merge_default_values(submitter)
submitter.values = merge_formula_values(submitter)
submitter.values = maybe_remove_condition_values(submitter)
submitter.values = submitter.values.transform_values do |v|
v == '{{date}}' ? Time.current.in_time_zone(submitter.account.timezone).to_date.to_s : v
end
end
assign_completed_attributes(submitter, request) if params[:completed] == 'true'
ApplicationRecord.transaction do
validate_values!(values, submitter, params, request)
@@ -55,6 +45,29 @@ module Submitters
submitter
end
def assign_completed_attributes(submitter, request)
submitter.completed_at = Time.current
submitter.ip = request.remote_ip
submitter.ua = request.user_agent
submitter.values = merge_default_values(submitter)
submitter.values = merge_formula_values(submitter)
submitter.values = maybe_remove_condition_values(submitter)
submitter.values = submitter.values.transform_values do |v|
v == '{{date}}' ? Time.current.in_time_zone(submitter.account.timezone).to_date.to_s : v
end
signature_attachment =
submitter.submission.template_fields.reduce(nil) do |_, field|
next nil if field['submitter_uuid'] != submitter.uuid || field['type'] != 'signature'
break submitter.attachments_attachments.find_by(uuid: submitter.values[field['uuid']])
end
submitter.build_signature_attachment(blob_id: signature_attachment.blob_id) if signature_attachment
submitter
end
def normalized_values(params)
params.fetch(:values, {}).to_unsafe_h.transform_values do |v|
if params[:cast_boolean] == 'true'