working on fixes for OrgUnit field in submission

This commit is contained in:
lotte
2020-04-07 18:17:37 +02:00
parent 1fd7989a41
commit 74db9030b0
58 changed files with 459 additions and 70 deletions

View File

@@ -16,6 +16,10 @@ import { FormFieldMetadataValueObject } from '../../shared/form/builder/models/f
import { SubmissionObject } from './models/submission-object.model';
import { WorkflowItem } from './models/workflowitem.model';
import { WorkspaceItem } from './models/workspaceitem.model';
import { SubmissionDefinitionsModel } from '../config/models/config-submission-definitions.model';
import { SubmissionSectionModel } from '../config/models/config-submission-section.model';
import { SectionsType } from '../../submission/sections/sections-type';
import { SectionDataModel } from '../../submission/sections/models/section.model';
/**
* Export a function to check if object has same properties of FormFieldMetadataValueObject
@@ -136,24 +140,29 @@ export class SubmissionResponseParsingService extends BaseResponseParsingService
processedList.forEach((item) => {
item = Object.assign({}, item);
// In case data is an Instance of WorkspaceItem normalize field value of all the section of type form
if (item instanceof WorkspaceItem
|| item instanceof WorkflowItem) {
if (item.sections) {
const sectionConfigs = (item.submissionDefinition as SubmissionDefinitionsModel).sections.page;
const precessedSection = Object.create({});
// Iterate over all workspaceitem's sections
Object.keys(item.sections)
.forEach((sectionId) => {
if (typeof item.sections[sectionId] === 'object' && (isNotEmpty(item.sections[sectionId]) &&
const sectionConfig: SubmissionSectionModel = sectionConfigs.find((config) => config.id === sectionId);
let sectionData = item.sections[sectionId];
if (sectionConfig && sectionConfig.sectionType === SectionsType.SubmissionForm) {
sectionData = item.item.metadata;
}
if (typeof sectionData === 'object' && (isNotEmpty(sectionData) &&
// When Upload section is disabled, add to submission only if there are files
(!item.sections[sectionId].hasOwnProperty('files') || isNotEmpty((item.sections[sectionId] as any).files)))) {
(!sectionData.hasOwnProperty('files') || isNotEmpty((sectionData as any).files)))) {
const sectiondata = Object.create({});
// Iterate over all sections property
Object.keys(item.sections[sectionId])
Object.keys(sectionData)
.forEach((metdadataId) => {
const entry = item.sections[sectionId][metdadataId];
const entry = sectionData[metdadataId];
// If entry is not an array, for sure is not a section of type form
if (Array.isArray(entry)) {
sectiondata[metdadataId] = [];