import datetime from mongoengine import * from .machines import MachineBase from .material import Material from .project import Project from .usermanagement import Organisation, User from .workpackage import Workpackage from .enumeration import ProcessStatusEnum from .client import Client class TaskManagerBase(Document): org_id = LazyReferenceField(Organisation, required=True) user_id = LazyReferenceField(User, required=True) client_id = LazyReferenceField(Client, required=True) project_id = LazyReferenceField(Project, required=True) wp_id = LazyReferenceField(Workpackage, required=False) status = EnumField(ProcessStatusEnum, default=ProcessStatusEnum.ONGOING) task_added = DateTimeField(default=datetime.datetime.now, wtf_options={"r ender_kw": { "step": "60" }}) task_finished = DateTimeField(required=False) assign_users = ListField(LazyReferenceField(User), required=False) assign_machine = LazyReferenceField(MachineBase, required=False) series = StringField(default='Serie 01') meta = { 'allow_inheritance': True, 'index_opts': {}, 'index_background': True, 'index_cls': False, 'auto_create_index': True, 'collection': 'taskmanager', "db_alias": 'dblabtests', } class TaskCITTStiffness(TaskManagerBase): material = LazyReferenceField(Material, required=True) class TaskDynShearStiffness(TaskManagerBase): material = LazyReferenceField(Material, required=True) material2 = LazyReferenceField(Material, required=True) bounding = LazyReferenceField(Material, required=True)