diff --git a/beat/web/experiments/models.py b/beat/web/experiments/models.py index 2a6d9a6eb7e89a9a8d5199e660ff94672274efb2..c9a88c8ddc736f31bdd606cfd80b2045c90d9fab 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()