dispaly data for cloudmanager in admin

This commit is contained in:
2026-06-17 14:18:43 +01:00
parent fbe38faf59
commit 0eca15a19b
10 changed files with 182 additions and 14 deletions
+43 -2
View File
@@ -1,3 +1,44 @@
from django.contrib import admin
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)
)
#list_filter = ['seen']
#fields = ['season', 'episode', 'url', 'seen']
#actions = [make_seen,make_unseen]
@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')
#list_filter = ['seen']
#fields = ['season', 'episode', 'url', 'seen']
#actions = [make_seen,make_unseen]
@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')
#list_filter = ['seen']
#fields = ['season', 'episode', 'url', 'seen']
#actions = [make_seen,make_unseen]
@@ -1,6 +1,7 @@
# Generated by Django 4.2.29 on 2026-06-11 19:35
# Generated by Django 4.2.30 on 2026-06-17 13:00
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
@@ -12,17 +13,68 @@ class Migration(migrations.Migration):
operations = [
migrations.CreateModel(
name='CmmData',
name='Schedule_Day_Data',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name_schedule', models.CharField(max_length=100, unique=True)),
('state_at_0', models.BooleanField()),
('state_at_1', models.BooleanField()),
('state_at_2', models.BooleanField()),
('state_at_3', models.BooleanField()),
('state_at_4', models.BooleanField()),
('state_at_5', models.BooleanField()),
('state_at_6', models.BooleanField()),
('state_at_7', models.BooleanField()),
('state_at_8', models.BooleanField()),
('state_at_9', models.BooleanField()),
('state_at_10', models.BooleanField()),
('state_at_11', models.BooleanField()),
('state_at_12', models.BooleanField()),
('state_at_13', models.BooleanField()),
('state_at_14', models.BooleanField()),
('state_at_15', models.BooleanField()),
('state_at_16', models.BooleanField()),
('state_at_17', models.BooleanField()),
('state_at_18', models.BooleanField()),
('state_at_19', models.BooleanField()),
('state_at_20', models.BooleanField()),
('state_at_21', models.BooleanField()),
('state_at_22', models.BooleanField()),
('state_at_23', models.BooleanField()),
],
options={
'db_table': 'schedule_day',
},
),
migrations.CreateModel(
name='Schedule_Week_Data',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name_schedule', models.CharField(max_length=100, unique=True)),
('state_Monday', models.BooleanField()),
('state_Tuesday', models.BooleanField()),
('state_Wednesday', models.BooleanField()),
('state_Thursday', models.BooleanField()),
('state_Friday', models.BooleanField()),
('state_Saturday', models.BooleanField()),
('state_Sunday', models.BooleanField()),
],
options={
'db_table': 'schedule_week',
},
),
migrations.CreateModel(
name='Machine_Data',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=100)),
('namespace', models.CharField(max_length=100)),
('schedule_day', models.CharField(max_length=100)),
('schedule_hour', models.CharField(max_length=100)),
('replicas', models.IntegerField()),
('schedule_day', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='cloudmanager.schedule_day_data')),
('schedule_week', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='cloudmanager.schedule_week_data')),
],
options={
'db_table': 'cloudmanager',
'db_table': 'machine',
},
),
]
+52 -6
View File
@@ -1,12 +1,58 @@
from django.db import models
class CmmData(models.Model):
class Schedule_Week_Data(models.Model):
name_schedule = models.CharField(max_length=100,unique=True)
state_Monday = models.BooleanField()
state_Tuesday = models.BooleanField()
state_Wednesday = models.BooleanField()
state_Thursday = models.BooleanField()
state_Friday = models.BooleanField()
state_Saturday = models.BooleanField()
state_Sunday = models.BooleanField()
class Meta:
db_table = 'schedule_week'
def __str__(self):
return self.name_schedule
class Schedule_Day_Data(models.Model):
name_schedule = models.CharField(max_length=100,unique=True)
state_at_0 = models.BooleanField()
state_at_1 = models.BooleanField()
state_at_2 = models.BooleanField()
state_at_3 = models.BooleanField()
state_at_4 = models.BooleanField()
state_at_5 = models.BooleanField()
state_at_6 = models.BooleanField()
state_at_7 = models.BooleanField()
state_at_8 = models.BooleanField()
state_at_9 = models.BooleanField()
state_at_10 = models.BooleanField()
state_at_11 = models.BooleanField()
state_at_12 = models.BooleanField()
state_at_13 = models.BooleanField()
state_at_14 = models.BooleanField()
state_at_15 = models.BooleanField()
state_at_16 = models.BooleanField()
state_at_17 = models.BooleanField()
state_at_18 = models.BooleanField()
state_at_19 = models.BooleanField()
state_at_20 = models.BooleanField()
state_at_21 = models.BooleanField()
state_at_22 = models.BooleanField()
state_at_23 = models.BooleanField()
class Meta:
db_table = 'schedule_day'
def __str__(self):
return self.name_schedule
class Machine_Data(models.Model):
name = models.CharField(max_length=100)
namespace = models.CharField(max_length=100)
schedule_day = models.CharField(max_length=100)
schedule_hour = models.CharField(max_length=100)
schedule_week = models.ForeignKey(Schedule_Week_Data,null=True, blank=True, on_delete=models.SET_NULL)
schedule_day = models.ForeignKey(Schedule_Day_Data,null=True, blank=True, on_delete=models.SET_NULL)
replicas = models.IntegerField()
class Meta:
db_table = 'cloudmanager'
db_table = 'machine'
+1 -1
View File
@@ -1,7 +1,7 @@
from django.http import HttpResponse
# IMPORT AT THE TOP HERE: This is completely safe!
from apps.cloudmanager.models import CmmData
from apps.cloudmanager.models import Machine_Data,Schedule_Week_Data
def coucou(request):
# 1. Prepare the data inside the function