in experimenter/experimenter/experiments/admin.py [0:0]
def after_import_row(self, row, row_result, row_number=None, **kwargs):
experiment = NimbusExperiment.objects.get(slug=row.get("slug"))
# create branches
branch_slug = row.get("reference_branch_slug")
branches = row.get("branches")
for branch in branches:
if branch.get("slug") == branch_slug:
(ref_branch, _) = NimbusBranch.objects.get_or_create(
slug=branch_slug,
name=branch.get("name"),
description=branch.get("description"),
ratio=branch.get("ratio"),
experiment=experiment,
)
experiment.reference_branch = ref_branch
experiment.save()
else:
NimbusBranch.objects.get_or_create(
slug=branch.get("slug"),
name=branch.get("name"),
description=branch.get("description"),
ratio=branch.get("ratio"),
experiment=experiment,
)
# create change logs
import_changes = row.get("changes")
for change in import_changes:
NimbusChangeLog.objects.get_or_create(
changed_on=change.get("changed_on"),
old_status=change.get("old_status"),
old_status_next=change.get("old_status_next"),
old_publish_status=change.get("old_publish_status"),
new_status=change.get("new_status"),
new_status_next=change.get("new_status_next"),
new_publish_status=change.get("new_publish_status"),
message=change.get("message"),
experiment_data=change.get("experiment_data"),
published_dto_changed=change.get("published_dto_changed"),
changed_by=experiment.owner,
experiment=experiment,
)