@@ -34,19 +34,24 @@ class JobKwargInline(HiddenMixin, GenericStackedInline):
3434 )
3535
3636
37+ _LIST_DISPLAY_EXTRA = dict (
38+ CronTask = ('cron_string' , 'next_run' ,),
39+ ScheduledTask = ('scheduled_time' ,),
40+ RepeatableTask = ('scheduled_time' , 'interval_display' ,),
41+ )
42+ _FIELDSET_EXTRA = dict (
43+ CronTask = ('cron_string' , 'repeat' , 'timeout' , 'result_ttl' ,),
44+ ScheduledTask = ('scheduled_time' , 'timeout' , 'result_ttl' ),
45+ RepeatableTask = ('scheduled_time' , ('interval' , 'interval_unit' ,), 'repeat' , 'timeout' , 'result_ttl' ,),
46+ )
47+
48+
3749@admin .register (CronTask , ScheduledTask , RepeatableTask )
38- class JobAdmin (admin .ModelAdmin ):
39- LIST_DISPLAY_EXTRA = dict (
40- CronTask = ('cron_string' , 'next_run' ,),
41- ScheduledTask = ('scheduled_time' ,),
42- RepeatableTask = ('scheduled_time' , 'interval_display' ),
43- )
44- FIELDSET_EXTRA = dict (
45- CronTask = ('cron_string' , 'repeat' , 'timeout' , 'result_ttl' ,),
46- ScheduledTask = ('scheduled_time' , 'timeout' , 'result_ttl' ),
47- RepeatableTask = ('scheduled_time' , ('interval' , 'interval_unit' ,), 'repeat' , 'timeout' , 'result_ttl' ,),
48- )
49- """BaseJob admin class"""
50+ class TaskAdmin (admin .ModelAdmin ):
51+ """TaskAdmin admin view for all task models.
52+ Using the _LIST_DISPLAY_EXTRA and _FIELDSET_EXTRA additional data for each model.
53+ """
54+
5055 save_on_top = True
5156 change_form_template = 'admin/scheduler/change_form.html'
5257 actions = ['disable_selected' , 'enable_selected' , 'enqueue_job_now' , ]
@@ -65,15 +70,15 @@ class JobAdmin(admin.ModelAdmin):
6570 )
6671
6772 def get_list_display (self , request ):
68- if self .model .__name__ not in JobAdmin . LIST_DISPLAY_EXTRA :
73+ if self .model .__name__ not in _LIST_DISPLAY_EXTRA :
6974 raise ValueError (f'Unrecognized model { self .model } ' )
70- return JobAdmin .list_display + JobAdmin . LIST_DISPLAY_EXTRA [self .model .__name__ ]
75+ return TaskAdmin .list_display + _LIST_DISPLAY_EXTRA [self .model .__name__ ]
7176
7277 def get_fieldsets (self , request , obj = None ):
73- if self .model .__name__ not in JobAdmin . FIELDSET_EXTRA :
78+ if self .model .__name__ not in _FIELDSET_EXTRA :
7479 raise ValueError (f'Unrecognized model { self .model } ' )
75- return JobAdmin .fieldsets + ((_ ('Scheduling' ), {
76- 'fields' : JobAdmin . FIELDSET_EXTRA [self .model .__name__ ],
80+ return TaskAdmin .fieldsets + ((_ ('Scheduling' ), {
81+ 'fields' : _FIELDSET_EXTRA [self .model .__name__ ],
7782 }),)
7883
7984 @admin .display (description = 'Next run' )
@@ -100,17 +105,17 @@ def change_view(self, request, object_id, form_url='', extra_context=None):
100105 'page_var' : 'p' ,
101106 })
102107
103- return super (JobAdmin , self ).change_view (
108+ return super (TaskAdmin , self ).change_view (
104109 request , object_id , form_url , extra_context = extra )
105110
106111 def delete_queryset (self , request , queryset ):
107112 for job in queryset :
108113 job .unschedule ()
109- super (JobAdmin , self ).delete_queryset (request , queryset )
114+ super (TaskAdmin , self ).delete_queryset (request , queryset )
110115
111116 def delete_model (self , request , obj ):
112117 obj .unschedule ()
113- super (JobAdmin , self ).delete_model (request , obj )
118+ super (TaskAdmin , self ).delete_model (request , obj )
114119
115120 @admin .action (description = _ ("Disable selected %(verbose_name_plural)s" ), permissions = ('change' ,))
116121 def disable_selected (self , request , queryset ):
0 commit comments