having to change the admin direction due to no router
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 3s
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 3s
This commit is contained in:
@@ -3,6 +3,9 @@ from django.utils.translation import ngettext
|
|||||||
from .models import Machine_Data,Schedule_Day_Data,Schedule_Week_Data
|
from .models import Machine_Data,Schedule_Day_Data,Schedule_Week_Data
|
||||||
# Register your models here.
|
# Register your models here.
|
||||||
|
|
||||||
|
DB = 'cloudmanager_db'
|
||||||
|
|
||||||
|
|
||||||
class ActiveAtHourFilter(admin.SimpleListFilter):
|
class ActiveAtHourFilter(admin.SimpleListFilter):
|
||||||
title = 'Active at hour'
|
title = 'Active at hour'
|
||||||
parameter_name = 'active_at_hour'
|
parameter_name = 'active_at_hour'
|
||||||
@@ -16,23 +19,39 @@ class ActiveAtHourFilter(admin.SimpleListFilter):
|
|||||||
return queryset.filter(**{f'schedule_day__state_at_{hour}': True})
|
return queryset.filter(**{f'schedule_day__state_at_{hour}': True})
|
||||||
return queryset
|
return queryset
|
||||||
|
|
||||||
|
|
||||||
|
class MultiDBModelAdmin(admin.ModelAdmin):
|
||||||
|
"""Base class that pins all admin operations to DB."""
|
||||||
|
db = DB
|
||||||
|
|
||||||
|
def get_queryset(self, request):
|
||||||
|
return super().get_queryset(request).using(self.db)
|
||||||
|
|
||||||
|
def save_model(self, request, obj, form, change):
|
||||||
|
obj.save(using=self.db)
|
||||||
|
|
||||||
|
def delete_model(self, request, obj):
|
||||||
|
obj.delete(using=self.db)
|
||||||
|
|
||||||
|
def delete_queryset(self, request, queryset):
|
||||||
|
queryset.using(self.db).delete()
|
||||||
|
|
||||||
|
|
||||||
@admin.register(Machine_Data)
|
@admin.register(Machine_Data)
|
||||||
class Machine_Data(admin.ModelAdmin):
|
class MachineDataAdmin(MultiDBModelAdmin):
|
||||||
list_display = ('name', 'namespace', 'schedule_week', 'schedule_day','replicas')
|
list_display = ('name', 'namespace', 'schedule_week', 'schedule_day', 'replicas')
|
||||||
list_filter = (
|
list_filter = (ActiveAtHourFilter,)
|
||||||
'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)
|
@admin.register(Schedule_Day_Data)
|
||||||
class Schedule_Day_Data(admin.ModelAdmin):
|
class ScheduleDayAdmin(MultiDBModelAdmin):
|
||||||
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')
|
list_display = ['name_schedule'] + [f'state_at_{h}' for h in range(24)]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@admin.register(Schedule_Week_Data)
|
@admin.register(Schedule_Week_Data)
|
||||||
class Schedule_Week_Data(admin.ModelAdmin):
|
class ScheduleWeekAdmin(MultiDBModelAdmin):
|
||||||
list_display = ('name_schedule','state_Monday','state_Tuesday','state_Wednesday','state_Thursday','state_Friday','state_Saturday','state_Sunday')
|
list_display = (
|
||||||
|
'name_schedule',
|
||||||
|
'state_Monday', 'state_Tuesday', 'state_Wednesday',
|
||||||
|
'state_Thursday', 'state_Friday', 'state_Saturday', 'state_Sunday',
|
||||||
|
)
|
||||||
@@ -3,6 +3,8 @@ from django.utils.translation import ngettext
|
|||||||
from .models import SimpsonsData
|
from .models import SimpsonsData
|
||||||
# Register your models here.
|
# Register your models here.
|
||||||
|
|
||||||
|
DB = 'simpsons_db'
|
||||||
|
|
||||||
|
|
||||||
@admin.action(description="Mark episode as seen")
|
@admin.action(description="Mark episode as seen")
|
||||||
def make_seen(modeladmin, request, queryset):
|
def make_seen(modeladmin, request, queryset):
|
||||||
@@ -38,3 +40,15 @@ class EpisodeAdmin(admin.ModelAdmin):
|
|||||||
list_filter = ['seen']
|
list_filter = ['seen']
|
||||||
fields = ['season', 'episode', 'url', 'seen']
|
fields = ['season', 'episode', 'url', 'seen']
|
||||||
actions = [make_seen,make_unseen]
|
actions = [make_seen,make_unseen]
|
||||||
|
|
||||||
|
def get_queryset(self, request):
|
||||||
|
return super().get_queryset(request).using(DB)
|
||||||
|
|
||||||
|
def save_model(self, request, obj, form, change):
|
||||||
|
obj.save(using=DB)
|
||||||
|
|
||||||
|
def delete_model(self, request, obj):
|
||||||
|
obj.delete(using=DB)
|
||||||
|
|
||||||
|
def delete_queryset(self, request, queryset):
|
||||||
|
queryset.using(DB).delete()
|
||||||
Reference in New Issue
Block a user