diff --git a/alembic/versions/a5fbdcd0e719_add_gspc_completions_table.py b/alembic/versions/a5fbdcd0e719_add_gspc_completions_table.py new file mode 100644 index 00000000..2d768acc --- /dev/null +++ b/alembic/versions/a5fbdcd0e719_add_gspc_completions_table.py @@ -0,0 +1,35 @@ +"""add gspc_completions table + +Revision ID: a5fbdcd0e719 +Revises: 51b251b1ec2a +Create Date: 2024-05-08 10:43:09.569708 + +""" +from alembic import op +import sqlalchemy as sa +from sqlalchemy.dialects import postgresql + + +# revision identifiers, used by Alembic. +revision = 'a5fbdcd0e719' +down_revision = '51b251b1ec2a' +branch_labels = None +depends_on = None + + +def upgrade() -> None: + op.create_table( + 'gspc_completions', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('user_id', sa.Integer(), nullable=False), + sa.Column('passed', sa.Boolean(), nullable=False), + sa.Column('certification_expiration_date', sa.Date, nullable=False), + sa.Column('submit_ts', sa.DateTime(), server_default=sa.text('now()'), nullable=False), + sa.Column('responses', postgresql.JSONB(astext_type=sa.Text()), nullable=False), + sa.ForeignKeyConstraint(['user_id'], ['users.id'], ), + sa.PrimaryKeyConstraint('id') + ) + + +def downgrade() -> None: + op.drop_table('gspc_completions') diff --git a/data/blank_certificates/c_gspc.pdf b/data/blank_certificates/c_gspc.pdf new file mode 100644 index 00000000..da0b5213 Binary files /dev/null and b/data/blank_certificates/c_gspc.pdf differ diff --git a/training-front-end/src/components/CertificateTable.vue b/training-front-end/src/components/CertificateTable.vue index f37bba57..908f3ce1 100644 --- a/training-front-end/src/components/CertificateTable.vue +++ b/training-front-end/src/components/CertificateTable.vue @@ -74,7 +74,7 @@