From 6889de0f6c4857d8b1dd7fa4c2ac5264a2ce8e63 Mon Sep 17 00:00:00 2001 From: Stefano Alberto Russo <stefano.russo@gmail.com> Date: Wed, 24 Nov 2021 00:08:06 +0100 Subject: [PATCH] Enabled the "save as" button in the admin for the Container objects to allow easily duplicate them. Fixed a bug in the populate. Minor fix. --- services/webapp/code/rosetta/core_app/admin.py | 6 +++++- .../core_app/management/commands/core_app_populate.py | 2 +- services/webapp/code/rosetta/core_app/models.py | 5 +++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/services/webapp/code/rosetta/core_app/admin.py b/services/webapp/code/rosetta/core_app/admin.py index b69c3b2..819a338 100644 --- a/services/webapp/code/rosetta/core_app/admin.py +++ b/services/webapp/code/rosetta/core_app/admin.py @@ -2,10 +2,14 @@ from django.contrib import admin from .models import Profile, LoginToken, Task, Container, Computing, Storage, KeyPair, Page +# Define a extra "ModelAdmin" for the Container model to allow "save as" to easily duplicate containers +class ContainerForAdmin(admin.ModelAdmin): + save_as = True + admin.site.register(Profile) admin.site.register(LoginToken) admin.site.register(Task) -admin.site.register(Container) +admin.site.register(Container, ContainerForAdmin) admin.site.register(Computing) admin.site.register(Storage) admin.site.register(KeyPair) diff --git a/services/webapp/code/rosetta/core_app/management/commands/core_app_populate.py b/services/webapp/code/rosetta/core_app/management/commands/core_app_populate.py index a945d05..b3ac3be 100644 --- a/services/webapp/code/rosetta/core_app/management/commands/core_app_populate.py +++ b/services/webapp/code/rosetta/core_app/management/commands/core_app_populate.py @@ -129,7 +129,7 @@ to provide help, news and informations on your deployment. Or you can just ignor # Minimal Desktop Container.objects.create(user = None, - name = 'Minimal Desktop ', + name = 'Minimal Desktop', description = 'A minimal desktop environment providing basic window management functionalities and a terminal.', registry = 'docker.io', image_name = 'sarusso/minimaldesktop', diff --git a/services/webapp/code/rosetta/core_app/models.py b/services/webapp/code/rosetta/core_app/models.py index c8eaa45..e675c1d 100644 --- a/services/webapp/code/rosetta/core_app/models.py +++ b/services/webapp/code/rosetta/core_app/models.py @@ -157,8 +157,9 @@ class Container(models.Model): @property def family_id(self): - return base64.b64encode('{}\t{}\t{}'.format(self.name, self.registry, self.image_name).encode('utf8')).decode('utf8') - + id_as_str = '{}\t{}\t{}'.format(self.name, self.registry, self.image_name) + id_as_base64_str = base64.b64encode(id_as_str.encode('utf8')).decode('utf8') + return id_as_base64_str @property def color(self): -- GitLab