roundabout,
created on Sunday, 21 July 2024, 13:38:12 (1721569092),
received on Wednesday, 31 July 2024, 06:54:51 (1722408891)
Author identity: vlad <vlad.muntoiu@gmail.com>
ff70854afdccb7878702715dbe881389a5dce0f6
models.py
@@ -180,6 +180,7 @@ with (app.app_context()):
bases = db.relationship("PullRequest", back_populates="base",
foreign_keys="[PullRequest.base_route]",
cascade="all, delete-orphan")
labels = db.relationship("Label", back_populates="repo", cascade="all, delete-orphan")
has_site = db.Column(db.SmallInteger, nullable=False, default=0, # 0 means no site, 1 means it's got a site, 2 means it's the user's primary site
server_default="0") # (the one accessible at username.localhost)
@@ -243,6 +244,36 @@ with (app.app_context()):
celery_tasks.send_notification.apply_async(args=[user_notification.id])
class Label(db.Model):
identifier = db.Column(db.String(162), unique=True, nullable=False, primary_key=True)
repo_name = db.Column(db.String(98), db.ForeignKey("repo.route"), nullable=False)
name = db.Column(db.Unicode(64), nullable=False)
colour = db.Column(db.String(7), nullable=False)
repo = db.relationship("Repo", back_populates="labels")
posts = db.relationship("PostLabel", back_populates="label")
def __init__(self, repo, name, colour):
self.identifier = f"{repo.route}/" + secrets.token_hex(32) # randomise label IDs
self.name = name
self.colour = colour
self.repo_name = repo.route
class PostLabel(db.Model):
id = db.Column(db.Integer, primary_key=True)
post_identifier = db.Column(db.String(109), db.ForeignKey("post.identifier"), nullable=False)
label_identifier = db.Column(db.String(64), db.ForeignKey("label.identifier"), nullable=False)
post = db.relationship("Post", back_populates="labels")
label = db.relationship("Label", back_populates="posts")
def __init__(self, post, label):
self.post_identifier = post.identifier
self.post = post
self.label = label
class Post(db.Model):
identifier = db.Column(db.String(109), unique=True, nullable=False, primary_key=True)
number = db.Column(db.Integer, nullable=False)
@@ -273,6 +304,7 @@ with (app.app_context()):
primaryjoin="Post.identifier==Post.parent_id",
foreign_keys="[Post.parent_id]")
resolved_by = db.relationship("PullRequestResolvesThread", back_populates="post")
labels = db.relationship("PostLabel", back_populates="post")
def __init__(self, owner, repo, parent, subject, message):
self.identifier = f"{repo.route}/{repo.last_post_id}"