diff --git a/apps/ops/api/job.py b/apps/ops/api/job.py index 3d1cf255c..0beaff278 100644 --- a/apps/ops/api/job.py +++ b/apps/ops/api/job.py @@ -1,4 +1,5 @@ from django.db.models import Count +from django.db.transaction import atomic from rest_framework.views import APIView from django.shortcuts import get_object_or_404 from rest_framework.response import Response @@ -66,6 +67,7 @@ class JobExecutionViewSet(OrgBulkModelViewSet): model = JobExecution search_fields = ('material',) + @atomic def perform_create(self, serializer): instance = serializer.save() instance.job_version = instance.job.version diff --git a/apps/ops/models/job.py b/apps/ops/models/job.py index dd248e83d..529e1adda 100644 --- a/apps/ops/models/job.py +++ b/apps/ops/models/job.py @@ -235,6 +235,8 @@ class JobExecution(JMSOrgBaseModel): @property def time_cost(self): + if not self.date_start: + return 0 if self.is_finished: return (self.date_finished - self.date_start).total_seconds() return (timezone.now() - self.date_start).total_seconds()