From 67f34f27589a579cc6aff041c4118ed9df42c5b0 Mon Sep 17 00:00:00 2001 From: Andre Anjos <andre.dos.anjos@gmail.com> Date: Mon, 25 Apr 2016 21:15:05 +0200 Subject: [PATCH] [experiments] Re-use is_done() method from experiments --- beat/web/experiments/models.py | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/beat/web/experiments/models.py b/beat/web/experiments/models.py index fe0f82252..dc02acc84 100644 --- a/beat/web/experiments/models.py +++ b/beat/web/experiments/models.py @@ -674,7 +674,7 @@ class Experiment(Shareable): def reset(self): """Resets an experiment so it can be run again""" - if not self.done(): return #can only reset experiments which are done + if not self.is_done(): return #can only reset experiments which are done self.blocks.update( status=Block.NOT_CACHED, @@ -732,16 +732,10 @@ class Experiment(Shareable): return storage.get_file_content(self, 'declaration_file') - def done(self): - '''Says whether the experiment has finished or not''' - - return self.status in (Experiment.DONE, Experiment.FAILED) - - def update_state(self): '''Update self state based on associated block states''' - if self.done(): return + if self.is_done(): return block_statuses = self.blocks.values_list('status', flat=True) @@ -811,6 +805,17 @@ class Experiment(Shareable): for b in self.blocks.all(): b._cancel() + def fork(self, username=None, name=None): + '''Forks this experiment under a new username or name''' + + author = username or self.author + name = name or self.name + xp, _, __ = Experiment.objects.create_experiment(author, + self.toolchain, name, self.get_declaration(), + self.short_description, self.description) + return xp + + #---------------------------------------------------------- -- GitLab