39 lines
1.6 KiB
Python
39 lines
1.6 KiB
Python
from django.contrib import admin,messages
|
|
from django.utils.translation import ngettext
|
|
from .models import Machine_Data,Schedule_Day_Data,Schedule_Week_Data
|
|
# Register your models here.
|
|
|
|
class ActiveAtHourFilter(admin.SimpleListFilter):
|
|
title = 'Active at hour'
|
|
parameter_name = 'active_at_hour'
|
|
|
|
def lookups(self, request, model_admin):
|
|
return [(str(h), f'{h:02d}:00') for h in range(24)]
|
|
|
|
def queryset(self, request, queryset):
|
|
if self.value() is not None:
|
|
hour = self.value()
|
|
return queryset.filter(**{f'schedule_day__state_at_{hour}': True})
|
|
return queryset
|
|
|
|
@admin.register(Machine_Data)
|
|
class Machine_Data(admin.ModelAdmin):
|
|
list_display = ('name', 'namespace', 'schedule_week', 'schedule_day','replicas')
|
|
list_filter = (
|
|
'schedule_week', # filter by week schedule (shows all Schedule_Week_Data entries)
|
|
ActiveAtHourFilter, # filter by active hour (e.g. who runs at 08:00)
|
|
)
|
|
|
|
|
|
@admin.register(Schedule_Day_Data)
|
|
class Schedule_Day_Data(admin.ModelAdmin):
|
|
list_display = ('name_schedule','state_at_0','state_at_1','state_at_2','state_at_3','state_at_4','state_at_5','state_at_6','state_at_7','state_at_8','state_at_9','state_at_10','state_at_11','state_at_12','state_at_13','state_at_14','state_at_15','state_at_16','state_at_17','state_at_18','state_at_19','state_at_20','state_at_21','state_at_22','state_at_23')
|
|
|
|
|
|
|
|
@admin.register(Schedule_Week_Data)
|
|
class Schedule_Week_Data(admin.ModelAdmin):
|
|
list_display = ('name_schedule','state_Monday','state_Tuesday','state_Wednesday','state_Thursday','state_Friday','state_Saturday','state_Sunday')
|
|
|
|
|