Skip to content

Commit fde707d

Browse files
committed
avniproject/avni-webapp#1288 | Use second pass to process dependents during checklist save
1 parent 2ace26a commit fde707d

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

avni-server-api/src/main/java/org/avni/server/builder/ChecklistDetailBuilder.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
package org.avni.server.builder;
22

33
import org.avni.server.application.Form;
4-
5-
import java.util.Map;
6-
74
import org.avni.server.dao.application.FormRepository;
85
import org.avni.server.domain.ChecklistDetail;
96
import org.avni.server.domain.ChecklistItemDetail;
@@ -14,6 +11,7 @@
1411

1512
import java.util.HashMap;
1613
import java.util.List;
14+
import java.util.Map;
1715

1816
public class ChecklistDetailBuilder extends BaseBuilder<ChecklistDetail, ChecklistDetailBuilder> {
1917

@@ -51,14 +49,17 @@ public ChecklistDetailBuilder withItems(List<ChecklistItemDetailRequest> items)
5149
.withVoided(item.isVoided())
5250
.withform(form)
5351
.withConcept(concept)
54-
.withLeadItem(builtItems.get(item.getDependentOn()))
5552
.withScheduleOnExpiryOfDependency(item.getScheduleOnExpiryOfDependency())
5653
.withMinDaysFromStartDate(item.getMinDaysFromStartDate())
5754
.withMinDaysFromDependent(item.getMinDaysFromDependent())
5855
.withExpiresAfter(item.getExpiresAfter())
5956
.build();
6057
builtItems.put(builtItemDetail.getUuid(), builtItemDetail);
6158
});
59+
//set dependentOn after all items in request have been processed so order of items in request does not matter for dependents
60+
items.forEach(item -> new ChecklistItemDetailBuilder(this.get(), getExistingChecklistItemDetail(this.get(), item))
61+
.withLeadItem(builtItems.get(item.getDependentOn()))
62+
.build());
6263
return this;
6364
}
6465

0 commit comments

Comments
 (0)