restructure materials, add additives
This commit is contained in:
@@ -6,6 +6,7 @@ from .enumeration import *
|
||||
from .labworks import *
|
||||
from .machines import *
|
||||
from .material import *
|
||||
from .material_properties import *
|
||||
from .messages import *
|
||||
from .metrics import *
|
||||
from .norm_documents import *
|
||||
|
||||
@@ -5,9 +5,14 @@ from mongoengine import *
|
||||
|
||||
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):
|
||||
"""Status eines Prozesses wie Projekt, Task
|
||||
|
||||
@@ -46,6 +51,10 @@ class AsphaltCategoryEnum(Enum):
|
||||
PA = "Offenporiger Asphalt"
|
||||
ACTD = 'Asphalttragdeckschichtmischgut'
|
||||
|
||||
class TaskType(Enum):
|
||||
|
||||
SINGLE = "single"
|
||||
FLOW = "flow"
|
||||
|
||||
class LabtestsEnum(Enum):
|
||||
# Performance
|
||||
@@ -61,16 +70,11 @@ class Config(Document):
|
||||
|
||||
tags = ListField(StringField())
|
||||
|
||||
def to_dict(self, enabled=True):
|
||||
def to_dict(self):
|
||||
# convert data to dict
|
||||
data = fetch_recursive(self)
|
||||
data = mongo_to_dict(data)
|
||||
|
||||
if enabled:
|
||||
if data['enabled']:
|
||||
return data
|
||||
else:
|
||||
return []
|
||||
return data
|
||||
|
||||
meta = {
|
||||
@@ -95,13 +99,10 @@ class Labtest(Config):
|
||||
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)
|
||||
modul = ListField(EnumField(ModelSelection, required=True, default=ModelSelection.BASE))
|
||||
typ = EnumField(TaskType, required=True, default=TaskType.SINGLE)
|
||||
|
||||
test = EnumField(LabtestsEnum, required=True)
|
||||
|
||||
enabled = BooleanField(required=True, default=False)
|
||||
|
||||
class LabtestPerformAsphalt(Labtest):
|
||||
""" Performanceprüfung Asphalt """
|
||||
|
||||
@@ -19,10 +19,6 @@ 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": {
|
||||
"step": "60"
|
||||
@@ -32,17 +28,15 @@ class Material(Document):
|
||||
required=True,
|
||||
reverse_delete_rule=CASCADE)
|
||||
|
||||
project_id = ListField(LazyReferenceField(Project,
|
||||
required=False,
|
||||
reverse_delete_rule=CASCADE),
|
||||
required=False)
|
||||
|
||||
user_id = LazyReferenceField(User,
|
||||
required=False,
|
||||
required=True,
|
||||
reverse_delete_rule=DO_NOTHING)
|
||||
|
||||
tags = ListField(StringField())
|
||||
|
||||
project_ids = ListField(LazyReferenceField(Project,
|
||||
reverse_delete_rule=CASCADE),
|
||||
required=False)
|
||||
|
||||
def to_dict(self):
|
||||
# convert data to dict
|
||||
data = fetch_recursive(self)
|
||||
@@ -67,16 +61,17 @@ class Material(Document):
|
||||
|
||||
class Asphalt(Material):
|
||||
|
||||
norm = LazyReferenceField(NormDocumentAsphalt, required=True)
|
||||
limits = LazyReferenceField(EnumerateBase)
|
||||
ce_marking = StringField(required=False) #CE Kennzeichen
|
||||
pass
|
||||
#limits = LazyReferenceField(EnumerateBase)
|
||||
|
||||
# Bitumen
|
||||
class Bitumen(Material):
|
||||
|
||||
norm = LazyReferenceField(NormDocumentBitumen, required=True)
|
||||
limits = LazyReferenceField(EnumerateBase)
|
||||
ce_marking = StringField(required=False) #CE Kennzeichen
|
||||
pass
|
||||
|
||||
#norm = LazyReferenceField(NormDocumentBitumen, required=True)
|
||||
#limits = LazyReferenceField(EnumerateBase)
|
||||
#ce_marking = StringField(required=False) #CE Kennzeichen
|
||||
|
||||
|
||||
class Bitumenemulsion(Material):
|
||||
@@ -102,13 +97,12 @@ class Kompaktasphalt(Material):
|
||||
|
||||
class Aggregate(Material):
|
||||
|
||||
norm = LazyReferenceField(NormDocumentAggregate, required=True)
|
||||
limits = LazyReferenceField(DeliveryGrain, required=True,
|
||||
reverse_delete_rule=CASCADE) #Lieferkörnung
|
||||
pass
|
||||
|
||||
|
||||
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
|
||||
class DeliveryGrain(EnumerateBase):
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import datetime
|
||||
|
||||
from mongoengine import *
|
||||
|
||||
from .enumeration import ModelSelection
|
||||
|
||||
class Organisation(Document):
|
||||
|
||||
@@ -18,6 +18,8 @@ class Organisation(Document):
|
||||
|
||||
domain = StringField(required=True)
|
||||
|
||||
modul = EnumField(ModelSelection, required=True, default=ModelSelection.BASE)
|
||||
|
||||
|
||||
meta = {
|
||||
'allow_inheritance': True,
|
||||
|
||||
Reference in New Issue
Block a user