From 0eca15a19bafba900a802aa50d25b9fd48148928 Mon Sep 17 00:00:00 2001 From: pierregeeraert Date: Wed, 17 Jun 2026 14:18:43 +0100 Subject: [PATCH] dispaly data for cloudmanager in admin --- .gitignore | 1 + django_code/apps/cloudmanager/admin.py | 45 ++++++++++++- .../cloudmanager/migrations/0001_initial.py | 62 ++++++++++++++++-- django_code/apps/cloudmanager/models.py | 58 ++++++++++++++-- django_code/apps/cloudmanager/views.py | 2 +- .../migrations/0001_initial.py | 27 ++++++++ django_code/db.sqlite3 | Bin 135168 -> 0 bytes .../__pycache__/settings.cpython-312.pyc | Bin 4576 -> 4617 bytes .../__pycache__/urls.cpython-312.pyc | Bin 4833 -> 5059 bytes docker-compose.yml | 1 + 10 files changed, 182 insertions(+), 14 deletions(-) create mode 100644 django_code/apps/random_simpsons/migrations/0001_initial.py delete mode 100644 django_code/db.sqlite3 diff --git a/.gitignore b/.gitignore index 24e58f4..6516270 100644 --- a/.gitignore +++ b/.gitignore @@ -225,3 +225,4 @@ __marimo__/ */.env/* Webcal-python/* .idea/* +django_code/db.sqlite3 diff --git a/django_code/apps/cloudmanager/admin.py b/django_code/apps/cloudmanager/admin.py index 8c38f3f..8cbe234 100644 --- a/django_code/apps/cloudmanager/admin.py +++ b/django_code/apps/cloudmanager/admin.py @@ -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] + diff --git a/django_code/apps/cloudmanager/migrations/0001_initial.py b/django_code/apps/cloudmanager/migrations/0001_initial.py index b0b5a28..20ce565 100644 --- a/django_code/apps/cloudmanager/migrations/0001_initial.py +++ b/django_code/apps/cloudmanager/migrations/0001_initial.py @@ -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', }, ), ] diff --git a/django_code/apps/cloudmanager/models.py b/django_code/apps/cloudmanager/models.py index 17ac29b..1f9b526 100644 --- a/django_code/apps/cloudmanager/models.py +++ b/django_code/apps/cloudmanager/models.py @@ -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' \ No newline at end of file + db_table = 'machine' + \ No newline at end of file diff --git a/django_code/apps/cloudmanager/views.py b/django_code/apps/cloudmanager/views.py index da280b3..ac26e14 100644 --- a/django_code/apps/cloudmanager/views.py +++ b/django_code/apps/cloudmanager/views.py @@ -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 diff --git a/django_code/apps/random_simpsons/migrations/0001_initial.py b/django_code/apps/random_simpsons/migrations/0001_initial.py new file mode 100644 index 0000000..30a8f06 --- /dev/null +++ b/django_code/apps/random_simpsons/migrations/0001_initial.py @@ -0,0 +1,27 @@ +# Generated by Django 4.2.30 on 2026-06-16 08:46 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='SimpsonsData', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('season', models.IntegerField()), + ('episode', models.IntegerField()), + ('url', models.CharField(max_length=1000)), + ('seen', models.BooleanField()), + ], + options={ + 'db_table': 'episodes', + }, + ), + ] diff --git a/django_code/db.sqlite3 b/django_code/db.sqlite3 deleted file mode 100644 index 059f3e35b74f7eb7b405dd436067bf111af7f45a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 135168 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 x0T2KI5C8!X009sHfyYV!`~Sy^81DblHo zSw^VN0P(U+F~w43V2&X{k1VpDdQ3yHS|o?8iAX*2Fg+;>bJ&0$Q^ev(ko{OKq}XS~ zIkG;5a-S*9VUChcQ3l4SOo~d1DlmRkQq;htI+)bRWK3s?l1_09Z=i@(||6N)`QaeAR4GqImIAKCB-mG6^PYRjDXgtS2AfDZ%$&_%E(p4 zkx^1oP;8~Izge6ul*L>sB`Yy6Jzp;+NiQieIXg8krC6`HFekGl)wqfaCg?1bG^ml=jiJ?Ih#v?mnS(VzceK`F)uMawP^ArE1EiP_+Lqujq%|#LIkF3lBY#+E7gpF+!l$WW2^MlT04Z$re Io075{-aR2}S delta 1008 zcmeBFd7#XDnwOW00SGp2(a!ockynz*jAf$6zxoueMT}8==?p2{K$<^=CrTiNH%c&t zFG?tdKb1X2po*J;A)PTrFhvNcMtBipCS!`o9F}y(DB%>*D3KJg6!BEXEG>}1s31!h zl@H>jNUUarh{E;Mqo~5FNfJX7VLejB>OrzUMH;3lMP?2g&}Xu6R}!`m(`SVBfIJ4V zp9G7D_8G!{43Ehn>_hTD0|VCJC)a0S`weI`GLIZ8Z50hl-?QWR5^ zfJs#`MHx)0fJxO%#&nh_$rQCHsTB1n=@h{z87Ckio1zgV2TbdlptKI8wV<>%l-2>~ z0hTEF6x}F=6ul@#AXZAz2U??C$)stpS%zgRhixzr+X;py;5s28)Fpv9q(JHowS^yGXw#F` zo_fUE14gO}_x2EpOQcGbrCuUcs&=%NMoop(R_e7H4!w6~;1H4=Sjp0Fzwh^-S$o!h z_5b42|Eklqa^#BWNAqhPHGQ`tt*-e$s;ahH3!03U=dyejZ0QQ>jGko`$(oGeg0~ZH zyvQ9Sn=U#Xq+`C|orGI>Zj)1R0?4WbMLtM3ynN-um+x!8b&1<5w@M?l<;QCcm#T$? zNg7%OZ9YnZvQ4mvWtB&z6)gEUH98V*(4Z$FLBg_ugqh0=)4Oc@kH#OA=e)+V$Lb)> zn^$U@1U=iDl|qVhxp9 z+~*C|0W$UJm8N{8xqhXlpERFdsTlym2kg}NL9wW^RI@|x9LccIlFza%amfPIh+1SmMiYEc}p+dcpE#!(Jv7zy*)#aUB zarfkJ%~K^mAoo6d6tktmS|wK~S4zdo+7~(DOYu+b&)V0ZlG_ztgT0-tiuk?G zsn=grg>tS^%AWkBEAT^8gmd|8Un%x!5TeJ>?SO zqQP8E7!5FlDLP8UMBh^cNDo((4CUOZEU5&#)Mn) z#*ud(dgrC|S`(~eJ9Q4`s&>gaft*R`Oul;31dp+kIxln9`YN)ApgkmmFz%;(fN|%s z9l6G#Yg`5s*hjgaamTR^^^L*4F&RW~fbv1cUB^?%6NMi34TmTnW_-3$K%V3(Os>k{ z2_B&$$VBp$4yD#%YF!2!IFu0oZSSV%bQWjUCj}BHFbe~-GMK~Hskp(!uoS$7f(tOX zAcOmOii!jiqf#V=A}cVmB7;YGnu-~onMEnRiPB}5F3VsWf5=mH^IWB+r5sw?g-g3K z*u&LZ%%!L!??mh%QA^0cjc+r2hhay(`^a(Vkbxi1Gklj}dtGy+JJiWw0N-PH;d}#o z{W)?*pfe(aaeSYd#kbe_nBg?fRq4xRtACChqtG$>Qr9GB{|S>zY{pslAB7IdNe$u$ z3_pBplb0h+kiyH%t-Rsl&>3&oo8$+3#9ZdwxsOxGI|aQ{jeAXy#*bH+++urKB%>P{ zhoEst2E(|(OpzI@Wbq-(2(*m6SZ;zTTw<=woK5Nqpsq0N3cq;X1T%P>xgD|5(W$M_ M{B_&Tb@IpkA1wIhkN^Mx delta 1660 zcma)*&2Jh<7>8LHTw}a^+JO05V6g#%!3HM*YOvd2Lh8gJlqR<8w65e;T5LB?lS=8O zsJ9+N_fRZFvTr@K2dnPEmrAaBiPX!E25D}Ud#QSy{s)~IT**m%FcQ*_=lQ+!?y~TE z?5}alAEG#`hNk`gI8tz?cWSllvF4df%&9zH4W8V$9)I-7A zjw^4qQWuOQ-grclimA1JK{NSAGew&pUC^95-&~viDxJt2eLZlfSFf5PM;oRMgD|81 zHvB?;BL1q*S)`*a%a$-ypa%)`{p1Jr)EZI^Hb=W;)&D!FGn&5jJfFwTICRDlNDvdl zLk#<#KffryMdIQMG)EcWN2p9?1wBkUYW^G;)L z0eTAv6v-&#F3Q`QDXhr_EH6TN5rHakGvnb$g|tW>M`|!qL*OPEW5UZtM2i-2bO}b6 zw8qChut9vx`MC>d(iJRKp;UeOpa(uA0j45c`MT>kkb!{=0@FlhJgRH6dyx(TI6Mo( zvj|)v<4jEOf#89NLs=NgB9J37#^aoa4@y|hLz&-Vg7HbtD4QGtmH0*mAtGx`6`IZ1sIIeLV?0WWtdqD)^%dlnmWAS10}M<-RIo-HFpBLr=ffL@L3NmkVo9@au?7%lh~7mp6u~h4_qgY Onfu241-M54j{gDs2e*R& diff --git a/docker-compose.yml b/docker-compose.yml index 6a252cf..3cec3ed 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,6 +2,7 @@ services: db: image: docker.io/library/postgres:latest restart: always + container_name: postgres volumes: - db:/var/lib/postgresql/ ports: