Skip to content

Commit

Permalink
Show retry info on jobs admin
Browse files Browse the repository at this point in the history
  • Loading branch information
davegaeddert committed Jan 23, 2024
1 parent 40ed698 commit ee46d10
Showing 1 changed file with 19 additions and 4 deletions.
23 changes: 19 additions & 4 deletions bolt-worker/bolt/worker/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
)
from bolt.admin.cards import Card
from bolt.admin.dates import DatetimeRangeAliases
from bolt.db import models
from bolt.http import HttpResponseRedirect
from bolt.runtime import settings

Expand Down Expand Up @@ -116,7 +117,7 @@ def get_number(self):
@register_viewset
class JobRequestViewset(AdminModelViewset):
class ListView(AdminModelListView):
nav_section = "Jobs"
nav_section = "Worker"
model = JobRequest
fields = ["id", "job_class", "priority", "created_at"]

Expand All @@ -127,7 +128,7 @@ class DetailView(AdminModelDetailView):
@register_viewset
class JobViewset(AdminModelViewset):
class ListView(AdminModelListView):
nav_section = "Jobs"
nav_section = "Worker"
model = Job
fields = ["id", "job_class", "priority", "created_at", "started_at"]
actions = ["Delete"]
Expand All @@ -147,14 +148,16 @@ class DetailView(AdminModelDetailView):
@register_viewset
class JobResultViewset(AdminModelViewset):
class ListView(AdminModelListView):
nav_section = "Jobs"
nav_section = "Worker"
model = JobResult
fields = [
"id",
"job_class",
"priority",
"created_at",
"status",
"retried",
"is_retry",
]
cards = [
SuccessfulJobsCard,
Expand All @@ -173,14 +176,26 @@ class ListView(AdminModelListView):
"Retry",
]
allow_global_search = False
default_datetime_range = DatetimeRangeAliases.LAST_7_DAYS
default_datetime_range = DatetimeRangeAliases.LAST_30_DAYS

def get_description(self):
delta = timedelta(seconds=settings.JOBS_CLEARABLE_AFTER)
return f"Jobs are cleared after {_td_format(delta)}"

def get_initial_queryset(self):
queryset = super().get_initial_queryset()
queryset = queryset.annotate(
retried=models.Case(
models.When(retry_job_request_uuid__isnull=False, then=True),
default=False,
output_field=models.BooleanField(),
),
is_retry=models.Case(
models.When(retry_attempt__gt=0, then=True),
default=False,
output_field=models.BooleanField(),
),
)
if self.filter == "Successful":
return queryset.successful()
if self.filter == "Errored":
Expand Down

0 comments on commit ee46d10

Please sign in to comment.