Skip to content

Commit 816d6ab

Browse files
dougharrisauvipy
authored andcommitted
Adding inline to each schedule admin to show PeriodicTasks using the schedule
For issue #742
1 parent 3c2ff62 commit 816d6ab

File tree

1 file changed

+33
-4
lines changed

1 file changed

+33
-4
lines changed

django_celery_beat/admin.py

+33-4
Original file line numberDiff line numberDiff line change
@@ -261,8 +261,26 @@ def run_tasks(self, request, queryset):
261261
)
262262

263263

264+
class PeriodicTaskInline(admin.TabularInline):
265+
model = PeriodicTask
266+
fields = ('name', 'task', 'args', 'kwargs')
267+
readonly_fields = fields
268+
can_delete = False
269+
extra = 0
270+
show_change_link = True
271+
verbose_name = "Periodic Tasks Using This Schedule"
272+
verbose_name_plural = verbose_name
273+
274+
def has_add_permission(self, request, obj):
275+
return False
276+
277+
278+
class ScheduleAdmin(admin.ModelAdmin):
279+
inlines = [PeriodicTaskInline]
280+
281+
264282
@admin.register(ClockedSchedule)
265-
class ClockedScheduleAdmin(admin.ModelAdmin):
283+
class ClockedScheduleAdmin(ScheduleAdmin):
266284
"""Admin-interface for clocked schedules."""
267285

268286
fields = (
@@ -274,11 +292,22 @@ class ClockedScheduleAdmin(admin.ModelAdmin):
274292

275293

276294
@admin.register(CrontabSchedule)
277-
class CrontabScheduleAdmin(admin.ModelAdmin):
295+
class CrontabScheduleAdmin(ScheduleAdmin):
278296
"""Admin class for CrontabSchedule."""
279297

280298
list_display = ('__str__', 'human_readable')
299+
fields = ('human_readable', 'minute', 'hour', 'day_of_month',
300+
'month_of_year', 'day_of_week', 'timezone')
301+
readonly_fields = ('human_readable', )
302+
303+
304+
@admin.register(SolarSchedule)
305+
class SolarScheduleAdmin(ScheduleAdmin):
306+
"""Admin class for SolarSchedule."""
307+
pass
281308

282309

283-
admin.site.register(IntervalSchedule)
284-
admin.site.register(SolarSchedule)
310+
@admin.register(IntervalSchedule)
311+
class IntervalScheduleAdmin(ScheduleAdmin):
312+
"""Admin class for IntervalSchedule."""
313+
pass

0 commit comments

Comments
 (0)