diff --git a/beat/web/backend/migrations/0002_scheduler_addons.py b/beat/web/backend/migrations/0002_scheduler_addons.py index 2b9c58fd220df15fd4e96b85ed53c26047adf189..c81528b3d27f2cf769b7f25f1d64742143a58595 100644 --- a/beat/web/backend/migrations/0002_scheduler_addons.py +++ b/beat/web/backend/migrations/0002_scheduler_addons.py @@ -141,7 +141,7 @@ class Migration(migrations.Migration): ('start_date', models.DateTimeField(null=True, blank=True)), ('end_date', models.DateTimeField(null=True, blank=True)), ('split_errors', models.PositiveIntegerField(default=0)), - ('block', models.ForeignKey(related_name='job', on_delete=models.deletion.SET_NULL, to='experiments.Block', null=True)), + ('block', models.OneToOneField(related_name='job', on_delete=models.deletion.CASCADE, to='experiments.Block', null=True)), ('parent', models.ForeignKey(related_name='child', to='backend.Job', null=True)), ('result', models.ForeignKey(to='backend.Result', null=True)), ], diff --git a/beat/web/backend/models.py b/beat/web/backend/models.py index 8113411f2d57c949b0b86eae184bc1c48b76caab..9fba37b6b6e70038166b93d0c0e095d69ad0bcad 100644 --- a/beat/web/backend/models.py +++ b/beat/web/backend/models.py @@ -130,6 +130,9 @@ class Environment(Shareable): args=(self.name, self.version,), ) + def get_admin_change_url(self): + return reverse('admin:backend_environment_change', args=(self.id,)) + def queues_for(self, user): """Returns all queues associated to this environment for which the user has the 'can_access' permission""" @@ -193,9 +196,13 @@ class Worker(models.Model): return self.name + def get_admin_change_url(self): + return reverse('admin:backend_worker_change', args=(self.id,)) + + def load(self): '''Calculates the number of cores being used currently''' - return sum([j.job.block.queue.cores_per_slot for j in self.splits]) + return sum([j.job.block.queue.cores_per_slot for j in self.splits.all()]) def available_cores(self): @@ -275,6 +282,9 @@ class Queue(models.Model): return self.name + def get_admin_change_url(self): + return reverse('admin:backend_queue_change', args=(self.id,)) + #_____ Utilities __________ def number_of_slots(self): @@ -447,8 +457,8 @@ class Job(models.Model): (CANCELLED, 'Cancelled'), ) - block = models.ForeignKey('experiments.Block', null=True, - on_delete=models.SET_NULL, related_name='job') + block = models.OneToOneField('experiments.Block', null=True, + on_delete=models.CASCADE, related_name='job') status = models.CharField(max_length=1, choices=STATUS, default=QUEUED)