diff --git a/backend/flaschengeist_events/migrations/e70508bd8cb4_init_events.py b/backend/flaschengeist_events/migrations/e70508bd8cb4_init_events.py index 08303e9..a4e8e23 100644 --- a/backend/flaschengeist_events/migrations/e70508bd8cb4_init_events.py +++ b/backend/flaschengeist_events/migrations/e70508bd8cb4_init_events.py @@ -11,82 +11,95 @@ import flaschengeist # revision identifiers, used by Alembic. -revision = 'e70508bd8cb4' +revision = "e70508bd8cb4" down_revision = None -branch_labels = ('events',) +branch_labels = ("events",) depends_on = "flaschengeist" def upgrade(): # ### commands auto generated by Alembic - please adjust! ### - op.create_table('events_event_type', - sa.Column('id', flaschengeist.database.types.Serial(), nullable=False), - sa.Column('name', sa.String(length=30), nullable=False), - sa.PrimaryKeyConstraint('id', name=op.f('pk_events_event_type')), - sa.UniqueConstraint('name', name=op.f('uq_events_event_type_name')) + op.create_table( + "events_event_type", + sa.Column("id", flaschengeist.database.types.Serial(), nullable=False), + sa.Column("name", sa.String(length=30), nullable=False), + sa.PrimaryKeyConstraint("id", name=op.f("pk_events_event_type")), + sa.UniqueConstraint("name", name=op.f("uq_events_event_type_name")), ) - op.create_table('events_job_type', - sa.Column('id', flaschengeist.database.types.Serial(), nullable=False), - sa.Column('name', sa.String(length=30), nullable=False), - sa.PrimaryKeyConstraint('id', name=op.f('pk_events_job_type')), - sa.UniqueConstraint('name', name=op.f('uq_events_job_type_name')) + op.create_table( + "events_job_type", + sa.Column("id", flaschengeist.database.types.Serial(), nullable=False), + sa.Column("name", sa.String(length=30), nullable=False), + sa.PrimaryKeyConstraint("id", name=op.f("pk_events_job_type")), + sa.UniqueConstraint("name", name=op.f("uq_events_job_type_name")), ) - op.create_table('events_event', - sa.Column('id', flaschengeist.database.types.Serial(), nullable=False), - sa.Column('start', flaschengeist.database.types.UtcDateTime(), nullable=False), - sa.Column('end', flaschengeist.database.types.UtcDateTime(), nullable=True), - sa.Column('name', sa.String(length=255), nullable=True), - sa.Column('description', sa.String(length=512), nullable=True), - sa.Column('is_template', sa.Boolean(), nullable=True), - sa.Column('type_id', flaschengeist.database.types.Serial(), nullable=False), - sa.ForeignKeyConstraint(['type_id'], ['events_event_type.id'], name=op.f('fk_events_event_type_id_events_event_type'), ondelete='CASCADE'), - sa.PrimaryKeyConstraint('id', name=op.f('pk_events_event')) + op.create_table( + "events_event", + sa.Column("id", flaschengeist.database.types.Serial(), nullable=False), + sa.Column("start", flaschengeist.database.types.UtcDateTime(), nullable=False), + sa.Column("end", flaschengeist.database.types.UtcDateTime(), nullable=True), + sa.Column("name", sa.String(length=255), nullable=True), + sa.Column("description", sa.String(length=512), nullable=True), + sa.Column("is_template", sa.Boolean(), nullable=True), + sa.Column("type_id", flaschengeist.database.types.Serial(), nullable=False), + sa.ForeignKeyConstraint( + ["type_id"], + ["events_event_type.id"], + name=op.f("fk_events_event_type_id_events_event_type"), + ondelete="CASCADE", + ), + sa.PrimaryKeyConstraint("id", name=op.f("pk_events_event")), ) - op.create_table('events_job', - sa.Column('id', flaschengeist.database.types.Serial(), nullable=False), - sa.Column('start', flaschengeist.database.types.UtcDateTime(), nullable=False), - sa.Column('end', flaschengeist.database.types.UtcDateTime(), nullable=True), - sa.Column('comment', sa.String(length=256), nullable=True), - sa.Column('type_id', flaschengeist.database.types.Serial(), nullable=False), - sa.Column('locked', sa.Boolean(), nullable=False), - sa.Column('required_services', sa.Numeric(precision=4, scale=2, asdecimal=False), nullable=False), - sa.Column('event_id', flaschengeist.database.types.Serial(), nullable=False), - sa.ForeignKeyConstraint(['event_id'], ['events_event.id'], name=op.f('fk_events_job_event_id_events_event')), - sa.ForeignKeyConstraint(['type_id'], ['events_job_type.id'], name=op.f('fk_events_job_type_id_events_job_type')), - sa.PrimaryKeyConstraint('id', name=op.f('pk_events_job')), - sa.UniqueConstraint('type_id', 'start', 'event_id', name='_type_start_uc') + op.create_table( + "events_job", + sa.Column("id", flaschengeist.database.types.Serial(), nullable=False), + sa.Column("start", flaschengeist.database.types.UtcDateTime(), nullable=False), + sa.Column("end", flaschengeist.database.types.UtcDateTime(), nullable=True), + sa.Column("comment", sa.String(length=256), nullable=True), + sa.Column("type_id", flaschengeist.database.types.Serial(), nullable=False), + sa.Column("locked", sa.Boolean(), nullable=False), + sa.Column("required_services", sa.Numeric(precision=4, scale=2, asdecimal=False), nullable=False), + sa.Column("event_id", flaschengeist.database.types.Serial(), nullable=False), + sa.ForeignKeyConstraint(["event_id"], ["events_event.id"], name=op.f("fk_events_job_event_id_events_event")), + sa.ForeignKeyConstraint( + ["type_id"], ["events_job_type.id"], name=op.f("fk_events_job_type_id_events_job_type") + ), + sa.PrimaryKeyConstraint("id", name=op.f("pk_events_job")), + sa.UniqueConstraint("type_id", "start", "event_id", name="_type_start_uc"), ) - op.create_table('events_invitation', - sa.Column('id', flaschengeist.database.types.Serial(), nullable=False), - sa.Column('time', flaschengeist.database.types.UtcDateTime(), nullable=False), - sa.Column('job_id', flaschengeist.database.types.Serial(), nullable=False), - sa.Column('invitee_id', flaschengeist.database.types.Serial(), nullable=False), - sa.Column('inviter_id', flaschengeist.database.types.Serial(), nullable=False), - sa.Column('transferee_id', flaschengeist.database.types.Serial(), nullable=True), - sa.ForeignKeyConstraint(['invitee_id'], ['user.id'], name=op.f('fk_events_invitation_invitee_id_user')), - sa.ForeignKeyConstraint(['inviter_id'], ['user.id'], name=op.f('fk_events_invitation_inviter_id_user')), - sa.ForeignKeyConstraint(['job_id'], ['events_job.id'], name=op.f('fk_events_invitation_job_id_events_job')), - sa.ForeignKeyConstraint(['transferee_id'], ['user.id'], name=op.f('fk_events_invitation_transferee_id_user')), - sa.PrimaryKeyConstraint('id', name=op.f('pk_events_invitation')) + op.create_table( + "events_invitation", + sa.Column("id", flaschengeist.database.types.Serial(), nullable=False), + sa.Column("time", flaschengeist.database.types.UtcDateTime(), nullable=False), + sa.Column("job_id", flaschengeist.database.types.Serial(), nullable=False), + sa.Column("invitee_id", flaschengeist.database.types.Serial(), nullable=False), + sa.Column("inviter_id", flaschengeist.database.types.Serial(), nullable=False), + sa.Column("transferee_id", flaschengeist.database.types.Serial(), nullable=True), + sa.ForeignKeyConstraint(["invitee_id"], ["user.id"], name=op.f("fk_events_invitation_invitee_id_user")), + sa.ForeignKeyConstraint(["inviter_id"], ["user.id"], name=op.f("fk_events_invitation_inviter_id_user")), + sa.ForeignKeyConstraint(["job_id"], ["events_job.id"], name=op.f("fk_events_invitation_job_id_events_job")), + sa.ForeignKeyConstraint(["transferee_id"], ["user.id"], name=op.f("fk_events_invitation_transferee_id_user")), + sa.PrimaryKeyConstraint("id", name=op.f("pk_events_invitation")), ) - op.create_table('events_service', - sa.Column('is_backup', sa.Boolean(), nullable=True), - sa.Column('value', sa.Numeric(precision=3, scale=2, asdecimal=False), nullable=False), - sa.Column('job_id', flaschengeist.database.types.Serial(), nullable=False), - sa.Column('user_id', flaschengeist.database.types.Serial(), nullable=False), - sa.ForeignKeyConstraint(['job_id'], ['events_job.id'], name=op.f('fk_events_service_job_id_events_job')), - sa.ForeignKeyConstraint(['user_id'], ['user.id'], name=op.f('fk_events_service_user_id_user')), - sa.PrimaryKeyConstraint('job_id', 'user_id', name=op.f('pk_events_service')) + op.create_table( + "events_service", + sa.Column("is_backup", sa.Boolean(), nullable=True), + sa.Column("value", sa.Numeric(precision=3, scale=2, asdecimal=False), nullable=False), + sa.Column("job_id", flaschengeist.database.types.Serial(), nullable=False), + sa.Column("user_id", flaschengeist.database.types.Serial(), nullable=False), + sa.ForeignKeyConstraint(["job_id"], ["events_job.id"], name=op.f("fk_events_service_job_id_events_job")), + sa.ForeignKeyConstraint(["user_id"], ["user.id"], name=op.f("fk_events_service_user_id_user")), + sa.PrimaryKeyConstraint("job_id", "user_id", name=op.f("pk_events_service")), ) # ### end Alembic commands ### def downgrade(): # ### commands auto generated by Alembic - please adjust! ### - op.drop_table('events_service') - op.drop_table('events_invitation') - op.drop_table('events_job') - op.drop_table('events_event') - op.drop_table('events_job_type') - op.drop_table('events_event_type') + op.drop_table("events_service") + op.drop_table("events_invitation") + op.drop_table("events_job") + op.drop_table("events_event") + op.drop_table("events_job_type") + op.drop_table("events_event_type") # ### end Alembic commands ### diff --git a/backend/flaschengeist_events/routes.py b/backend/flaschengeist_events/routes.py index e6542f6..3089a27 100644 --- a/backend/flaschengeist_events/routes.py +++ b/backend/flaschengeist_events/routes.py @@ -26,7 +26,7 @@ def dict_get(self, key, default=None, type=None): rv = type(rv) except (ValueError, TypeError): rv = default - + return rv @@ -458,7 +458,9 @@ def assign_job(job_id, current_session: Session): ): raise Forbidden if value > 0: - event_controller.assign_job(job, user, value, data.get("is_backup", False)) + event_controller.assign_job( + job, user, value, data.get("is_backup", False), notify=user != current_session.user_ + ) else: event_controller.unassign_job(job, user, notify=user != current_session.user_) except (TypeError, KeyError, ValueError):