restructure materials, add additives
This commit is contained in:
@@ -6,6 +6,7 @@ from .enumeration import *
|
|||||||
from .labworks import *
|
from .labworks import *
|
||||||
from .machines import *
|
from .machines import *
|
||||||
from .material import *
|
from .material import *
|
||||||
|
from .material_properties import *
|
||||||
from .messages import *
|
from .messages import *
|
||||||
from .metrics import *
|
from .metrics import *
|
||||||
from .norm_documents import *
|
from .norm_documents import *
|
||||||
|
|||||||
@@ -5,8 +5,13 @@ from mongoengine import *
|
|||||||
|
|
||||||
from paveit.helper import fetch_recursive, mongo_to_dict
|
from paveit.helper import fetch_recursive, mongo_to_dict
|
||||||
|
|
||||||
from .usermanagement import Organisation
|
class ModelSelection(Enum):
|
||||||
|
"""
|
||||||
|
Welche Module sind in der App verfügbar
|
||||||
|
"""
|
||||||
|
|
||||||
|
BASE = 'base'
|
||||||
|
ADVANCED = 'advanced'
|
||||||
|
|
||||||
class ProcessStatusEnum(Enum):
|
class ProcessStatusEnum(Enum):
|
||||||
"""Status eines Prozesses wie Projekt, Task
|
"""Status eines Prozesses wie Projekt, Task
|
||||||
@@ -46,6 +51,10 @@ class AsphaltCategoryEnum(Enum):
|
|||||||
PA = "Offenporiger Asphalt"
|
PA = "Offenporiger Asphalt"
|
||||||
ACTD = 'Asphalttragdeckschichtmischgut'
|
ACTD = 'Asphalttragdeckschichtmischgut'
|
||||||
|
|
||||||
|
class TaskType(Enum):
|
||||||
|
|
||||||
|
SINGLE = "single"
|
||||||
|
FLOW = "flow"
|
||||||
|
|
||||||
class LabtestsEnum(Enum):
|
class LabtestsEnum(Enum):
|
||||||
# Performance
|
# Performance
|
||||||
@@ -61,16 +70,11 @@ class Config(Document):
|
|||||||
|
|
||||||
tags = ListField(StringField())
|
tags = ListField(StringField())
|
||||||
|
|
||||||
def to_dict(self, enabled=True):
|
def to_dict(self):
|
||||||
# convert data to dict
|
# convert data to dict
|
||||||
data = fetch_recursive(self)
|
data = fetch_recursive(self)
|
||||||
data = mongo_to_dict(data)
|
data = mongo_to_dict(data)
|
||||||
|
|
||||||
if enabled:
|
|
||||||
if data['enabled']:
|
|
||||||
return data
|
|
||||||
else:
|
|
||||||
return []
|
|
||||||
return data
|
return data
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
@@ -95,13 +99,10 @@ class Labtest(Config):
|
|||||||
eine Steuerung der verfügbaren Module. Die Versuche werden nachfolgend in
|
eine Steuerung der verfügbaren Module. Die Versuche werden nachfolgend in
|
||||||
Klasse/Kategorien eingeteil, um eine Trennung in Module zu ermöglichen."""
|
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)
|
test = EnumField(LabtestsEnum, required=True)
|
||||||
|
modul = ListField(EnumField(ModelSelection, required=True, default=ModelSelection.BASE))
|
||||||
|
typ = EnumField(TaskType, required=True, default=TaskType.SINGLE)
|
||||||
|
|
||||||
enabled = BooleanField(required=True, default=False)
|
|
||||||
|
|
||||||
class LabtestPerformAsphalt(Labtest):
|
class LabtestPerformAsphalt(Labtest):
|
||||||
""" Performanceprüfung Asphalt """
|
""" Performanceprüfung Asphalt """
|
||||||
|
|||||||
@@ -19,10 +19,6 @@ from .usermanagement import Organisation, User
|
|||||||
|
|
||||||
class Material(Document):
|
class Material(Document):
|
||||||
|
|
||||||
name = StringField(required=True)
|
|
||||||
producer = StringField(required=True)
|
|
||||||
|
|
||||||
|
|
||||||
date = DateTimeField(default=datetime.datetime.now,
|
date = DateTimeField(default=datetime.datetime.now,
|
||||||
wtf_options={"render_kw": {
|
wtf_options={"render_kw": {
|
||||||
"step": "60"
|
"step": "60"
|
||||||
@@ -32,16 +28,14 @@ class Material(Document):
|
|||||||
required=True,
|
required=True,
|
||||||
reverse_delete_rule=CASCADE)
|
reverse_delete_rule=CASCADE)
|
||||||
|
|
||||||
project_id = ListField(LazyReferenceField(Project,
|
|
||||||
required=False,
|
|
||||||
reverse_delete_rule=CASCADE),
|
|
||||||
required=False)
|
|
||||||
|
|
||||||
user_id = LazyReferenceField(User,
|
user_id = LazyReferenceField(User,
|
||||||
required=False,
|
required=True,
|
||||||
reverse_delete_rule=DO_NOTHING)
|
reverse_delete_rule=DO_NOTHING)
|
||||||
|
|
||||||
tags = ListField(StringField())
|
project_ids = ListField(LazyReferenceField(Project,
|
||||||
|
reverse_delete_rule=CASCADE),
|
||||||
|
required=False)
|
||||||
|
|
||||||
def to_dict(self):
|
def to_dict(self):
|
||||||
# convert data to dict
|
# convert data to dict
|
||||||
@@ -67,16 +61,17 @@ class Material(Document):
|
|||||||
|
|
||||||
class Asphalt(Material):
|
class Asphalt(Material):
|
||||||
|
|
||||||
norm = LazyReferenceField(NormDocumentAsphalt, required=True)
|
pass
|
||||||
limits = LazyReferenceField(EnumerateBase)
|
#limits = LazyReferenceField(EnumerateBase)
|
||||||
ce_marking = StringField(required=False) #CE Kennzeichen
|
|
||||||
|
|
||||||
# Bitumen
|
# Bitumen
|
||||||
class Bitumen(Material):
|
class Bitumen(Material):
|
||||||
|
|
||||||
norm = LazyReferenceField(NormDocumentBitumen, required=True)
|
pass
|
||||||
limits = LazyReferenceField(EnumerateBase)
|
|
||||||
ce_marking = StringField(required=False) #CE Kennzeichen
|
#norm = LazyReferenceField(NormDocumentBitumen, required=True)
|
||||||
|
#limits = LazyReferenceField(EnumerateBase)
|
||||||
|
#ce_marking = StringField(required=False) #CE Kennzeichen
|
||||||
|
|
||||||
|
|
||||||
class Bitumenemulsion(Material):
|
class Bitumenemulsion(Material):
|
||||||
@@ -102,13 +97,12 @@ class Kompaktasphalt(Material):
|
|||||||
|
|
||||||
class Aggregate(Material):
|
class Aggregate(Material):
|
||||||
|
|
||||||
norm = LazyReferenceField(NormDocumentAggregate, required=True)
|
pass
|
||||||
limits = LazyReferenceField(DeliveryGrain, required=True,
|
|
||||||
reverse_delete_rule=CASCADE) #Lieferkörnung
|
|
||||||
|
|
||||||
ce_marking = StringField(required=False) #CE Kennzeichen
|
|
||||||
|
|
||||||
|
|
||||||
|
class Additive(Material):
|
||||||
|
|
||||||
|
typ = StringField(required=True)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
172
src/paveit/datamodels/material_properties.py
Executable file
172
src/paveit/datamodels/material_properties.py
Executable file
@@ -0,0 +1,172 @@
|
|||||||
|
import datetime
|
||||||
|
|
||||||
|
from mongoengine import *
|
||||||
|
|
||||||
|
from paveit.helper import fetch_recursive, mongo_to_dict
|
||||||
|
|
||||||
|
from enum import Enum
|
||||||
|
|
||||||
|
from .material import Material, Additive
|
||||||
|
from .usermanagement import Organisation, User
|
||||||
|
|
||||||
|
from .enumeration import AsphaltCategoryEnum, BitumenCategoryEnum
|
||||||
|
from .norm_documents import (
|
||||||
|
NormDocumentAggregate,
|
||||||
|
NormDocumentAsphalt,
|
||||||
|
NormDocumentBitumen,
|
||||||
|
)
|
||||||
|
from .norm_specification import (
|
||||||
|
AsphaltParameterLimitsBaseEnum,
|
||||||
|
BitumenParameterLimitsBaseEnum
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class ProcessParameters(Enum):
|
||||||
|
"""
|
||||||
|
Typ der Wert:
|
||||||
|
NOMINAL: Istwer
|
||||||
|
SET: Sollwert
|
||||||
|
"""
|
||||||
|
|
||||||
|
NOMINAL = 'nominal'
|
||||||
|
SET = 'set'
|
||||||
|
|
||||||
|
|
||||||
|
class Address(EmbeddedDocument):
|
||||||
|
company = StringField()
|
||||||
|
|
||||||
|
street = StringField()
|
||||||
|
number = IntField()
|
||||||
|
city = StringField()
|
||||||
|
postal_code = IntField()
|
||||||
|
country = StringField()
|
||||||
|
|
||||||
|
class Additive(EmbeddedDocument):
|
||||||
|
|
||||||
|
additive_id = LazyReferenceField(Additive, required=True)
|
||||||
|
|
||||||
|
quantity = IntField()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class Propertie(Document):
|
||||||
|
|
||||||
|
material_id = LazyReferenceField(Material,
|
||||||
|
required=True,
|
||||||
|
reverse_delete_rule=CASCADE)
|
||||||
|
|
||||||
|
|
||||||
|
date = DateTimeField(default=datetime.datetime.now,
|
||||||
|
wtf_options={"render_kw": {
|
||||||
|
"step": "60"
|
||||||
|
}})
|
||||||
|
|
||||||
|
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': 'materialproperties',
|
||||||
|
"db_alias": 'dblabtests',
|
||||||
|
'indexes': [
|
||||||
|
[("material", 1)],
|
||||||
|
[("name", 1)],
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
# Additives
|
||||||
|
|
||||||
|
class PropertieAdditives(Propertie):
|
||||||
|
pass
|
||||||
|
|
||||||
|
class PropertieAdditivesMeta(PropertieAdditives):
|
||||||
|
|
||||||
|
name = StringField()
|
||||||
|
productnumber = StringField()
|
||||||
|
|
||||||
|
certificate_number = StringField()
|
||||||
|
certificate_date = IntField()
|
||||||
|
|
||||||
|
address = EmbeddedDocumentField(Address)
|
||||||
|
|
||||||
|
#category = LazyReferenceField(BitumenParameterLimitsBaseEnum, required=False)
|
||||||
|
|
||||||
|
|
||||||
|
# Aggregates
|
||||||
|
|
||||||
|
class PropertieAggregate(Propertie):
|
||||||
|
pass
|
||||||
|
|
||||||
|
class PropertieAggregateMeta(PropertieAggregate):
|
||||||
|
|
||||||
|
name = StringField()
|
||||||
|
productnumber = StringField()
|
||||||
|
|
||||||
|
certificate_number = StringField()
|
||||||
|
certificate_date = IntField()
|
||||||
|
|
||||||
|
mine = StringField()
|
||||||
|
address = EmbeddedDocumentField(Address)
|
||||||
|
|
||||||
|
category = LazyReferenceField(BitumenParameterLimitsBaseEnum, required=False)
|
||||||
|
|
||||||
|
|
||||||
|
# Bitumen
|
||||||
|
class PropertieBitumen(Propertie):
|
||||||
|
pass
|
||||||
|
|
||||||
|
class PropertieBitumenMeta(PropertieBitumen):
|
||||||
|
|
||||||
|
name = StringField()
|
||||||
|
productnumber = StringField()
|
||||||
|
|
||||||
|
certificate_number = StringField()
|
||||||
|
certificate_date = IntField()
|
||||||
|
|
||||||
|
address = EmbeddedDocumentField(Address)
|
||||||
|
|
||||||
|
category = LazyReferenceField(BitumenParameterLimitsBaseEnum, required=True)
|
||||||
|
|
||||||
|
|
||||||
|
# Asphate
|
||||||
|
class PropertieAsphalt(Propertie):
|
||||||
|
pass
|
||||||
|
|
||||||
|
class PropertieAsphaltMeta(PropertieAsphalt):
|
||||||
|
|
||||||
|
name = StringField()
|
||||||
|
productnumber = StringField()
|
||||||
|
|
||||||
|
recipenumber = StringField()
|
||||||
|
certificate_number = StringField()
|
||||||
|
certificate_date = IntField()
|
||||||
|
|
||||||
|
mixing_plant = StringField()
|
||||||
|
address = EmbeddedDocumentField(Address)
|
||||||
|
|
||||||
|
category = LazyReferenceField(AsphaltParameterLimitsBaseEnum, required=True)
|
||||||
|
|
||||||
|
class PropertieAsphaltBitumenContent(PropertieAsphalt):
|
||||||
|
|
||||||
|
process_parameter = EnumField(ProcessParameters, required=True) # Ist- oder Sollwert
|
||||||
|
|
||||||
|
quantity_bitumen = IntField()
|
||||||
|
quantity_additive_bitumen = IntField()
|
||||||
|
quantity_bitumen_total = IntField()
|
||||||
|
total_bituem_content = IntField()
|
||||||
|
elastic_recovery = IntField()
|
||||||
|
equistiffness_temperature = IntField()
|
||||||
|
phase_angle = IntField()
|
||||||
|
|
||||||
|
additives = ListField(EmbeddedDocumentField(Additive))
|
||||||
|
|
||||||
@@ -25,6 +25,9 @@ class EnumerateBase(Document):
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Addidive
|
||||||
|
class AdditiveEnum(EnumerateBase):
|
||||||
|
name = StringField()
|
||||||
|
|
||||||
# Gesteine
|
# Gesteine
|
||||||
class DeliveryGrain(EnumerateBase):
|
class DeliveryGrain(EnumerateBase):
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import datetime
|
import datetime
|
||||||
|
|
||||||
from mongoengine import *
|
from mongoengine import *
|
||||||
|
from .enumeration import ModelSelection
|
||||||
|
|
||||||
class Organisation(Document):
|
class Organisation(Document):
|
||||||
|
|
||||||
@@ -18,6 +18,8 @@ class Organisation(Document):
|
|||||||
|
|
||||||
domain = StringField(required=True)
|
domain = StringField(required=True)
|
||||||
|
|
||||||
|
modul = EnumField(ModelSelection, required=True, default=ModelSelection.BASE)
|
||||||
|
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
'allow_inheritance': True,
|
'allow_inheritance': True,
|
||||||
|
|||||||
Reference in New Issue
Block a user