117 lines
2.9 KiB
Python
Executable File
117 lines
2.9 KiB
Python
Executable File
import datetime
|
|
from re import T
|
|
|
|
from bson.json_util import loads
|
|
from mongoengine import *
|
|
|
|
from paveit.helper import fetch_recursive, mongo_to_dict
|
|
|
|
from .enumeration import AsphaltCategoryEnum, BitumenCategoryEnum
|
|
from .norm_documents import (
|
|
NormDocumentAggregate,
|
|
NormDocumentAsphalt,
|
|
NormDocumentBitumen,
|
|
)
|
|
from .norm_specification import DeliveryGrain, EnumerateBase, AdditiveEnum
|
|
from .project import Project
|
|
from .usermanagement import Organisation, User
|
|
|
|
|
|
class Material(Document):
|
|
|
|
date = DateTimeField(default=datetime.datetime.now,
|
|
wtf_options={"render_kw": {
|
|
"step": "60"
|
|
}})
|
|
|
|
org_id = LazyReferenceField(Organisation,
|
|
required=True,
|
|
reverse_delete_rule=CASCADE)
|
|
|
|
|
|
user_id = LazyReferenceField(User,
|
|
required=True,
|
|
reverse_delete_rule=DO_NOTHING)
|
|
|
|
project_ids = ListField(LazyReferenceField(Project,
|
|
reverse_delete_rule=CASCADE),
|
|
required=False)
|
|
|
|
archived = BooleanField(default=False)
|
|
|
|
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': 'materials',
|
|
"db_alias": 'dblabtests',
|
|
'indexes': [
|
|
[("material_id", 1)],
|
|
[("name", 1)],
|
|
]
|
|
}
|
|
|
|
|
|
class Asphalt(Material):
|
|
|
|
pass
|
|
#limits = LazyReferenceField(EnumerateBase)
|
|
|
|
# Bitumen
|
|
class Bitumen(Material):
|
|
|
|
pass
|
|
|
|
#norm = LazyReferenceField(NormDocumentBitumen, required=True)
|
|
#limits = LazyReferenceField(EnumerateBase)
|
|
#ce_marking = StringField(required=False) #CE Kennzeichen
|
|
|
|
|
|
class Bitumenemulsion(Material):
|
|
|
|
norm = StringField(required=False, default='TP Asphalt Teil 24')
|
|
limits = LazyReferenceField(EnumerateBase)
|
|
ce_marking = StringField(required=False) #CE Kennzeichen
|
|
|
|
|
|
class Epoxy(Material):
|
|
|
|
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):
|
|
|
|
pass
|
|
|
|
|
|
class Additive(Material):
|
|
|
|
category = LazyReferenceField(AdditiveEnum, required=True)
|
|
|
|
|
|
|
|
class Dummy(Material):
|
|
|
|
name = StringField()
|
|
material = StringField()
|
|
|
|
young_modulus = DictField()
|