diff --git a/app/assets/javascripts/protocols/import_export/import.js b/app/assets/javascripts/protocols/import_export/import.js index 6e40fcbb4..f23188830 100644 --- a/app/assets/javascripts/protocols/import_export/import.js +++ b/app/assets/javascripts/protocols/import_export/import.js @@ -641,6 +641,12 @@ function importProtocolFromFile( return json; } + function formJson(formNode) { + return { + id: formNode.attr('id') + }; + } + function stepElementJson(stepElementNode, folderIndex, stepGuid) { var json = { type: stepElementNode.attr('type') @@ -656,6 +662,9 @@ function importProtocolFromFile( case 'StepText': json.stepText = stepTextJson(stepElementNode.find('stepText'), folderIndex, stepGuid); break; + case 'FormResponse': + json.form = formJson(stepElementNode.find('form')); + break; default: // nothing to do break; diff --git a/app/utilities/protocols_exporter_v2.rb b/app/utilities/protocols_exporter_v2.rb index e7ff623fa..33f6963c9 100644 --- a/app/utilities/protocols_exporter_v2.rb +++ b/app/utilities/protocols_exporter_v2.rb @@ -72,6 +72,8 @@ module ProtocolsExporterV2 xml << table_xml(element.table) when Checklist xml << checklist_xml(element) + when FormResponse + xml << form_xml(element.form) end xml << "\n" @@ -135,4 +137,8 @@ module ProtocolsExporterV2 "\n" \ "\n" end + + def form_xml(form) + "
\n" \ + end end diff --git a/app/utilities/protocols_importer_v2.rb b/app/utilities/protocols_importer_v2.rb index 9d91f438c..eff0604c4 100644 --- a/app/utilities/protocols_importer_v2.rb +++ b/app/utilities/protocols_importer_v2.rb @@ -85,6 +85,8 @@ class ProtocolsImporterV2 create_step_table(step, element_params['elnTable']) when 'Checklist' create_checklist(step, element_params['checklist']) + when 'FormResponse' + create_form(step, element_params['form']) end end @@ -183,6 +185,15 @@ class ProtocolsImporterV2 end end + def create_form(step, params) + form = @team.forms.find_by(id: params['id']) + + if form.present? + form_response = FormResponse.create!(form: form, created_by: @user) + create_in_step!(step, form_response) + end + end + def remove_empty_inputs(obj) obj.each_key do |key| case obj[key]