Skip to content

Commit 42e17a8

Browse files
committed
wip
1 parent 1321bad commit 42e17a8

File tree

3 files changed

+20
-16
lines changed

3 files changed

+20
-16
lines changed

scheduler/admin/task_admin.py

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from scheduler import tools
88
from scheduler.models import TaskArg, TaskKwarg, Task
99
from scheduler.settings import SCHEDULER_CONFIG, logger
10-
from scheduler.tools import get_job_executions_for_task
10+
from scheduler.tools import get_job_executions_for_task, TaskType
1111

1212

1313
class HiddenMixin(object):
@@ -56,9 +56,7 @@ class Media:
5656
"function_string",
5757
"is_scheduled",
5858
"queue",
59-
"scheduled_time",
60-
"interval_display",
61-
"cron_string",
59+
"task_schedule",
6260
"next_run",
6361
"successful_runs",
6462
"last_successful_run",
@@ -88,15 +86,15 @@ class Media:
8886
),
8987
(
9088
None,
91-
dict(fields=("scheduled_time",), classes=("tasktype-OnceTask",)),
89+
dict(fields=("scheduled_time",), classes=("tasktype-OnceTaskType",)),
9290
),
9391
(
9492
None,
95-
dict(fields=("cron_string",), classes=("tasktype-CronTask",)),
93+
dict(fields=("cron_string",), classes=("tasktype-CronTaskType",)),
9694
),
9795
(
9896
None,
99-
dict(fields=("interval", "interval_unit", "repeat"), classes=("tasktype-RepeatableTask",)),
97+
dict(fields=("interval", "interval_unit", "repeat"), classes=("tasktype-RepeatableTaskType",)),
10098
),
10199
(_("RQ Settings"), dict(fields=(("queue", "at_front"), "job_id"))),
102100
(
@@ -105,8 +103,19 @@ class Media:
105103
),
106104
)
107105

106+
@admin.display(description="Schedule")
107+
def task_schedule(self, o: Task) -> str:
108+
if o.task_type == TaskType.ONCE.value:
109+
return f"Run once: {o.scheduled_time:%Y-%m-%d %H:%M:%S}"
110+
elif o.task_type == TaskType.CRON.value:
111+
return f"Cron: {o.cron_string}"
112+
elif o.task_type == TaskType.REPEATABLE.value:
113+
if o.interval is None or o.interval_unit is None:
114+
return ""
115+
return "Repeatable: {} {}".format(o.interval, o.get_interval_unit_display())
116+
108117
@admin.display(description="Next run")
109-
def next_run(self, o: Task):
118+
def next_run(self, o: Task) -> str:
110119
return tools.get_next_cron_time(o.cron_string)
111120

112121
def change_view(self, request, object_id, form_url="", extra_context=None):

scheduler/models/task.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -394,11 +394,6 @@ def delete(self, **kwargs):
394394
self.unschedule()
395395
super(Task, self).delete(**kwargs)
396396

397-
def interval_display(self):
398-
if self.interval is None or self.interval_unit is None:
399-
return ""
400-
return "{} {}".format(self.interval, self.get_interval_unit_display())
401-
402397
def interval_seconds(self):
403398
kwargs = {
404399
self.interval_unit: self.interval,

scheduler/static/admin/js/select-fields.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
(function ($) {
22
$(function () {
33
const tasktypes = {
4-
"CronTask": $(".tasktype-CronTask"),
5-
"RepeatableTask": $(".tasktype-RepeatableTask"),
6-
"OnceTask": $(".tasktype-OnceTask"),
4+
"CronTaskType": $(".tasktype-CronTaskType"),
5+
"RepeatableTaskType": $(".tasktype-RepeatableTaskType"),
6+
"OnceTaskType": $(".tasktype-OnceTaskType"),
77
};
88
var taskTypeField = $('#id_task_type');
99

0 commit comments

Comments
 (0)