]> git.lizzy.rs Git - cheatdb.git/blobdiff - app/models.py
Add Content Warnings
[cheatdb.git] / app / models.py
index e6ff6f094c19e639f44886651166eb7f825d5b88..b2dbcc044f5e08ac0e66519d1bd009a74382ec73 100644 (file)
@@ -358,6 +358,11 @@ Tags = db.Table("tags",
     db.Column("package_id", db.Integer, db.ForeignKey("package.id"), primary_key=True)
 )
 
+ContentWarnings = db.Table("content_warnings",
+    db.Column("content_warning_id", db.Integer, db.ForeignKey("content_warning.id"), primary_key=True),
+    db.Column("package_id", db.Integer, db.ForeignKey("package.id"), primary_key=True)
+)
+
 maintainers = db.Table("maintainers",
     db.Column("user_id", db.Integer, db.ForeignKey("user.id"), primary_key=True),
     db.Column("package_id", db.Integer, db.ForeignKey("package.id"), primary_key=True)
@@ -488,6 +493,9 @@ class Package(db.Model):
        tags = db.relationship("Tag", secondary=Tags, lazy="select",
                        backref=db.backref("packages", lazy=True))
 
+       content_warnings = db.relationship("ContentWarning", secondary=ContentWarnings, lazy="select",
+                       backref=db.backref("packages", lazy=True))
+
        releases = db.relationship("PackageRelease", backref="package",
                        lazy="dynamic", order_by=db.desc("package_release_releaseDate"))
 
@@ -816,6 +824,23 @@ class MetaPackage(db.Model):
 
                return retval
 
+
+class ContentWarning(db.Model):
+       id              = db.Column(db.Integer, primary_key=True)
+       name            = db.Column(db.String(100), unique=True, nullable=False)
+       title           = db.Column(db.String(100), nullable=False)
+       description     = db.Column(db.String(500), nullable=False)
+
+       def __init__(self, title, description=""):
+               self.title       = title
+               self.description = description
+
+               import re
+               regex = re.compile("[^a-z_]")
+               self.name = regex.sub("", self.title.lower().replace(" ", "_"))
+
+
+
 class Tag(db.Model):
        id              = db.Column(db.Integer, primary_key=True)
        name            = db.Column(db.String(100), unique=True, nullable=False)