diff --git a/app/models.py b/app/models.py index 973c7a84..246bb441 100644 --- a/app/models.py +++ b/app/models.py @@ -341,6 +341,10 @@ class Job(db.Model): cascade='save-update, merge, delete') results = db.relationship('JobResult', backref='job', lazy='dynamic', cascade='save-update, merge, delete') + notifications_data = db.relationship('NotificationData', + backref='job', + lazy='dynamic', + cascade='save-update, merge, delete') def __repr__(self): """ @@ -384,6 +388,24 @@ class Job(db.Model): 'title': self.title} +class NotificationData(db.Model): + """ + Class to define notification data used for sending a notification mail with + nopaque_notify. + """ + __tablename__ = 'notifications_data' + # Primary key + id = db.Column(db.Integer, primary_key=True) + # Foreign Key + job_id = db.Column(db.Integer, db.ForeignKey('jobs.id')) + # Fields + notified_on_submitted = db.Column(db.Boolean, default=False) + notified_on_queued = db.Column(db.Boolean, default=False) + notified_on_running = db.Column(db.Boolean, default=False) + notified_on_complete = db.Column(db.Boolean, default=False) + notified_on_canceling = db.Column(db.Boolean, default=False) + + class CorpusFile(db.Model): """ Class to define Files. diff --git a/migrations/versions/471aa04c1a92_.py b/migrations/versions/471aa04c1a92_.py new file mode 100644 index 00000000..c8cddf7e --- /dev/null +++ b/migrations/versions/471aa04c1a92_.py @@ -0,0 +1,38 @@ +"""empty message + +Revision ID: 471aa04c1a92 +Revises: 62233e0cb2c7 +Create Date: 2020-05-11 14:07:12.934869 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '471aa04c1a92' +down_revision = '62233e0cb2c7' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.create_table('notifications_data', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('job_id', sa.Integer(), nullable=True), + sa.Column('notified_on_submitted', sa.Boolean(), nullable=True), + sa.Column('notified_on_queued', sa.Boolean(), nullable=True), + sa.Column('notified_on_running', sa.Boolean(), nullable=True), + sa.Column('notified_on_complete', sa.Boolean(), nullable=True), + sa.Column('notified_on_canceling', sa.Boolean(), nullable=True), + sa.ForeignKeyConstraint(['job_id'], ['jobs.id'], ), + sa.PrimaryKeyConstraint('id') + ) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_table('notifications_data') + # ### end Alembic commands ###