From 38a083cdc36b455efbc370b7aac60918e29e3047 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20Clau=C3=9F?= Date: Tue, 23 May 2023 17:38:58 +0200 Subject: [PATCH] add function to merge data and return as dict --- src/paveit/datamodels/material.py | 37 ++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/src/paveit/datamodels/material.py b/src/paveit/datamodels/material.py index ed51fc0..268c349 100755 --- a/src/paveit/datamodels/material.py +++ b/src/paveit/datamodels/material.py @@ -33,7 +33,27 @@ class Material(Document): reverse_delete_rule=DO_NOTHING) tags = ListField(StringField()) - norm = StringField(required=True, default='TP Asphalt Teil 24') + + def to_dict(self): + # convert data to dict + data = self.to_mongo().to_dict() + + # Laden und hinzufügen der referenzierten Daten + try: + data['parameter'] = self.parameter.to_mongo().to_dict() + except: + pass + + try: + norm = self.norm.fetch() # Trigger the dereferencing + data['norm'] = norm.to_mongo().to_dict() + except: + raise + + return data + + + meta = { 'allow_inheritance': True, @@ -73,19 +93,7 @@ class Bitumen(Material): parameter = ReferenceField(Material) limits = LazyReferenceField(EnumerateBase) - def to_dict(self): - # convert data to dict - data = self.to_mongo().to_dict() - # Laden und hinzufügen der referenzierten Daten - if self.parameter: - data['parameter'] = self.parameter.to_mongo().to_dict() - - - print(data) - - # Konvertieren Sie das BSON-Dokument in ein Python-Dict - return data @@ -125,6 +133,9 @@ class Aggregate(Material): required=True, reverse_delete_rule=CASCADE) #Lieferkörnung + + + class Dummy(Material):