fix condition on complete

pull/698/merge
Pete Matsyburka 3 weeks ago
parent 77a925f33b
commit 9cbfa3a0ba

@ -286,7 +286,10 @@ module Submitters
attachments_index = attachments_index =
if has_document_conditions if has_document_conditions
Submissions.filtered_conditions_schema(submission).index_by { |i| i['attachment_uuid'] } submitters_values = merge_submitters_values(submitter)
Submissions.filtered_conditions_schema(submission, values: submitters_values)
.index_by { |i| i['attachment_uuid'] }
end end
submission.template_fields.each do |field| submission.template_fields.each do |field|
@ -295,8 +298,7 @@ module Submitters
required_field_uuids_acc.add(field['uuid']) if required_field_uuids_acc && required_editable_field?(field) required_field_uuids_acc.add(field['uuid']) if required_field_uuids_acc && required_editable_field?(field)
if has_document_conditions && !check_field_areas_attachments(field, attachments_index) if has_document_conditions && !check_field_areas_attachments(field, attachments_index)
submitter.values.delete(field['uuid']) delete_field_value!(field, submitter, submitters_values, required_field_uuids_acc)
required_field_uuids_acc&.delete(field['uuid'])
end end
if has_other_submitters && !submitters_values && if has_other_submitters && !submitters_values &&
@ -305,14 +307,19 @@ module Submitters
end end
unless check_field_conditions(submitters_values || submitter.values, field, submission.fields_uuid_index) unless check_field_conditions(submitters_values || submitter.values, field, submission.fields_uuid_index)
submitter.values.delete(field['uuid']) delete_field_value!(field, submitter, submitters_values, required_field_uuids_acc)
required_field_uuids_acc&.delete(field['uuid'])
end end
end end
submitter.values submitter.values
end end
def delete_field_value!(field, submitter, submitters_values = nil, required_field_uuids_acc = nil)
submitter.values.delete(field['uuid'])
submitters_values&.delete(field['uuid'])
required_field_uuids_acc&.delete(field['uuid'])
end
def submission_has_document_conditions?(submission) def submission_has_document_conditions?(submission)
(submission.template_schema || submission.template.schema).any? { |e| e['conditions'].present? } (submission.template_schema || submission.template.schema).any? { |e| e['conditions'].present? }
end end
@ -331,6 +338,7 @@ module Submitters
def merge_submitters_values(submitter) def merge_submitters_values(submitter)
submitter.submission.submitters submitter.submission.submitters
.reject { |sub| sub.uuid == submitter.uuid }
.reduce({}) { |acc, sub| acc.merge(sub.values) } .reduce({}) { |acc, sub| acc.merge(sub.values) }
.merge(submitter.values) .merge(submitter.values)
end end

Loading…
Cancel
Save