in experimenter/experimenter/experiments/api/v5/serializers.py [0:0]
def _save_screenshots(self, screenshots, branch):
if screenshots is None:
return
updated_screenshots = {x["id"]: x for x in screenshots if x.get("id")}
for screenshot in branch.screenshots.all():
screenshot_id = screenshot.id
if screenshot_id not in updated_screenshots:
screenshot.delete()
else:
serializer = NimbusBranchScreenshotSerializer(
screenshot,
data=updated_screenshots[screenshot_id],
partial=True,
)
if serializer.is_valid(raise_exception=True):
serializer.save()
new_screenshots = (x for x in screenshots if not x.get("id", None))
for screenshot_data in new_screenshots:
serializer = NimbusBranchScreenshotSerializer(
data=screenshot_data, partial=True
)
if serializer.is_valid(raise_exception=True):
serializer.save(branch=branch)