mirror of
https://github.com/sartography/cr-connect-workflow.git
synced 2025-02-23 05:08:32 +00:00
Fixing adding a study so all workflows are again added, will add status on those workflows based on output from the master bpmn diagram, which is coming shortly.
68 lines
2.1 KiB
Python
68 lines
2.1 KiB
Python
import enum
|
|
|
|
import marshmallow
|
|
from marshmallow import EXCLUDE
|
|
from marshmallow_sqlalchemy import SQLAlchemyAutoSchema
|
|
|
|
from crc import db
|
|
|
|
|
|
class WorkflowSpecCategoryModel(db.Model):
|
|
__tablename__ = 'workflow_spec_category'
|
|
id = db.Column(db.Integer, primary_key=True)
|
|
name = db.Column(db.String)
|
|
display_name = db.Column(db.String)
|
|
display_order = db.Column(db.Integer)
|
|
|
|
|
|
class WorkflowSpecCategoryModelSchema(SQLAlchemyAutoSchema):
|
|
class Meta:
|
|
model = WorkflowSpecCategoryModel
|
|
load_instance = True
|
|
include_relationships = True
|
|
|
|
|
|
class WorkflowSpecModel(db.Model):
|
|
__tablename__ = 'workflow_spec'
|
|
id = db.Column(db.String, primary_key=True)
|
|
name = db.Column(db.String)
|
|
display_name = db.Column(db.String)
|
|
description = db.Column(db.Text)
|
|
primary_process_id = db.Column(db.String)
|
|
workflow_spec_category_id = db.Column(db.Integer, db.ForeignKey('workflow_spec_category.id'), nullable=True)
|
|
workflow_spec_category = db.relationship("WorkflowSpecCategoryModel")
|
|
is_master_spec = db.Column(db.Boolean, default=False)
|
|
|
|
|
|
class WorkflowSpecModelSchema(SQLAlchemyAutoSchema):
|
|
class Meta:
|
|
model = WorkflowSpecModel
|
|
load_instance = True
|
|
include_relationships = True
|
|
include_fk = True # Includes foreign keys
|
|
unknown = EXCLUDE
|
|
|
|
workflow_spec_category = marshmallow.fields.Nested(WorkflowSpecCategoryModelSchema, dump_only=True)
|
|
|
|
class WorkflowState(enum.Enum):
|
|
hidden = "hidden"
|
|
disabled = "disabled"
|
|
required = "required"
|
|
optional = "optional"
|
|
|
|
|
|
class WorkflowStatus(enum.Enum):
|
|
new = "new"
|
|
user_input_required = "user_input_required"
|
|
waiting = "waiting"
|
|
complete = "complete"
|
|
|
|
class WorkflowModel(db.Model):
|
|
__tablename__ = 'workflow'
|
|
id = db.Column(db.Integer, primary_key=True)
|
|
bpmn_workflow_json = db.Column(db.JSON)
|
|
status = db.Column(db.Enum(WorkflowStatus))
|
|
study_id = db.Column(db.Integer, db.ForeignKey('study.id'))
|
|
workflow_spec_id = db.Column(db.String, db.ForeignKey('workflow_spec.id'))
|
|
spec_version = db.Column(db.String)
|