43 lines
1.4 KiB
Python
43 lines
1.4 KiB
Python
|
|
from django.utils.translation import gettext_lazy as _
|
|
from django.contrib import admin
|
|
from django_celery_beat.admin import PeriodicTaskAdmin, PeriodicTask
|
|
|
|
from .models import (Device, DeviceType)
|
|
|
|
class DeviceAdmin(admin.ModelAdmin):
|
|
list_display = ('label', 'uuid', 'image_tag', 'device_type__code', 'index', 'task', 'lifetime', 'task_d', 'active')
|
|
list_filter = ('device_type', 'active')
|
|
search_fields = ('label',)
|
|
readonly_fields = ('uuid',)
|
|
|
|
def task_e(self, instance):
|
|
if instance.task:
|
|
return instance.task.enabled
|
|
task_e.short_description = _('Activé')
|
|
|
|
def task_d(self, instance):
|
|
if instance.task:
|
|
return instance.task.description
|
|
task_d.short_description = _('Description')
|
|
|
|
def has_add_permission(self, request, obj=None):
|
|
return False
|
|
|
|
|
|
class DeviceTypeAdmin(admin.ModelAdmin):
|
|
list_display = ('name', 'code',)
|
|
search_fields = ('name', 'code')
|
|
|
|
|
|
class CustomPeriodicTaskAdmin(PeriodicTaskAdmin):
|
|
list_display = ('name', 'task', 'enabled', 'description', 'scheduler', 'interval',
|
|
'start_time', 'last_run_at', 'expires', 'one_off', 'total_run_count')
|
|
search_fields = ('name', 'task')
|
|
|
|
|
|
admin.site.unregister(PeriodicTask)
|
|
admin.site.register(PeriodicTask, CustomPeriodicTaskAdmin)
|
|
admin.site.register(DeviceType, DeviceTypeAdmin)
|
|
admin.site.register(Device, DeviceAdmin)
|