From 47a3ccc2214b32fa33c8db060cc5e2027a930d92 Mon Sep 17 00:00:00 2001
From: Andre Anjos <andre.anjos@idiap.ch>
Date: Wed, 29 Jun 2016 18:13:59 +0200
Subject: [PATCH] [utils] Reset experiments in a transient state after a
 restore (c.f. #433)

---
 beat/web/utils/management/commands/restore.py | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/beat/web/utils/management/commands/restore.py b/beat/web/utils/management/commands/restore.py
index 1011d694a..bd710aea0 100644
--- a/beat/web/utils/management/commands/restore.py
+++ b/beat/web/utils/management/commands/restore.py
@@ -46,6 +46,7 @@ import django.core.serializers.base
 from django.contrib.auth.models import User
 from ....navigation.models import Agreement
 from ....accounts.models import AccountSettings
+from ....experiments.models import Experiment, Block
 
 _original_save = django.core.serializers.base.DeserializedObject.save
 
@@ -152,3 +153,9 @@ class Command(BaseCommand):
 
             # removes the temporary directory
             shutil.rmtree(tmpdir)
+
+            # reset all experiments in a transient state (notice Job and
+            # JobSplit are not backed-up because of circular dependence issues
+            # on the "experiments" app).
+            transient = (Experiment.RUNNING, Experiment.CANCELING)
+            for e in Experiment.objects.filter(status__in=transient): e.reset()
-- 
GitLab