Merge pull request #8131 from andrej-scinote/aj_SCI_11411

Add import/export logic for eln file [SCI-11411]
This commit is contained in:
andrej-scinote 2025-01-13 10:23:48 +01:00 committed by GitHub
commit b648f99215
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 26 additions and 0 deletions

View file

@ -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;

View file

@ -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 << "</stepElement>\n"
@ -135,4 +137,8 @@ module ProtocolsExporterV2
"<fileMetadata><!--[CDATA[ #{asset.file.metadata.except('version', 'restored_from_version').to_json} ]]--></fileMetadata>\n" \
"</asset>\n"
end
def form_xml(form)
"<form id=\"#{form.id}\" guid=\"#{get_guid(form.id)}\"> </form>\n" \
end
end

View file

@ -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]