From 63599b79841ae97899bf85e6c14a335de6fae261 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20Clau=C3=9F?= Date: Tue, 23 May 2023 15:47:50 +0200 Subject: [PATCH] move BitumenParameter to data, add function to read all parameters --- src/paveit/datamodels/data.py | 39 +++++++++++++++++++++++++++---- src/paveit/datamodels/material.py | 20 +++++++++++++--- 2 files changed, 52 insertions(+), 7 deletions(-) diff --git a/src/paveit/datamodels/data.py b/src/paveit/datamodels/data.py index 2292707..3a65cb2 100755 --- a/src/paveit/datamodels/data.py +++ b/src/paveit/datamodels/data.py @@ -6,7 +6,7 @@ from .citt import CyclicIndirectTensileTest from .sheartest import DynamicShearTest -class RawData(Document): +class RawSinData(Document): date = DateTimeField(default=datetime.datetime.now, wtf_options={"render_kw": { @@ -23,12 +23,29 @@ class RawData(Document): 'index_background': True, 'index_cls': False, 'auto_create_index': True, - 'collection': 'rawdata', + 'collection': 'RawSinData', + "db_alias": 'dblabtests', + } + +class RawData(Document): + + date = DateTimeField(default=datetime.datetime.now, + wtf_options={"render_kw": { + "step": "60" + }}) + + meta = { + 'allow_inheritance': True, + 'index_opts': {}, + 'index_background': True, + 'index_cls': False, + 'auto_create_index': True, + 'collection': 'RawSinData', "db_alias": 'dblabtests', } -class DataSheartest(RawData): +class DataSheartest(RawSinData): #results result = LazyReferenceField(DynamicShearTest, @@ -43,7 +60,7 @@ class DataSheartest(RawData): s_hor_2 = ListField(FloatField(), required=False) -class CITTSiffness(RawData): +class CITTSiffness(RawSinData): result = LazyReferenceField(CyclicIndirectTensileTest, required=True, @@ -54,3 +71,17 @@ class CITTSiffness(RawData): s_hor_2 = ListField(FloatField()) s_hor_sum = ListField(FloatField()) s_piston = ListField(FloatField(), required=False) + +# Single Data Points + + +class BitumenParameterStrassenbaubitumen(RawData): + + penetration = FloatField(min_value=0, max_value=1000) + softening_point = FloatField(min_value=0, max_value =500) + flash_point = FloatField(min_value=0, max_value=500) + solubility = FloatField(default=99.0, min_value=0, max_value=100) + fraass_breaking_point = FloatField(min_value=-100, max_value=100) + hardening_resistance_penetration = FloatField(min_value=0, max_value=100) + hardening_resistance_softening_point= FloatField(min_value=0, max_value=100) + hardening_resistance_masschange = FloatField(min_value=0, max_value=100) \ No newline at end of file diff --git a/src/paveit/datamodels/material.py b/src/paveit/datamodels/material.py index b262d20..6c8757f 100755 --- a/src/paveit/datamodels/material.py +++ b/src/paveit/datamodels/material.py @@ -1,13 +1,13 @@ import datetime from re import T +from bson.json_util import loads from mongoengine import * +from .enumeration import BitumenCategoryEnum, NormEnum +from .norm_specification import DeliveryGrain, EnumerateBase from .project import Project from .usermanagement import Organisation, User -from .norm_specification import DeliveryGrain, EnumerateBase -from .enumeration import BitumenCategoryEnum, NormEnum - class Material(Document): @@ -82,6 +82,20 @@ 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 + class Bitumenemulsion(Material):