diff --git a/plasmid/source/core-plugins/eln-lims/1/dss/reporting-plugins/newbrowserapi/script.py b/plasmid/source/core-plugins/eln-lims/1/dss/reporting-plugins/newbrowserapi/script.py index b4001db5bfd2eb3d5d30fa534841d1021ffc90ce..847a7985473c6638112032ff134002b53ed6c16a 100644 --- a/plasmid/source/core-plugins/eln-lims/1/dss/reporting-plugins/newbrowserapi/script.py +++ b/plasmid/source/core-plugins/eln-lims/1/dss/reporting-plugins/newbrowserapi/script.py @@ -395,9 +395,11 @@ def insertUpdateSample(tr, parameters, tableBuilder): sample.setParentSampleIdentifiers(sampleParents); #Create new sample children + sampleChildrenNewIdentifiers = []; if sampleChildrenNew != None: for newSampleChild in sampleChildrenNew: child = tr.createNewSample(newSampleChild["identifier"], newSampleChild["sampleTypeCode"]); #Create Sample given his id + sampleChildrenNewIdentifiers.append(newSampleChild["identifier"]); child.setParentSampleIdentifiers([sampleIdentifier]); for key in newSampleChild["properties"].keySet(): propertyValue = unicode(newSampleChild["properties"][key]); @@ -406,11 +408,11 @@ def insertUpdateSample(tr, parameters, tableBuilder): child.setPropertyValue(key,propertyValue); - #Add sample children + #Add sample children that are not newly created if sampleChildren != None: for sampleChildIdentifier in sampleChildren: - child = getSampleByIdentifierForUpdate(tr, sampleChildIdentifier); #Retrieve Sample - if child != None: #The new created ones will not be found + if sampleChildIdentifier not in sampleChildrenNewIdentifiers: + child = getSampleByIdentifierForUpdate(tr, sampleChildIdentifier); #Retrieve Sample childParents = child.getParentSampleIdentifiers(); childParents.add(sampleIdentifier); child.setParentSampleIdentifiers(childParents);