From 6232f76561e78de4972b700e2d31efb5b232125a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20Clau=C3=9F?= Date: Wed, 11 Jan 2023 14:45:33 +0100 Subject: [PATCH] add datamodel for project and workpackages; mod other modules --- src/pytestpavement/models/__init__.py | 2 ++ src/pytestpavement/models/data.py | 1 - src/pytestpavement/models/material.py | 4 ++++ src/pytestpavement/models/project.py | 27 +++++++++++++++++++++++ src/pytestpavement/models/sheartest.py | 6 +++-- src/pytestpavement/models/workpackage.py | 28 ++++++++++++++++++++++++ 6 files changed, 65 insertions(+), 3 deletions(-) create mode 100644 src/pytestpavement/models/project.py create mode 100644 src/pytestpavement/models/workpackage.py diff --git a/src/pytestpavement/models/__init__.py b/src/pytestpavement/models/__init__.py index 2ea917c..7c5b27f 100644 --- a/src/pytestpavement/models/__init__.py +++ b/src/pytestpavement/models/__init__.py @@ -1,3 +1,5 @@ from .citt import * from .material import * +from .project import * from .sheartest import * +from .workpackage import * diff --git a/src/pytestpavement/models/data.py b/src/pytestpavement/models/data.py index 3c42c2a..2c95043 100644 --- a/src/pytestpavement/models/data.py +++ b/src/pytestpavement/models/data.py @@ -1,5 +1,4 @@ import datetime -from xml.dom.minidom import Document from mongoengine import * diff --git a/src/pytestpavement/models/material.py b/src/pytestpavement/models/material.py index d57b0cb..40803f4 100644 --- a/src/pytestpavement/models/material.py +++ b/src/pytestpavement/models/material.py @@ -11,6 +11,8 @@ class Material(Document): }}) tags = ListField(StringField()) + project = StringField(required=False) + norm = StringField(required=True, default='TP Asphalt Teil 24') meta = { 'allow_inheritance': True, @@ -26,8 +28,10 @@ class Asphalt(Material): name = StringField() material = StringField() + bitumen = StringField(required=False) young_modulus = DictField() + fatigue = DictField() class Bitumen(Material): diff --git a/src/pytestpavement/models/project.py b/src/pytestpavement/models/project.py new file mode 100644 index 0000000..a3531d3 --- /dev/null +++ b/src/pytestpavement/models/project.py @@ -0,0 +1,27 @@ +import datetime + +from mongoengine import * + + +class Project(Document): + + name = StringField(required=True) + name_short = StringField(required=False) + project_id = StringField(required=True) + + date = DateTimeField(default=datetime.datetime.now, + wtf_options={"render_kw": { + "step": "60" + }}) + + tags = ListField(StringField()) + + meta = { + 'allow_inheritance': True, + 'index_opts': {}, + 'index_background': True, + 'index_cls': False, + 'auto_create_index': True, + 'collection': 'projects' + } + diff --git a/src/pytestpavement/models/sheartest.py b/src/pytestpavement/models/sheartest.py index f6639cc..2a54549 100644 --- a/src/pytestpavement/models/sheartest.py +++ b/src/pytestpavement/models/sheartest.py @@ -4,6 +4,8 @@ from mongoengine import * from .data import DataSheartest from .material import Material +from .project import Project +from .workpackage import Workpackage class DynamicShearTest(Document): @@ -24,8 +26,8 @@ class DynamicShearTest(Document): filehash = StringField(required=True) speciment_name = StringField() - project = StringField(required=True) - workpackage = StringField() + project = LazyReferenceField(Project, required=True) + workpackage = LazyReferenceField(Workpackage, required=True) material1 = LazyReferenceField(Material, required=True) material2 = LazyReferenceField(Material, required=True) diff --git a/src/pytestpavement/models/workpackage.py b/src/pytestpavement/models/workpackage.py new file mode 100644 index 0000000..c678d57 --- /dev/null +++ b/src/pytestpavement/models/workpackage.py @@ -0,0 +1,28 @@ +import datetime + +from mongoengine import * + +from .project import Project + + +class Workpackage(Document): + + name = StringField(required=True) + name_short = StringField(required=False) + wp_id = StringField(required=True) + + project = LazyReferenceField(Project, required=True) + + 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': 'workpackages' + } \ No newline at end of file