Skip to content
Snippets Groups Projects
Commit 46633388 authored by Charlotte Hausman's avatar Charlotte Hausman
Browse files

add QA Staff table and columns

parent a04f809a
No related branches found
No related tags found
1 merge request!748add QA Staff table and columns
Pipeline #4147 passed
"""add DAs and AODs to db
Revision ID: 53b0c9f115f8
Revises: 702a4a776f9b
Create Date: 2022-01-24 13:05:18.476190
"""
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision = "53b0c9f115f8"
down_revision = "702a4a776f9b"
branch_labels = None
depends_on = None
def upgrade():
op.create_table(
"qa_staff",
sa.Column(
"user_name",
sa.String,
primary_key=True,
comment="The user name of the staff member performing QA.",
),
sa.Column(
"group",
sa.String,
comment="Is this staff member a DA or an AOD?",
),
sa.Column(
"available",
sa.Boolean,
default=True,
comment="Is this staff member available to be assigned QA jobs?",
),
comment="List of people capable of performing QA and their availability",
)
op.execute(
"""
ALTER TABLE capability_requests
ADD COLUMN assigned_da varchar
"""
)
op.execute(
"""
ALTER TABLE capability_requests
ADD COLUMN assigned_aod varchar
"""
)
def downgrade():
op.drop_table("qa_staff")
op.execute(
"""
ALTER TABLE capability_requests DROP COLUMN IF EXISTS assigned_da
"""
)
op.execute(
"""
ALTER TABLE capability_requests DROP COLUMN IF EXISTS assigned_aod
"""
)
......@@ -354,6 +354,48 @@ class State:
return self.state_name
@mapper_registry.mapped
class QaStaff(JSONSerializable):
"""
A staff member capable of performing QA actions
"""
user_name: str
group: str
available: bool
__tablename__ = "qa_staff"
user_name = sa.Column(
"user_name",
sa.String,
primary_key=True,
comment="The user name of the staff member performing QA.",
)
group = sa.Column(
"group",
sa.String,
comment="Is this staff member a DA or an AOD?",
)
available = sa.Column(
"available",
sa.Boolean,
default=True,
comment="Is this staff member available to be assigned QA jobs?",
)
@property
def is_available(self):
return self.available
def __json__(self, request=None) -> dict:
return {
"user_name": self.user_name,
"group": self.group,
"available": self.available,
}
@mapper_registry.mapped
class Capability(JSONSerializable):
"""
......@@ -529,7 +571,7 @@ class CapabilityRequest(JSONSerializable):
id = sa.Column("capability_request_id", sa.Integer, primary_key=True)
state = sa.Column("state", sa.String)
capability_name = sa.Column("capability_name", sa.String, sa.ForeignKey(CAPABILITY_NAME_FK))
sealed = sa.Column("sealed", sa.Boolean, default=False)
sealed = sa.Column("sealed", sa.Boolean, default=False, nullable=False)
ingested = sa.Column("ingested", sa.Boolean, default=False, server_default="false", nullable=False)
created_at = sa.Column(
"created_at",
......@@ -544,6 +586,16 @@ class CapabilityRequest(JSONSerializable):
server_onupdate=sa.func.now(),
nullable=False,
)
assigned_da = sa.Column(
"assigned_da",
sa.Integer,
sa.ForeignKey(QaStaff.user_name),
)
assigned_aod = sa.Column(
"assigned_aod",
sa.Integer,
sa.ForeignKey(QaStaff.user_name),
)
versions = relationship(
"CapabilityVersion",
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment