mirror of
https://github.com/sartography/cr-connect-workflow.git
synced 2025-02-22 20:58:28 +00:00
Merge branch 'master' into feature_personnel_multi_instance
This commit is contained in:
commit
288efff364
@ -44,7 +44,7 @@ class StudyModel(db.Model):
|
||||
|
||||
class WorkflowMetadata(object):
|
||||
def __init__(self, id, name, display_name, description, spec_version, category_id, state: WorkflowState, status: WorkflowStatus,
|
||||
total_tasks, completed_tasks):
|
||||
total_tasks, completed_tasks, display_order):
|
||||
self.id = id
|
||||
self.name = name
|
||||
self.display_name = display_name
|
||||
@ -55,6 +55,7 @@ class WorkflowMetadata(object):
|
||||
self.status = status
|
||||
self.total_tasks = total_tasks
|
||||
self.completed_tasks = completed_tasks
|
||||
self.display_order = display_order
|
||||
|
||||
|
||||
@classmethod
|
||||
@ -69,7 +70,9 @@ class WorkflowMetadata(object):
|
||||
state=WorkflowState.optional,
|
||||
status=workflow.status,
|
||||
total_tasks=workflow.total_tasks,
|
||||
completed_tasks=workflow.completed_tasks)
|
||||
completed_tasks=workflow.completed_tasks,
|
||||
display_order=workflow.workflow_spec.display_order
|
||||
)
|
||||
return instance
|
||||
|
||||
|
||||
@ -79,7 +82,7 @@ class WorkflowMetadataSchema(ma.Schema):
|
||||
class Meta:
|
||||
model = WorkflowMetadata
|
||||
additional = ["id", "name", "display_name", "description",
|
||||
"total_tasks", "completed_tasks"]
|
||||
"total_tasks", "completed_tasks", "display_order"]
|
||||
unknown = INCLUDE
|
||||
|
||||
|
||||
@ -152,4 +155,4 @@ class StudySchema(ma.Schema):
|
||||
@marshmallow.post_load
|
||||
def make_study(self, data, **kwargs):
|
||||
"""Can load the basic study data for updates to the database, but categories are write only"""
|
||||
return Study(**data)
|
||||
return Study(**data)
|
||||
|
@ -27,6 +27,7 @@ class WorkflowSpecModel(db.Model):
|
||||
id = db.Column(db.String, primary_key=True)
|
||||
name = db.Column(db.String)
|
||||
display_name = db.Column(db.String)
|
||||
display_order = db.Column(db.Integer, nullable=True)
|
||||
description = db.Column(db.Text)
|
||||
primary_process_id = db.Column(db.String)
|
||||
category_id = db.Column(db.Integer, db.ForeignKey('workflow_spec_category.id'), nullable=True)
|
||||
|
@ -78,80 +78,93 @@ class ExampleDataLoader:
|
||||
name="irb_api_personnel",
|
||||
display_name="IRB API Personnel",
|
||||
description="TBD",
|
||||
category_id=0)
|
||||
category_id=0,
|
||||
display_order=0)
|
||||
self.create_spec(id="irb_api_details",
|
||||
name="irb_api_details",
|
||||
display_name="Protocol Builder Data",
|
||||
description="TBD",
|
||||
category_id=0)
|
||||
category_id=0,
|
||||
display_order=1)
|
||||
|
||||
# Core Info
|
||||
self.create_spec(id="core_info",
|
||||
name="core_info",
|
||||
display_name="Core Info",
|
||||
description="TBD",
|
||||
category_id=1)
|
||||
category_id=1,
|
||||
display_order=0)
|
||||
self.create_spec(id="core_info_approvals_ids",
|
||||
name="core_info_approvals_ids",
|
||||
display_name="Core Info - Approvals - IDS",
|
||||
description="TBD",
|
||||
category_id=1)
|
||||
category_id=1,
|
||||
display_order=1)
|
||||
self.create_spec(id="core_info_data_security_plan_outside",
|
||||
name="core_info_data_security_plan_outside",
|
||||
display_name="Core Info - Data Security Plan - Outside",
|
||||
description="TBD",
|
||||
category_id=1)
|
||||
category_id=1,
|
||||
display_order=2)
|
||||
|
||||
# Approvals
|
||||
self.create_spec(id="ids_full_submission",
|
||||
name="ids_full_submission",
|
||||
display_name="Investigative Drug Services (IDS) Full Submission",
|
||||
description="TBD",
|
||||
category_id=2)
|
||||
category_id=2,
|
||||
display_order=0)
|
||||
self.create_spec(id="ids_waiver",
|
||||
name="ids_waiver",
|
||||
display_name="Investigational Drug Service (IDS) Waiver",
|
||||
description="TBD",
|
||||
category_id=2)
|
||||
category_id=2,
|
||||
display_order=1)
|
||||
|
||||
# Data Security Plan
|
||||
self.create_spec(id="data_security_plan_inside",
|
||||
name="data_security_plan_inside",
|
||||
display_name="Data Security Plan - Inside",
|
||||
description="TBD",
|
||||
category_id=3)
|
||||
category_id=3,
|
||||
display_order=0)
|
||||
self.create_spec(id="data_security_plan_outside",
|
||||
name="data_security_plan_outside",
|
||||
display_name="Data Security Plan - Outside",
|
||||
description="TBD",
|
||||
category_id=3)
|
||||
category_id=3,
|
||||
display_order=1)
|
||||
self.create_spec(id="data_security_plan_generate",
|
||||
name="data_security_plan_generate",
|
||||
display_name="Data Security Plan - Generate",
|
||||
description="TBD",
|
||||
category_id=3)
|
||||
category_id=3,
|
||||
display_order=2)
|
||||
|
||||
# Finance
|
||||
self.create_spec(id="sponsor_funding_source",
|
||||
name="sponsor_funding_source",
|
||||
display_name="Sponsor Funding Source",
|
||||
description="TBD",
|
||||
category_id=4)
|
||||
category_id=4,
|
||||
display_order=0)
|
||||
self.create_spec(id="finance",
|
||||
name="finance",
|
||||
display_name="Finance Data",
|
||||
description="TBD",
|
||||
category_id=4)
|
||||
category_id=4,
|
||||
display_order=1)
|
||||
|
||||
# Notifications
|
||||
self.create_spec(id="notifications",
|
||||
name="notifications",
|
||||
display_name="Notifications",
|
||||
description="TBD",
|
||||
category_id=5)
|
||||
category_id=5,
|
||||
display_order=0)
|
||||
|
||||
|
||||
def create_spec(self, id, name, display_name="", description="", filepath=None, master_spec=False, category_id=None):
|
||||
def create_spec(self, id, name, display_name="", description="", filepath=None, master_spec=False, category_id=None, display_order=None):
|
||||
"""Assumes that a directory exists in static/bpmn with the same name as the given id.
|
||||
further assumes that the [id].bpmn is the primary file for the workflow.
|
||||
returns an array of data models to be added to the database."""
|
||||
@ -162,7 +175,8 @@ class ExampleDataLoader:
|
||||
display_name=display_name,
|
||||
description=description,
|
||||
is_master_spec=master_spec,
|
||||
category_id=category_id)
|
||||
category_id=category_id,
|
||||
display_order=display_order)
|
||||
db.session.add(spec)
|
||||
db.session.commit()
|
||||
if not filepath:
|
||||
|
28
migrations/versions/7be7cecbeea8_.py
Normal file
28
migrations/versions/7be7cecbeea8_.py
Normal file
@ -0,0 +1,28 @@
|
||||
"""empty message
|
||||
|
||||
Revision ID: 7be7cecbeea8
|
||||
Revises: 7c0de7621a1f
|
||||
Create Date: 2020-04-09 14:23:37.384927
|
||||
|
||||
"""
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = '7be7cecbeea8'
|
||||
down_revision = '7c0de7621a1f'
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def upgrade():
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.add_column('workflow_spec', sa.Column('display_order', sa.Integer(), nullable=True))
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade():
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.drop_column('workflow_spec', 'display_order')
|
||||
# ### end Alembic commands ###
|
Loading…
x
Reference in New Issue
Block a user