diff --git a/app/api/schema/session_types.py b/app/api/schema/session_types.py index 06cdec6f7c..aa2c8f1ce6 100644 --- a/app/api/schema/session_types.py +++ b/app/api/schema/session_types.py @@ -42,6 +42,7 @@ def validate_length(self, data): id = fields.Str(dump_only=True) name = fields.Str(required=True) length = fields.Str(required=True) + position = fields.Integer(allow_none=True, default=0) event = Relationship( self_view='v1.session_type_event', self_view_kwargs={'id': ''}, diff --git a/app/api/schema/tracks.py b/app/api/schema/tracks.py index cc816e60c9..483db80d19 100644 --- a/app/api/schema/tracks.py +++ b/app/api/schema/tracks.py @@ -42,6 +42,7 @@ def valid_color(self, data): description = fields.Str(allow_none=True) color = fields.Str(required=True) font_color = fields.Str(allow_none=True, dump_only=True) + position = fields.Integer(allow_none=True, default=0) event = Relationship( self_view='v1.track_event', self_view_kwargs={'id': ''}, diff --git a/app/models/session_type.py b/app/models/session_type.py index 9957f1f68e..6fda5d0472 100644 --- a/app/models/session_type.py +++ b/app/models/session_type.py @@ -7,6 +7,7 @@ class SessionType(SoftDeletionModel): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String, nullable=False) length = db.Column(db.String, nullable=False) + position = db.Column(db.Integer, default=0, nullable=False) event_id = db.Column(db.Integer, db.ForeignKey('events.id', ondelete='CASCADE')) event = db.relationship("Event", backref="session_type", foreign_keys=[event_id]) sessions = db.relationship('Session', backref="session_type") diff --git a/app/models/track.py b/app/models/track.py index 6438531aca..5b5a6e7d63 100644 --- a/app/models/track.py +++ b/app/models/track.py @@ -12,6 +12,7 @@ class Track(SoftDeletionModel): color = db.Column(db.String, nullable=False) sessions = db.relationship('Session', backref='track') event_id = db.Column(db.Integer, db.ForeignKey('events.id', ondelete='CASCADE')) + position = db.Column(db.Integer, default=0, nullable=False) @staticmethod def get_service_name(): diff --git a/migrations/versions/rev-2023-08-08-15:14:57-7e91153d66b0_.py b/migrations/versions/rev-2023-08-08-15:14:57-7e91153d66b0_.py new file mode 100644 index 0000000000..b257a54962 --- /dev/null +++ b/migrations/versions/rev-2023-08-08-15:14:57-7e91153d66b0_.py @@ -0,0 +1,33 @@ +"""empty message + +Revision ID: 7e91153d66b0 +Revises: 3e8e18c0bebe +Create Date: 2023-08-08 15:14:57.455117 + +""" + +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '7e91153d66b0' +down_revision = '3e8e18c0bebe' + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.add_column('session_types', sa.Column('position', sa.Integer(), nullable=True)) + op.add_column('tracks', sa.Column('position', sa.Integer(), nullable=True)) + # ### end Alembic commands ### + op.execute("UPDATE session_types SET position = 0") + op.alter_column('session_types', 'position', nullable=False) + op.execute("UPDATE tracks SET position = 0") + op.alter_column('tracks', 'position', nullable=False) + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_column('tracks', 'position') + op.drop_column('session_types', 'position') + # ### end Alembic commands ###