def after_import_row()

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,
            )