mirror of
https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
synced 2024-11-14 16:55:42 +00:00
add user_corpus m2m relationship
This commit is contained in:
parent
0bf54ad00b
commit
7b20b11c6e
@ -257,7 +257,7 @@ class Avatar(HashidMixin, FileMixin, db.Model):
|
|||||||
# Primary key
|
# Primary key
|
||||||
id = db.Column(db.Integer, primary_key=True)
|
id = db.Column(db.Integer, primary_key=True)
|
||||||
# Foreign keys
|
# Foreign keys
|
||||||
user_id = db.Column(db.Integer, db.ForeignKey('users.id'), unique=True)
|
user_id = db.Column(db.Integer, db.ForeignKey('users.id'))
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def path(self):
|
def path(self):
|
||||||
@ -276,7 +276,16 @@ class Avatar(HashidMixin, FileMixin, db.Model):
|
|||||||
**self.file_mixin_to_json_serializeable()
|
**self.file_mixin_to_json_serializeable()
|
||||||
}
|
}
|
||||||
return json_serializeable
|
return json_serializeable
|
||||||
|
|
||||||
|
|
||||||
|
corpus_followers = db.Table(
|
||||||
|
'corpus_followers',
|
||||||
|
db.Model.metadata,
|
||||||
|
db.Column('user_id', db.ForeignKey('users.id'), primary_key=True),
|
||||||
|
db.Column('corpus_id', db.ForeignKey('corpora.id'), primary_key=True)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class User(HashidMixin, UserMixin, db.Model):
|
class User(HashidMixin, UserMixin, db.Model):
|
||||||
__tablename__ = 'users'
|
__tablename__ = 'users'
|
||||||
# Primary key
|
# Primary key
|
||||||
@ -327,6 +336,13 @@ class User(HashidMixin, UserMixin, db.Model):
|
|||||||
cascade='all, delete-orphan',
|
cascade='all, delete-orphan',
|
||||||
lazy='dynamic'
|
lazy='dynamic'
|
||||||
)
|
)
|
||||||
|
followed_corpora = db.relationship(
|
||||||
|
'Corpus',
|
||||||
|
secondary=corpus_followers,
|
||||||
|
primaryjoin=(corpus_followers.c.user_id == id),
|
||||||
|
backref=db.backref('followers', lazy='dynamic'),
|
||||||
|
lazy='dynamic'
|
||||||
|
)
|
||||||
jobs = db.relationship(
|
jobs = db.relationship(
|
||||||
'Job',
|
'Job',
|
||||||
backref='user',
|
backref='user',
|
||||||
|
31
migrations/versions/4aa88f253dab_.py
Normal file
31
migrations/versions/4aa88f253dab_.py
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
"""Add corpus_followers table
|
||||||
|
|
||||||
|
Revision ID: 4aa88f253dab
|
||||||
|
Revises: 5b2a6e590166
|
||||||
|
Create Date: 2023-01-12 14:47:39.492875
|
||||||
|
|
||||||
|
"""
|
||||||
|
from alembic import op
|
||||||
|
import sqlalchemy as sa
|
||||||
|
|
||||||
|
|
||||||
|
# revision identifiers, used by Alembic.
|
||||||
|
revision = '4aa88f253dab'
|
||||||
|
down_revision = '5b2a6e590166'
|
||||||
|
branch_labels = None
|
||||||
|
depends_on = None
|
||||||
|
|
||||||
|
|
||||||
|
def upgrade():
|
||||||
|
op.create_table(
|
||||||
|
'corpus_followers',
|
||||||
|
sa.Column('user_id', sa.Integer(), nullable=False),
|
||||||
|
sa.Column('corpus_id', sa.Integer(), nullable=False),
|
||||||
|
sa.ForeignKeyConstraint(['corpus_id'], ['corpora.id'], ),
|
||||||
|
sa.ForeignKeyConstraint(['user_id'], ['users.id'], ),
|
||||||
|
sa.PrimaryKeyConstraint('user_id', 'corpus_id')
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def downgrade():
|
||||||
|
op.drop_table('corpus_followers')
|
Loading…
Reference in New Issue
Block a user