add machine and calibration data
This commit is contained in:
@@ -1,7 +1,10 @@
|
||||
from .calibration import *
|
||||
from .citt import *
|
||||
from .components import *
|
||||
from .data import *
|
||||
from .enumeration import *
|
||||
from .infrastructure import *
|
||||
from .machines import *
|
||||
from .material import *
|
||||
from .metrics import *
|
||||
from .norm_documents import *
|
||||
|
||||
91
src/paveit/datamodels/calibration.py
Normal file
91
src/paveit/datamodels/calibration.py
Normal file
@@ -0,0 +1,91 @@
|
||||
import datetime
|
||||
|
||||
from mongoengine import *
|
||||
|
||||
from paveit.datamodels.components import Components
|
||||
from paveit.helper import fetch_recursive, mongo_to_dict
|
||||
|
||||
from .usermanagement import Organisation
|
||||
|
||||
|
||||
class Calibrarion(Document):
|
||||
""" Durchführung von Kalibrierungen der Prüfmittel, externer Dienst """
|
||||
|
||||
company = StringField(required=True)
|
||||
name = StringField(required=True)
|
||||
|
||||
department = StringField(required=False)
|
||||
room = StringField(required=False)
|
||||
serialnumber = StringField(required=False)
|
||||
|
||||
extrainfo = StringField(required=False)
|
||||
|
||||
component = LazyReferenceField(Components, required=True)
|
||||
|
||||
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': 'calibration',
|
||||
"db_alias": 'dblabtests',
|
||||
'indexes': [
|
||||
[("name", 1)],
|
||||
]
|
||||
}
|
||||
|
||||
#####################
|
||||
class Monitoring(Document):
|
||||
""" Eigenüberwachung der Prüfmittel, interne Durchführung """
|
||||
|
||||
date = DateTimeField(default=datetime.datetime.now,
|
||||
wtf_options={"render_kw": {
|
||||
"step": "60"
|
||||
}})
|
||||
|
||||
component = LazyReferenceField(Components, required=True)
|
||||
|
||||
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': 'calibration',
|
||||
"db_alias": 'dblabtests',
|
||||
'indexes': [
|
||||
[("name", 1)],
|
||||
]
|
||||
}
|
||||
66
src/paveit/datamodels/components.py
Executable file
66
src/paveit/datamodels/components.py
Executable file
@@ -0,0 +1,66 @@
|
||||
import datetime
|
||||
|
||||
from mongoengine import *
|
||||
|
||||
from paveit.helper import fetch_recursive, mongo_to_dict
|
||||
|
||||
from .usermanagement import Organisation
|
||||
|
||||
|
||||
class Components(Document):
|
||||
|
||||
company = StringField(required=True)
|
||||
name = StringField(required=True)
|
||||
|
||||
department = StringField(required=False)
|
||||
room = StringField(required=False)
|
||||
|
||||
serialnumber = StringField(required=True) # Seriennummer
|
||||
internalnumber = StringField(required=False) # Interne Bezeichnung
|
||||
|
||||
extrainfo = StringField(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': 'components',
|
||||
"db_alias": 'dblabtests',
|
||||
'indexes': [
|
||||
[("name", 1)],
|
||||
]
|
||||
}
|
||||
|
||||
# Servohydraulik
|
||||
class ComponentsServoHydraulicMachineTemperatureControl(Components):
|
||||
""" Kraftmessdosen """
|
||||
pass
|
||||
|
||||
class ComponentsServoHydraulicMachineKMD(Components):
|
||||
""" Kraftmessdosen """
|
||||
pass
|
||||
|
||||
class ComponentsServoHydraulicMachineLVDT(Components):
|
||||
""" Wegaufnehmer """
|
||||
pass
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import datetime
|
||||
from enum import Enum
|
||||
|
||||
from mongoengine import *
|
||||
|
||||
from .usermanagement import Organisation
|
||||
|
||||
|
||||
class LabtestsEnum(Enum):
|
||||
CITTStiffness = 'CITTStiffness'
|
||||
SHEARStiffness = 'SheartestStiffness'
|
||||
|
||||
|
||||
class ProcessStatusEnum(Enum):
|
||||
"""Status eines Prozesses wie Projekt, Task
|
||||
|
||||
@@ -37,3 +37,63 @@ class BitumenCategoryEnum(Enum):
|
||||
|
||||
class AsphaltCategoryEnum(Enum):
|
||||
ATS = "Asphalttragschichtmischgut"
|
||||
|
||||
|
||||
class LabtestsEnum(Enum):
|
||||
# Performance
|
||||
CITTStiffness = 'CITTStiffness'
|
||||
SHEARStiffness = 'SheartestStiffness'
|
||||
|
||||
class Config(Document):
|
||||
|
||||
date = DateTimeField(default=datetime.datetime.now,
|
||||
wtf_options={"render_kw": {
|
||||
"step": "60"
|
||||
}})
|
||||
|
||||
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': 'enumeration',
|
||||
"db_alias": 'dblabtests',
|
||||
'indexes': [
|
||||
[("material", 1)],
|
||||
[("name", 1)],
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
class Labtest(Config):
|
||||
""" Speicherung der Zuordnung zwischen Firma und Labortest. Die hier
|
||||
definierten Tests können die Kunden verwenden. Somit muss erstmal jeder
|
||||
Einzeltest für jeden Kunden neu angelegt werden, jedoch ermöglicht dies auch
|
||||
eine Steuerung der verfügbaren Module. Die Versuche werden nachfolgend in
|
||||
Klasse/Kategorien eingeteil, um eine Trennung in Module zu ermöglichen."""
|
||||
|
||||
org_id = LazyReferenceField(Organisation,
|
||||
required=True,
|
||||
reverse_delete_rule=CASCADE)
|
||||
|
||||
test = EnumField(LabtestsEnum, required=True)
|
||||
|
||||
enabled = BooleanField(required=True, default=False)
|
||||
|
||||
class LabtestPerformAsphalt(Labtest):
|
||||
""" Performanceprüfung Asphalt """
|
||||
pass
|
||||
|
||||
class LabtestPerformBitumen(Labtest):
|
||||
""" Performanceprüfung Bitumen """
|
||||
pass
|
||||
73
src/paveit/datamodels/machines.py
Executable file
73
src/paveit/datamodels/machines.py
Executable 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
|
||||
@@ -18,6 +18,10 @@ from .usermanagement import Organisation, User
|
||||
|
||||
|
||||
class Material(Document):
|
||||
|
||||
name = StringField(required=True)
|
||||
producer = StringField(required=True)
|
||||
|
||||
|
||||
date = DateTimeField(default=datetime.datetime.now,
|
||||
wtf_options={"render_kw": {
|
||||
@@ -63,66 +67,48 @@ class Material(Document):
|
||||
|
||||
class Asphalt(Material):
|
||||
|
||||
name = StringField()
|
||||
producer = StringField()
|
||||
batch_number = StringField()
|
||||
|
||||
norm = LazyReferenceField(NormDocumentAsphalt, required=True)
|
||||
|
||||
limits = LazyReferenceField(EnumerateBase)
|
||||
ce_marking = StringField(required=False) #CE Kennzeichen
|
||||
|
||||
# Bitumen
|
||||
class Bitumen(Material):
|
||||
|
||||
name = StringField()
|
||||
producer = StringField()
|
||||
batch_number = StringField()
|
||||
|
||||
category = EnumField(BitumenCategoryEnum, required=True)
|
||||
norm = LazyReferenceField(NormDocumentBitumen, required=True)
|
||||
|
||||
parameter = ReferenceField(Material)
|
||||
limits = LazyReferenceField(EnumerateBase)
|
||||
|
||||
ce_marking = StringField(required=False) #CE Kennzeichen
|
||||
|
||||
|
||||
|
||||
|
||||
class Bitumenemulsion(Material):
|
||||
|
||||
norm = StringField(required=False, default='TP Asphalt Teil 24')
|
||||
|
||||
name = StringField()
|
||||
material = StringField()
|
||||
|
||||
young_modulus = DictField()
|
||||
limits = LazyReferenceField(EnumerateBase)
|
||||
ce_marking = StringField(required=False) #CE Kennzeichen
|
||||
|
||||
|
||||
class Epoxy(Material):
|
||||
norm = StringField(required=False, default='TP Asphalt Teil 24')
|
||||
name = StringField()
|
||||
|
||||
material = StringField()
|
||||
|
||||
young_modulus = DictField()
|
||||
norm = StringField(required=False, default='TP Asphalt Teil 24')
|
||||
limits = LazyReferenceField(EnumerateBase)
|
||||
ce_marking = StringField(required=False) #CE Kennzeichen
|
||||
|
||||
|
||||
|
||||
class Kompaktasphalt(Material):
|
||||
norm = StringField(required=False, default='TP Asphalt Teil 24')
|
||||
name = StringField()
|
||||
ce_marking = StringField(required=False) #CE Kennzeichen
|
||||
|
||||
|
||||
class Aggregate(Material):
|
||||
|
||||
norm = LazyReferenceField(NormDocumentAggregate, required=True)
|
||||
|
||||
name = StringField(required=True)
|
||||
producer = StringField(required=True)
|
||||
supply_source = StringField(required=True) #Bezugsquelle
|
||||
batch_number = StringField()
|
||||
ce_marking = StringField(required=True) #CE Kennzeichen
|
||||
|
||||
delivery_grain = LazyReferenceField(DeliveryGrain,
|
||||
required=True,
|
||||
limits = LazyReferenceField(DeliveryGrain, required=True,
|
||||
reverse_delete_rule=CASCADE) #Lieferkörnung
|
||||
|
||||
ce_marking = StringField(required=False) #CE Kennzeichen
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -70,7 +70,7 @@ def mongo_get_results(resultsmodel, results: DataFrame, datamodel,
|
||||
|
||||
return True
|
||||
|
||||
def fetch_recursive(data, fetch_parameter=['norm']):
|
||||
def fetch_recursive(data, fetch_parameter=['norm', 'limits']):
|
||||
|
||||
fields = data._fields
|
||||
|
||||
|
||||
Reference in New Issue
Block a user