@@ -20,129 +20,18 @@ class Media:
20
20
class JobArgInline (HiddenMixin , GenericStackedInline ):
21
21
model = TaskArg
22
22
extra = 0
23
- fieldsets = (
24
- (
25
- None ,
26
- {
27
- "fields" : (
28
- (
29
- "arg_type" ,
30
- "val" ,
31
- ),
32
- ),
33
- },
34
- ),
35
- )
23
+ fieldsets = ((None , dict (fields = ("arg_type" , "val" ))),)
36
24
37
25
38
26
class JobKwargInline (HiddenMixin , GenericStackedInline ):
39
27
model = TaskKwarg
40
28
extra = 0
41
- fieldsets = (
42
- (
43
- None ,
44
- {
45
- "fields" : (
46
- ("key" ,),
47
- (
48
- "arg_type" ,
49
- "val" ,
50
- ),
51
- ),
52
- },
53
- ),
54
- )
55
-
56
-
57
- _LIST_DISPLAY_EXTRA = dict (
58
- CronTask = (
59
- "cron_string" ,
60
- "next_run" ,
61
- "successful_runs" ,
62
- "last_successful_run" ,
63
- "failed_runs" ,
64
- "last_failed_run" ,
65
- ),
66
- ScheduledTask = ("scheduled_time" ,),
67
- RepeatableTask = (
68
- "scheduled_time" ,
69
- "interval_display" ,
70
- "successful_runs" ,
71
- "last_successful_run" ,
72
- "failed_runs" ,
73
- "last_failed_run" ,
74
- ),
75
- Task = (
76
- "scheduled_time" ,
77
- "interval_display" ,
78
- "cron_string" ,
79
- "next_run" ,
80
- "successful_runs" ,
81
- "last_successful_run" ,
82
- "failed_runs" ,
83
- "last_failed_run" ,
84
- ),
85
- )
86
- _FIELDSET_EXTRA = dict (
87
- CronTask = (
88
- "cron_string" ,
89
- "timeout" ,
90
- "result_ttl" ,
91
- (
92
- "successful_runs" ,
93
- "last_successful_run" ,
94
- ),
95
- (
96
- "failed_runs" ,
97
- "last_failed_run" ,
98
- ),
99
- ),
100
- ScheduledTask = ("scheduled_time" , "timeout" , "result_ttl" ),
101
- RepeatableTask = (
102
- "scheduled_time" ,
103
- (
104
- "interval" ,
105
- "interval_unit" ,
106
- ),
107
- "repeat" ,
108
- "timeout" ,
109
- "result_ttl" ,
110
- (
111
- "successful_runs" ,
112
- "last_successful_run" ,
113
- ),
114
- (
115
- "failed_runs" ,
116
- "last_failed_run" ,
117
- ),
118
- ),
119
- Task = (
120
- "scheduled_time" ,
121
- "cron_string" ,
122
- (
123
- "interval" ,
124
- "interval_unit" ,
125
- ),
126
- "repeat" ,
127
- "timeout" ,
128
- "result_ttl" ,
129
- (
130
- "successful_runs" ,
131
- "last_successful_run" ,
132
- ),
133
- (
134
- "failed_runs" ,
135
- "last_failed_run" ,
136
- ),
137
- ),
138
- )
29
+ fieldsets = ((None , dict (fields = ("key" , ("arg_type" , "val" )))),)
139
30
140
31
141
32
@admin .register (Task )
142
33
class TaskAdmin (admin .ModelAdmin ):
143
- """TaskAdmin admin view for all task models.
144
- Using the _LIST_DISPLAY_EXTRA and _FIELDSET_EXTRA additional data for each model.
145
- """
34
+ """TaskAdmin admin view for all task models."""
146
35
147
36
save_on_top = True
148
37
change_form_template = "admin/scheduler/change_form.html"
@@ -163,49 +52,44 @@ class TaskAdmin(admin.ModelAdmin):
163
52
"function_string" ,
164
53
"is_scheduled" ,
165
54
"queue" ,
55
+ "scheduled_time" ,
56
+ "interval_display" ,
57
+ "cron_string" ,
58
+ "next_run" ,
59
+ "successful_runs" ,
60
+ "last_successful_run" ,
61
+ "failed_runs" ,
62
+ "last_failed_run" ,
166
63
)
167
64
list_display_links = ("name" ,)
168
- readonly_fields = ("job_id" ,)
65
+ readonly_fields = (
66
+ "job_id" ,
67
+ "successful_runs" ,
68
+ "last_successful_run" ,
69
+ "failed_runs" ,
70
+ "last_failed_run" ,
71
+ )
72
+ radio_fields = {"task_type" : admin .HORIZONTAL }
169
73
fieldsets = (
170
74
(
171
75
None ,
172
- {
173
- " fields" : (
76
+ dict (
77
+ fields = (
174
78
"name" ,
175
79
"callable" ,
176
- "enabled" ,
177
- "at_front" ,
178
- ),
179
- },
80
+ "task_type" ,
81
+ ("enabled" , "timeout" , "result_ttl" ),
82
+ ("scheduled_time" , "cron_string" , "interval" , "interval_unit" , "repeat" ),
83
+ )
84
+ ),
180
85
),
86
+ (_ ("RQ Settings" ), dict (fields = (("queue" , "at_front" ), "job_id" ))),
181
87
(
182
- _ ("RQ Settings" ),
183
- {
184
- "fields" : (
185
- "queue" ,
186
- "job_id" ,
187
- ),
188
- },
88
+ _ ("Previous runs info" ),
89
+ dict (fields = (("successful_runs" , "last_successful_run" ), ("failed_runs" , "last_failed_run" ))),
189
90
),
190
91
)
191
92
192
- def get_list_display (self , request ):
193
- if self .model .__name__ not in _LIST_DISPLAY_EXTRA :
194
- raise ValueError (f"Unrecognized model { self .model } " )
195
- return TaskAdmin .list_display + _LIST_DISPLAY_EXTRA [self .model .__name__ ]
196
-
197
- def get_fieldsets (self , request , obj = None ):
198
- if self .model .__name__ not in _FIELDSET_EXTRA :
199
- raise ValueError (f"Unrecognized model { self .model } " )
200
- return TaskAdmin .fieldsets + (
201
- (
202
- _ ("Scheduling" ),
203
- {
204
- "fields" : _FIELDSET_EXTRA [self .model .__name__ ],
205
- },
206
- ),
207
- )
208
-
209
93
@admin .display (description = "Next run" )
210
94
def next_run (self , o : Task ):
211
95
return tools .get_next_cron_time (o .cron_string )
0 commit comments