From cf06bfd1bda914ff5b9f1631abc8005c84ba9d0c Mon Sep 17 00:00:00 2001 From: "pierre.geeraert" Date: Fri, 11 Sep 2026 10:53:19 +0100 Subject: [PATCH 1/2] add import export --- django_code/apps/cloudmanager/admin.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/django_code/apps/cloudmanager/admin.py b/django_code/apps/cloudmanager/admin.py index 253caf2..4f0ff4b 100644 --- a/django_code/apps/cloudmanager/admin.py +++ b/django_code/apps/cloudmanager/admin.py @@ -4,6 +4,7 @@ from .models import Deployment_Data,Schedule_Day_Data,Schedule_Week_Data,Namespa from .utils import import_namespace,import_deployment,generate_default_day_schedule,generate_default_week_schedule,Check_server_supposed_XXX,retrieve_and_apply from apps.kubernetes_connection.utils import scale_up,scale_down from admin_extra_buttons.api import ExtraButtonsMixin, button +from import_export.admin import ImportExportModelAdmin DB = 'cloudmanager_db' @@ -85,7 +86,7 @@ class MultiDBModelAdmin(admin.ModelAdmin): @admin.register(Deployment_Data) -class DeploymentDataAdmin(ExtraButtonsMixin, MultiDBModelAdmin): +class DeploymentDataAdmin(ImportExportModelAdmin,ExtraButtonsMixin, MultiDBModelAdmin): list_display = ('name', 'namespace', 'schedule_week', 'schedule_day', 'replicas') list_filter = (ActiveAtHourFilter,) actions = [Check_server_supposed_False,Check_server_supposed_true,scale_up_deploy,scale_down_deploy] @@ -102,7 +103,7 @@ class DeploymentDataAdmin(ExtraButtonsMixin, MultiDBModelAdmin): self.message_user(request, 'Deployments imported') @admin.register(Schedule_Day_Data) -class ScheduleDayAdmin(ExtraButtonsMixin,MultiDBModelAdmin): +class ScheduleDayAdmin(ImportExportModelAdmin,ExtraButtonsMixin,MultiDBModelAdmin): list_display = ['name_schedule'] + [f'state_at_{h}' for h in range(24)] @button() def generate_default_day_schedule_admin(self, request): @@ -111,7 +112,7 @@ class ScheduleDayAdmin(ExtraButtonsMixin,MultiDBModelAdmin): self.message_user(request, 'Created default schedules') @admin.register(Schedule_Week_Data) -class ScheduleWeekAdmin(ExtraButtonsMixin,MultiDBModelAdmin): +class ScheduleWeekAdmin(ImportExportModelAdmin,ExtraButtonsMixin,MultiDBModelAdmin): list_display = ( 'name_schedule', 'state_Monday', 'state_Tuesday', 'state_Wednesday', @@ -125,7 +126,7 @@ class ScheduleWeekAdmin(ExtraButtonsMixin,MultiDBModelAdmin): @admin.register(Namespace_Data) -class NamespaceAdmin(ExtraButtonsMixin, MultiDBModelAdmin): +class NamespaceAdmin(ImportExportModelAdmin,ExtraButtonsMixin, MultiDBModelAdmin): list_display = ('namespace',) From 1d9d723ce9af1c2853764506411839fecb823bdb Mon Sep 17 00:00:00 2001 From: "pierre.geeraert" Date: Fri, 11 Sep 2026 11:02:52 +0100 Subject: [PATCH 2/2] add favicon --- django_code/templates/static/favicon.ico | Bin 0 -> 15086 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 django_code/templates/static/favicon.ico diff --git a/django_code/templates/static/favicon.ico b/django_code/templates/static/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..5a0494c9f07e6bfec481370858e0c9ca1bd7a8db GIT binary patch literal 15086 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 literal 0 HcmV?d00001