adjust reason field

pull/636/head
Pete Matsyburka 3 weeks ago
parent 1355d350c5
commit 3c3b61fb47

@ -107,24 +107,33 @@ module Submitters
reason_field_uuid = params[:with_reason] reason_field_uuid = params[:with_reason]
signature_field_uuid = values.except(reason_field_uuid).keys.first signature_field_uuid = values.except(reason_field_uuid).keys.first
signature_field = submitter.submission.template_fields.find { |e| e['uuid'] == signature_field_uuid } signature_field = submitter.submission.template_fields.find do |e|
e['uuid'] == signature_field_uuid && e['submitter_uuid'] == submitter.uuid
signature_field['preferences'] ||= {} end
signature_field['preferences']['reason_field_uuid'] = reason_field_uuid
reason_field = submitter.submission.template_fields.find { |e| e['uuid'] == reason_field_uuid } reason_field = submitter.submission.template_fields.find do |e|
e['uuid'] == reason_field_uuid && e['submitter_uuid'] == submitter.uuid
end
unless reason_field if reason_field
if reason_field.dig('preferences', 'signature_field_uuid') != signature_field['uuid']
raise ValidationError, 'Invalid field'
end
else
reason_field = { 'type' => 'text', reason_field = { 'type' => 'text',
'uuid' => reason_field_uuid, 'uuid' => reason_field_uuid,
'name' => I18n.t(:reason), 'name' => I18n.t(:reason),
'readonly' => true, 'readonly' => true,
'preferences' => { 'signature_field_uuid' => signature_field['uuid'] },
'submitter_uuid' => submitter.uuid } 'submitter_uuid' => submitter.uuid }
submitter.submission.template_fields.insert(submitter.submission.template_fields.index(signature_field) + 1, submitter.submission.template_fields.insert(submitter.submission.template_fields.index(signature_field) + 1,
reason_field) reason_field)
end end
signature_field['preferences'] ||= {}
signature_field['preferences']['reason_field_uuid'] = reason_field_uuid
submitter.submission.save! submitter.submission.save!
reason_field reason_field

Loading…
Cancel
Save