adjust reason field
This commit is contained in:
@@ -107,24 +107,33 @@ module Submitters
|
||||
reason_field_uuid = params[:with_reason]
|
||||
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
|
||||
end
|
||||
|
||||
signature_field['preferences'] ||= {}
|
||||
signature_field['preferences']['reason_field_uuid'] = reason_field_uuid
|
||||
reason_field = submitter.submission.template_fields.find do |e|
|
||||
e['uuid'] == reason_field_uuid && e['submitter_uuid'] == submitter.uuid
|
||||
end
|
||||
|
||||
reason_field = submitter.submission.template_fields.find { |e| e['uuid'] == reason_field_uuid }
|
||||
|
||||
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',
|
||||
'uuid' => reason_field_uuid,
|
||||
'name' => I18n.t(:reason),
|
||||
'readonly' => true,
|
||||
'preferences' => { 'signature_field_uuid' => signature_field['uuid'] },
|
||||
'submitter_uuid' => submitter.uuid }
|
||||
|
||||
submitter.submission.template_fields.insert(submitter.submission.template_fields.index(signature_field) + 1,
|
||||
reason_field)
|
||||
end
|
||||
|
||||
signature_field['preferences'] ||= {}
|
||||
signature_field['preferences']['reason_field_uuid'] = reason_field_uuid
|
||||
|
||||
submitter.submission.save!
|
||||
|
||||
reason_field
|
||||
|
||||
Reference in New Issue
Block a user