diff --git a/app/controllers/madmp_fragments_controller.rb b/app/controllers/madmp_fragments_controller.rb index 6740ecf..eb92935 100644 --- a/app/controllers/madmp_fragments_controller.rb +++ b/app/controllers/madmp_fragments_controller.rb @@ -9,7 +9,7 @@ p_params = permitted_params() schema = MadmpSchema.find(p_params[:schema_id]) classname = schema.classname - data = data_reformater(schema.schema, schema_params(schema)) + data = data_reformater(schema.schema, schema_params(schema), schema.classname) @fragment = nil if params[:id].present? diff --git a/app/helpers/dynamic_form_helper.rb b/app/helpers/dynamic_form_helper.rb index 14bfba8..89dbd0e 100644 --- a/app/helpers/dynamic_form_helper.rb +++ b/app/helpers/dynamic_form_helper.rb @@ -134,7 +134,7 @@ # Formats the data extract from the structured answer form to valid JSON data # This is useful because Rails converts all form data to strings and JSON needs the actual types - def data_reformater(schema, data) + def data_reformater(schema, data, classname) schema["properties"].each do |key, prop| if data[key] == "" data.delete(key) @@ -147,9 +147,9 @@ when "array" data[key] = data[key].kind_of?(Array) ? data[key] : [data[key]] when "object" - if prop['schema_id'].present? + if prop['schema_id'].present? && classname != "research_output" sub_schema = MadmpSchema.find(prop['schema_id']) - data[key] = data_reformater(sub_schema.schema, data[key]) + data[key] = data_reformater(sub_schema.schema, data[key], sub_schema.classname) end # if value["dictionnary"] # data[key] = JSON.parse(DictionnaryValue.where(id: data[key]).select(:id, :uri, :label).take.to_json)