From 6e2dbccd6c8fb78a9e58ac8b879dd31cfdcfb164 Mon Sep 17 00:00:00 2001 From: Tim Lorsbach Date: Wed, 8 Jul 2026 10:32:05 +0200 Subject: [PATCH] Harmonised proposed field in Json output --- epdb/models.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/epdb/models.py b/epdb/models.py index 01d4fb07..0322b646 100644 --- a/epdb/models.py +++ b/epdb/models.py @@ -2379,6 +2379,7 @@ class Node(EnviPathModel, AliasMixin, ScenarioMixin, AdditionalInformationMixin) }, "predicted_properties": predicted_properties, "is_engineered_intermediate": self.kv.get("is_engineered_intermediate", False), + "proposed": self.is_proposed_intermediate(), "timeseries": self.get_timeseries_data(), **structure_data, } @@ -2452,6 +2453,26 @@ class Node(EnviPathModel, AliasMixin, ScenarioMixin, AdditionalInformationMixin) return data + def is_proposed_intermediate(self): + collected = defaultdict(dict) + for ai in self.additional_information.filter( + type__in=["ProposedIntermediate", "TransformationProductImportance", "Confidence"] + , scenario__isnull=False + ): + collected[str(ai.scenario.uuid)]["scenarioId"] = ai.scenario.url + collected[str(ai.scenario.uuid)]["scenarioName"] = ai.scenario.name + + if ai.type == "ProposedIntermediate": + collected[str(ai.scenario.uuid)]["proposed"] = True + + if ai.type == "Confidence": + collected[str(ai.scenario.uuid)]["Confidence"] = ai.get().level + + if ai.type == "TransformationProductImportance": + collected[str(ai.scenario.uuid)]["Transformation product importance"] = ai.get().importance.value + + return list(collected.values()) + def simple_json(self, include_description=False): res = super().simple_json() name = res.get("name", None)