From 460eff1f71af6d75958c0eeb3dacb9b0169c6ca9 Mon Sep 17 00:00:00 2001 From: Jon Date: Sat, 8 Jun 2024 07:18:16 +0930 Subject: [PATCH] feat(itam): render group software config within device rendered config !22 #43 --- app/itam/models/device.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/app/itam/models/device.py b/app/itam/models/device.py index 40c84e8a..6076fb81 100644 --- a/app/itam/models/device.py +++ b/app/itam/models/device.py @@ -5,8 +5,9 @@ from django.db import models from access.fields import * from access.models import TenancyObject -from core.mixin.history_save import SaveHistory +from app.helpers.merge_software import merge_software +from core.mixin.history_save import SaveHistory from itam.models.device_common import DeviceCommonFields, DeviceCommonFieldsName from itam.models.device_models import DeviceModel @@ -94,6 +95,9 @@ class Device(DeviceCommonFieldsName, SaveHistory): "software": [] } + host_software = [] + group_software = [] + for software in softwares: if software.action: @@ -115,7 +119,7 @@ class Device(DeviceCommonFieldsName, SaveHistory): if software.version: software_action['version'] = software.version.name - config['software'] = config['software'] + [ software_action ] + host_software += [ software_action ] config: dict = config @@ -131,7 +135,15 @@ class Device(DeviceCommonFieldsName, SaveHistory): if rendered_config: - config.update(json.loads(group.group.render_config())) + config.update(json.loads(rendered_config)) + + rendered_config: dict = json.loads(rendered_config) + + if 'software' in rendered_config.keys(): + + group_software = group_software + rendered_config['software'] + + config['software'] = merge_software(group_software, host_software) return config