add machine and calibration data

This commit is contained in:
2023-05-26 08:26:00 +02:00
parent 91412f7169
commit b30286387d
7 changed files with 319 additions and 40 deletions

View File

@@ -0,0 +1,73 @@
import datetime
from mongoengine import *
from paveit.datamodels import (
ComponentsServoHydraulicMachineKMD,
ComponentsServoHydraulicMachineLVDT,
ComponentsServoHydraulicMachineTemperatureControl,
Labtest,
)
from paveit.helper import fetch_recursive, mongo_to_dict
from .usermanagement import Organisation
# ??? Labtest: Ist das richtig hier?
class Experiment(EmbeddedDocument):
test = LazyReferenceField(Labtest, required=True)
config = ListField(StringField(), required=True)
class Machine(Document):
company = StringField(required=True)
name = StringField(required=True)
department = StringField(required=False)
room = StringField(required=False)
serialnumber = StringField(required=True)
extrainfo = StringField(required=False)
tests = ListField(EmbeddedDocumentField(Experiment), required=True)
# Standartkomponenten festlegen: wenn ortsveränderlich, dann leer lassen
component_temperature = LazyReferenceField(ComponentsServoHydraulicMachineTemperatureControl, required=True)
component_kmd = LazyReferenceField(ComponentsServoHydraulicMachineKMD, required=False)
component_lvdt = ListField(LazyReferenceField(ComponentsServoHydraulicMachineLVDT), required=False)
date = DateTimeField(default=datetime.datetime.now,
wtf_options={"render_kw": {
"step": "60"
}})
org_id = LazyReferenceField(Organisation,
required=True,
reverse_delete_rule=CASCADE)
tags = ListField(StringField())
def to_dict(self):
# convert data to dict
data = fetch_recursive(self)
data = mongo_to_dict(data)
return data
meta = {
'allow_inheritance': True,
'index_opts': {},
'index_background': True,
'index_cls': False,
'auto_create_index': True,
'collection': 'machines',
"db_alias": 'dblabtests',
'indexes': [
[("name", 1)],
]
}
class ServoHydraulicMachine(Machine):
pass