From 5a1edcee0dece7a86297cdc6010a87ef8a4c5aeb Mon Sep 17 00:00:00 2001
From: Andre Anjos <andre.anjos@idiap.ch>
Date: Mon, 23 May 2016 10:45:15 +0200
Subject: [PATCH] [experiments] Set end date correctly on experiment done

---
 beat/web/experiments/models.py | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/beat/web/experiments/models.py b/beat/web/experiments/models.py
index 2a6d9a6eb..c9a88c8dd 100644
--- a/beat/web/experiments/models.py
+++ b/beat/web/experiments/models.py
@@ -757,14 +757,6 @@ class Experiment(Shareable):
             else:
                 self.start_date = datetime.now()
 
-        if self.end_date is None:
-            d = self.blocks.filter(end_date__isnull=False).\
-                order_by('-end_date')
-            if d:
-                self.end_date = d.first().end_date
-            else:
-                self.end_date = datetime.now()
-
         block_statuses = self.blocks.values_list('status', flat=True)
 
         # Process main state and state from job results
@@ -786,6 +778,16 @@ class Experiment(Shareable):
         else:
             self.status = Experiment.SCHEDULED
 
+        # Set end date if experiment is done
+        if self.is_done() and self.end_date is None:
+            d = self.blocks.filter(end_date__isnull=False).\
+                order_by('-end_date')
+            if d:
+                self.end_date = d.first().end_date
+            else:
+                self.end_date = datetime.now()
+
+
         self.save()
 
 
-- 
GitLab