Klassen für Straßenbaubitumen und Gesteinskörnung hinzugefügt

This commit is contained in:
2023-05-23 09:47:17 +02:00
parent 2d319f7dcc
commit c6bfe0353c
4 changed files with 148 additions and 3 deletions

View File

@@ -4,6 +4,7 @@ from .enumeration import *
from .infrastructure import *
from .material import *
from .metrics import *
from .norm_specification import *
from .project import *
from .sheartest import *
from .taskmanager import *

View File

@@ -24,3 +24,27 @@ class ProcessStatusEnum(Enum):
ONGOING = 'ongoing'
COMPLETED = 'completed'
ARCHIVE='archive'
class RelationalOperatorsEnum(Enum):
between = 'between'
lt = 'less than or equal to'
gt = 'greater than or equal to'
class BitumenCategoryEnum(Enum):
Strassenbau = "Straßenbaubitumen"
PmbA = "Elastomermodifizierte Bitumen"
PmbB = "Plastomermodifizierte Bitumen"
# Normen
class NormEnum(Enum):
#Bitumen
DINEN1426 = "DIN EN 1426"
DINEN1427 = "DIN EN 1427"
DINEN12607_1 = "DIN EN 12607-1"
DINEN12592 = "DIN EN 12592"
DINEN12593 = "DIN EN 12593"
DINISO2592 = "DIN EN ISO 2592"
#Gestein
TLGestein2018 = "'TL Gestein-StB 04 (2018)'"

View File

@@ -5,6 +5,7 @@ from mongoengine import *
from .project import Project
from .usermanagement import Organisation, User
from .norm_specification import DeliveryGrain
class Material(Document):
@@ -21,7 +22,7 @@ class Material(Document):
project_id = ListField(LazyReferenceField(Project,
required=False,
reverse_delete_rule=CASCADE),
required=True)
required=False)
user_id = LazyReferenceField(User,
required=False,
@@ -46,6 +47,7 @@ class Material(Document):
class Asphalt(Material):
norm = StringField(required=False, default='TP Asphalt Teil 24')
name = StringField()
material = StringField()
@@ -56,6 +58,7 @@ class Asphalt(Material):
class Bitumen(Material):
norm = StringField(required=False, default='TP Asphalt Teil 24')
name = StringField()
material = StringField()
@@ -64,6 +67,7 @@ class Bitumen(Material):
class Bitumenemulsion(Material):
norm = StringField(required=False, default='TP Asphalt Teil 24')
name = StringField()
material = StringField()
@@ -72,15 +76,29 @@ class Bitumenemulsion(Material):
class Epoxy(Material):
norm = StringField(required=False, default='TP Asphalt Teil 24')
name = StringField()
material = StringField()
young_modulus = DictField()
class Kompaktasphalt(Material):
norm = StringField(required=False, default='TP Asphalt Teil 24')
name = StringField()
class Aggregate(Material):
norm = StringField(required=True, default='TL Gestein-StB')
name = StringField(required=True)
delivery_grain = LazyReferenceField(DeliveryGrain,
required=True,
reverse_delete_rule=CASCADE) #Lieferkörnung
supply_source = StringField(required=True) #Bezugsquelle
ce_marking = StringField(required=True) #CE Kennzeichen
class Dummy(Material):

View File

@@ -0,0 +1,102 @@
from mongoengine import *
from .enumeration import RelationalOperatorsEnum, BitumenCategoryEnum, NormEnum
class EnumerateBase(Document):
meta = {
'allow_inheritance': True,
'index_opts': {},
'index_background': True,
'index_cls': False,
'auto_create_index': True,
'collection': 'norm_specification',
"db_alias": 'dblabtests',
}
# Gesteine
class DeliveryGrain(EnumerateBase):
name = StringField()
category = StringField()
norm = StringField(required=True, default='TL Gestein-StB 04 (2018)')
# Bitumen
class BitumenParameterTLBitumen2013Strassenbaubitumen(EnumerateBase):
penetration = FloatField(min_value=0, max_value=1000)
softening_point = FloatField(min_value=0, max_value =500)
flash_point = FloatField(min_value=0, max_value=500)
solubility = FloatField(default=99.0, min_value=0, max_value=100)
fraass_breaking_point = FloatField(min_value=-100, max_value=100)
hardening_resistance_penetration = FloatField(min_value=0, max_value=100)
hardening_resistance_softening_point= FloatField(min_value=0, max_value=100)
hardening_resistance_masschange = FloatField(min_value=0, max_value=100)
class BitumenParameterLimitsTLBitumen2013Strassenbaubitumen(EnumerateBase):
penetration_norm = EnumField(NormEnum, default=NormEnum.DINEN1426)
penetration_unit = StringField('0.1 mm')
penetration_operator = EnumField(RelationalOperatorsEnum, default=RelationalOperatorsEnum.between)
penetration_max = FloatField(min_value=0, max_value=1000)
penetration_min = FloatField(min_value=0, max_value=1000)
# Erweichungspunkt Ring und Kugel
softening_point_norm = EnumField(NormEnum, default=NormEnum.DINEN1427)
softening_point_unit = StringField('°C')
softening_point_operator = EnumField(RelationalOperatorsEnum, default=RelationalOperatorsEnum.between)
softening_point_min = FloatField(min_value=0, max_value=500)
softening_point_max = FloatField(min_value=0, max_value=500)
# Flammpunk
flash_point_norm = EnumField(NormEnum, default=NormEnum.DINISO2592)
flash_point_unit = StringField('°C')
flash_point_operator = EnumField(RelationalOperatorsEnum, default=RelationalOperatorsEnum.gt)
flash_point_min = FloatField(min_value=0, max_value=500)
# Löslichkeit
solubility_norm = EnumField(NormEnum, default=NormEnum.DINEN12592)
solubility_unit = StringField('%')
solubility_operator = EnumField(RelationalOperatorsEnum, default=RelationalOperatorsEnum.gt)
solubility_min = FloatField(default=99.0, min_value=0, max_value=100)
# Brechpunkt nach Fraaß
fraass_breaking_point_norm = EnumField(NormEnum, default=NormEnum.DINEN12593)
fraass_breaking_point_unit = StringField('°C')
fraass_breaking_point_operator = EnumField(RelationalOperatorsEnum, default=RelationalOperatorsEnum.lt)
fraass_breaking_point_max = FloatField(min_value=-100, max_value=100)
# Beständigkeit gegen Verhärtung unter Einfluss von Wärme und Luft
## verbleibende Penetration
hardening_resistance_penetration_norm = EnumField(NormEnum, default=NormEnum.DINEN1426)
hardening_resistance_penetration_unit = StringField('%')
hardening_resistance_penetration_operator = EnumField(RelationalOperatorsEnum, default=RelationalOperatorsEnum.gt)
hardening_resistance_penetration_min = FloatField(min_value=0, max_value=100)
## Zunahme des Erweichungspunktes Ring und Kugel
hardening_resistance_softening_point_norm = EnumField(NormEnum, default=NormEnum.DINEN1427)
hardening_resistance_softening_point_unit = StringField('°C')
hardening_resistance_softening_point_operator = EnumField(RelationalOperatorsEnum, default=RelationalOperatorsEnum.lt)
hardening_resistance_softening_point_max = FloatField(min_value=0, max_value=100)
## Massenänderung
hardening_resistance_masschange_norm = EnumField(NormEnum, default=NormEnum.DINEN12607_1)
hardening_resistance_masschange_unit = StringField('%')
hardening_resistance_masschange_operator = EnumField(RelationalOperatorsEnum, default=RelationalOperatorsEnum.lt)
hardening_resistance_masschange_max = FloatField(min_value=0, max_value=100)
class Bitumen(EnumerateBase):
name = StringField()
category = EnumField(BitumenCategoryEnum, required=True)
norm = EnumField(NormEnum, required=True)
parameter = ReferenceField(EnumerateBase)
limits = LazyReferenceField(EnumerateBase)
# Asphalt
class Asphalt(EnumerateBase):
name = StringField()
category = StringField()
norm = StringField(required=False, default='TL Gestein-StB 04 (2018)')