def analysis_add_basis()

in experimenter/experimenter/experiments/migrations/0224_analysis_add_basis.py [0:0]


def analysis_add_basis(apps, schema_editor):
    NimbusExperiment = apps.get_model("experiments", "NimbusExperiment")
    windows = ["daily", "weekly", "overall"]
    default_analysis_basis = "enrollments"
    for experiment in NimbusExperiment.objects.all():
        new_data = {}
        results = experiment.results_data
        if results is not None and "v2" not in results:
            data = results["v1"]
            new_data["v1"] = copy.deepcopy(data)
            if data is not None:
                for key, value in data.items():
                    if (
                        value is not None
                        and key in windows
                        and default_analysis_basis not in value
                    ):
                        data[key] = {}
                        data[key][default_analysis_basis] = value
                    else:
                        data[key] = value

            new_data["v2"] = data
            experiment.results_data = new_data
            experiment.save()