Add Language and PackageTranslation models

This commit is contained in:
rubenwardy
2024-02-25 15:31:17 +00:00
parent 357348c24e
commit e138eb9c72
2 changed files with 70 additions and 0 deletions

View File

@@ -400,6 +400,7 @@ class Package(db.Model):
forums = db.Column(db.Integer, nullable=True)
video_url = db.Column(db.String(200), nullable=True, default=None)
donate_url = db.Column(db.String(200), nullable=True, default=None)
translation_url = db.Column(db.String(200), nullable=True)
@property
def donate_url_actual(self):
@@ -407,6 +408,10 @@ class Package(db.Model):
enable_game_support_detection = db.Column(db.Boolean, nullable=False, default=True)
translations = db.relationship("PackageTranslation", back_populates="package",
lazy="dynamic", order_by=db.asc("package_translation_language_id"),
cascade="all, delete, delete-orphan")
provides = db.relationship("MetaPackage", secondary=PackageProvides, order_by=db.asc("name"), back_populates="packages")
dependencies = db.relationship("Dependency", back_populates="depender", lazy="dynamic", foreign_keys=[Dependency.depender_id])
@@ -808,6 +813,23 @@ class Package(db.Model):
return [positive, neutral, negative]
class Language(db.Model):
id = db.Column(db.String(10), primary_key=True)
title = db.Column(db.String(100), unique=True, nullable=False)
class PackageTranslation(db.Model):
package_id = db.Column(db.Integer, db.ForeignKey("package.id"), primary_key=True)
package = db.relationship("Package", back_populates="translations", foreign_keys=[package_id])
language_id = db.Column(db.String(10), db.ForeignKey("language.id"), primary_key=True)
language = db.relationship("Language", foreign_keys=[language_id])
title = db.Column(db.Unicode(100), nullable=True)
short_desc = db.Column(db.Unicode(200), nullable=True)
desc = db.Column(db.UnicodeText, nullable=True)
class MetaPackage(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(100), unique=True, nullable=False)