Skip to content

Commit 2d21f7e

Browse files
Merge pull request #2695 from IFRCGo/feat/update-dref-proposed-actions
feat(dref): make proposed actions activities partially required
2 parents 487fccc + 6ddad0f commit 2d21f7e

2 files changed

Lines changed: 11 additions & 6 deletions

File tree

assets

dref/serializers.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -77,17 +77,22 @@ class Meta:
7777
class ProposedActionSerializer(NestedCreateMixin, NestedUpdateMixin, serializers.ModelSerializer):
7878
id = serializers.IntegerField(required=False)
7979
proposed_type_display = serializers.CharField(source="get_proposed_type_display", read_only=True)
80-
activities = ProposedActionActivitySerializer(many=True, required=True)
80+
# note(frozenhelium): Early response activities are optional
81+
activities = ProposedActionActivitySerializer(many=True, required=False)
8182
total_budget = serializers.IntegerField(required=True)
8283

8384
class Meta:
8485
model = ProposedAction
8586
fields = "__all__"
8687

87-
def validate_activities(self, activities):
88-
if not activities:
89-
raise serializers.ValidationError("At least one activity is required")
90-
return activities
88+
def validate(self, data):
89+
activities = data.get("activities")
90+
proposed_type = data.get("proposed_type")
91+
92+
if proposed_type is ProposedAction.Action.EARLY_ACTION.value and not activities:
93+
raise serializers.ValidationError("At least one early action activity is required")
94+
95+
return data
9196

9297

9398
class DrefFileInputSerializer(serializers.Serializer):

0 commit comments

Comments
 (0)