Skip to content

Commit b2a2f0a

Browse files
committed
fix super update error
1 parent 00714d4 commit b2a2f0a

3 files changed

Lines changed: 6 additions & 9 deletions

File tree

contentcuration/contentcuration/tests/viewsets/test_contentnode.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -797,7 +797,6 @@ def test_update_completion_criteria_model_to_determined_by_resource_edge_case(se
797797
)
798798
],
799799
)
800-
801800
self.assertEqual(len(response.data["errors"]), 0)
802801
updated_contentnode = models.ContentNode.objects.get(id=contentnode.id)
803802
self.assertEqual(updated_contentnode.extra_fields["options"]["completion_criteria"]["model"], completion_criteria.DETERMINED_BY_RESOURCE)

contentcuration/contentcuration/utils/nodes.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -455,11 +455,9 @@ def migrate_extra_fields(extra_fields):
455455
return extra_fields
456456

457457

458-
def validate_and_conform_to_schema_threshold_none(validated_options):
459-
completion_criteria_validated = validated_options.get("completion_criteria", {})
458+
def validate_and_conform_to_schema_threshold_none(completion_criteria_validated):
460459
model = completion_criteria_validated.get("model", {})
461460
if model in ["reference", "determined_by_resource"]:
462461
if "threshold" not in completion_criteria_validated or completion_criteria_validated["threshold"] is not None:
463462
completion_criteria_validated["threshold"] = None
464-
validated_options["completion_criteria"] = completion_criteria_validated
465-
return validated_options
463+
return completion_criteria_validated

contentcuration/contentcuration/viewsets/contentnode.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -279,15 +279,15 @@ class CompletionCriteriaSerializer(JSONFieldDictSerializer):
279279
model = CharField()
280280
learner_managed = BooleanField(required=False, allow_null=True)
281281

282+
def update(self, instance, validated_data):
283+
validated_data = validate_and_conform_to_schema_threshold_none(validated_data)
284+
return super(CompletionCriteriaSerializer, self).update(instance, validated_data)
285+
282286

283287
class ExtraFieldsOptionsSerializer(JSONFieldDictSerializer):
284288
modality = ChoiceField(choices=(("QUIZ", "Quiz"),), allow_null=True, required=False)
285289
completion_criteria = CompletionCriteriaSerializer(required=False)
286290

287-
def update(self, instance, validated_data):
288-
validated_data = validate_and_conform_to_schema_threshold_none(validated_data)
289-
return super(ExtraFieldsOptionsSerializer, self).update(instance, validated_data)
290-
291291

292292
class ExtraFieldsSerializer(JSONFieldDictSerializer):
293293
randomize = BooleanField()

0 commit comments

Comments
 (0)