mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
change(fastapi): refactor database ORM model definitions
We don't want to depend on the database to load up data about the models we define. We now leverage the existing `aurweb.schema` module for table definitions and set __table_args__["autoload"] to False. Signed-off-by: Kevin Morris <kevr@0cost.org>
This commit is contained in:
parent
e4a5b7fae9
commit
446a082352
31 changed files with 212 additions and 356 deletions
|
@ -1,28 +1,24 @@
|
||||||
from sqlalchemy import Column, ForeignKey, Integer
|
|
||||||
from sqlalchemy.exc import IntegrityError
|
from sqlalchemy.exc import IntegrityError
|
||||||
from sqlalchemy.orm import backref, relationship
|
from sqlalchemy.orm import backref, relationship
|
||||||
|
|
||||||
|
from aurweb import schema
|
||||||
from aurweb.models.declarative import Base
|
from aurweb.models.declarative import Base
|
||||||
from aurweb.models.term import Term as _Term
|
from aurweb.models.term import Term as _Term
|
||||||
from aurweb.models.user import User as _User
|
from aurweb.models.user import User as _User
|
||||||
|
|
||||||
|
|
||||||
class AcceptedTerm(Base):
|
class AcceptedTerm(Base):
|
||||||
__tablename__ = "AcceptedTerms"
|
__table__ = schema.AcceptedTerms
|
||||||
|
__tablename__ = __table__.name
|
||||||
|
__mapper_args__ = {"primary_key": [__table__.c.TermsID]}
|
||||||
|
|
||||||
UsersID = Column(Integer, ForeignKey("Users.ID", ondelete="CASCADE"),
|
|
||||||
nullable=False)
|
|
||||||
User = relationship(
|
User = relationship(
|
||||||
_User, backref=backref("accepted_terms", lazy="dynamic"),
|
_User, backref=backref("accepted_terms", lazy="dynamic"),
|
||||||
foreign_keys=[UsersID])
|
foreign_keys=[__table__.c.UsersID])
|
||||||
|
|
||||||
TermsID = Column(Integer, ForeignKey("Terms.ID", ondelete="CASCADE"),
|
|
||||||
nullable=False)
|
|
||||||
Term = relationship(
|
Term = relationship(
|
||||||
_Term, backref=backref("accepted_terms", lazy="dynamic"),
|
_Term, backref=backref("accepted_terms", lazy="dynamic"),
|
||||||
foreign_keys=[TermsID])
|
foreign_keys=[__table__.c.TermsID])
|
||||||
|
|
||||||
__mapper_args__ = {"primary_key": [TermsID]}
|
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
super().__init__(**kwargs)
|
super().__init__(**kwargs)
|
||||||
|
|
|
@ -1,6 +1,4 @@
|
||||||
from sqlalchemy import Column, Integer
|
from aurweb import schema
|
||||||
|
|
||||||
from aurweb import db
|
|
||||||
from aurweb.models.declarative import Base
|
from aurweb.models.declarative import Base
|
||||||
|
|
||||||
USER = "User"
|
USER = "User"
|
||||||
|
@ -8,37 +6,10 @@ TRUSTED_USER = "Trusted User"
|
||||||
DEVELOPER = "Developer"
|
DEVELOPER = "Developer"
|
||||||
TRUSTED_USER_AND_DEV = "Trusted User & Developer"
|
TRUSTED_USER_AND_DEV = "Trusted User & Developer"
|
||||||
|
|
||||||
|
USER_ID = 1
|
||||||
class AccountType(Base):
|
TRUSTED_USER_ID = 2
|
||||||
""" An ORM model of a single AccountTypes record. """
|
DEVELOPER_ID = 3
|
||||||
__tablename__ = "AccountTypes"
|
TRUSTED_USER_AND_DEV_ID = 4
|
||||||
|
|
||||||
ID = Column(Integer, primary_key=True)
|
|
||||||
|
|
||||||
__mapper_args__ = {"primary_key": [ID]}
|
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
|
||||||
self.AccountType = kwargs.pop("AccountType")
|
|
||||||
|
|
||||||
def __str__(self):
|
|
||||||
return str(self.AccountType)
|
|
||||||
|
|
||||||
def __repr__(self):
|
|
||||||
return "<AccountType(ID='%s', AccountType='%s')>" % (
|
|
||||||
self.ID, str(self))
|
|
||||||
|
|
||||||
|
|
||||||
# Fetch account type IDs from the database for constants.
|
|
||||||
_account_types = db.query(AccountType)
|
|
||||||
USER_ID = _account_types.filter(
|
|
||||||
AccountType.AccountType == USER).first().ID
|
|
||||||
TRUSTED_USER_ID = _account_types.filter(
|
|
||||||
AccountType.AccountType == TRUSTED_USER).first().ID
|
|
||||||
DEVELOPER_ID = _account_types.filter(
|
|
||||||
AccountType.AccountType == DEVELOPER).first().ID
|
|
||||||
TRUSTED_USER_AND_DEV_ID = _account_types.filter(
|
|
||||||
AccountType.AccountType == TRUSTED_USER_AND_DEV).first().ID
|
|
||||||
_account_types = None # Get rid of the query handle.
|
|
||||||
|
|
||||||
# Map string constants to integer constants.
|
# Map string constants to integer constants.
|
||||||
ACCOUNT_TYPE_ID = {
|
ACCOUNT_TYPE_ID = {
|
||||||
|
@ -50,3 +21,20 @@ ACCOUNT_TYPE_ID = {
|
||||||
|
|
||||||
# Reversed ACCOUNT_TYPE_ID mapping.
|
# Reversed ACCOUNT_TYPE_ID mapping.
|
||||||
ACCOUNT_TYPE_NAME = {v: k for k, v in ACCOUNT_TYPE_ID.items()}
|
ACCOUNT_TYPE_NAME = {v: k for k, v in ACCOUNT_TYPE_ID.items()}
|
||||||
|
|
||||||
|
|
||||||
|
class AccountType(Base):
|
||||||
|
""" An ORM model of a single AccountTypes record. """
|
||||||
|
__table__ = schema.AccountTypes
|
||||||
|
__tablename__ = __table__.name
|
||||||
|
__mapper_args__ = {"primary_key": [__table__.c.ID]}
|
||||||
|
|
||||||
|
def __init__(self, **kwargs):
|
||||||
|
self.AccountType = kwargs.pop("AccountType")
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return str(self.AccountType)
|
||||||
|
|
||||||
|
def __repr__(self):
|
||||||
|
return "<AccountType(ID='%s', AccountType='%s')>" % (
|
||||||
|
self.ID, str(self))
|
||||||
|
|
|
@ -1,15 +1,13 @@
|
||||||
from sqlalchemy import Column, String
|
|
||||||
from sqlalchemy.exc import IntegrityError
|
from sqlalchemy.exc import IntegrityError
|
||||||
|
|
||||||
|
from aurweb import schema
|
||||||
from aurweb.models.declarative import Base
|
from aurweb.models.declarative import Base
|
||||||
|
|
||||||
|
|
||||||
class ApiRateLimit(Base):
|
class ApiRateLimit(Base):
|
||||||
__tablename__ = "ApiRateLimit"
|
__table__ = schema.ApiRateLimit
|
||||||
|
__tablename__ = __table__.name
|
||||||
IP = Column(String(45), primary_key=True, unique=True, default=str())
|
__mapper_args__ = {"primary_key": [__table__.c.IP]}
|
||||||
|
|
||||||
__mapper_args__ = {"primary_key": [IP]}
|
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
super().__init__(**kwargs)
|
super().__init__(**kwargs)
|
||||||
|
|
|
@ -1,15 +1,13 @@
|
||||||
from fastapi import Request
|
from fastapi import Request
|
||||||
from sqlalchemy import Column, String
|
|
||||||
|
|
||||||
|
from aurweb import schema
|
||||||
from aurweb.models.declarative import Base
|
from aurweb.models.declarative import Base
|
||||||
|
|
||||||
|
|
||||||
class Ban(Base):
|
class Ban(Base):
|
||||||
__tablename__ = "Bans"
|
__table__ = schema.Bans
|
||||||
|
__tablename__ = __table__.name
|
||||||
IPAddress = Column(String(45), primary_key=True)
|
__mapper_args__ = {"primary_key": [__table__.c.IPAddress]}
|
||||||
|
|
||||||
__mapper_args__ = {"primary_key": [IPAddress]}
|
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
self.IPAddress = kwargs.get("IPAddress")
|
self.IPAddress = kwargs.get("IPAddress")
|
||||||
|
|
|
@ -2,8 +2,6 @@ import json
|
||||||
|
|
||||||
from sqlalchemy.ext.declarative import declarative_base
|
from sqlalchemy.ext.declarative import declarative_base
|
||||||
|
|
||||||
import aurweb.db
|
|
||||||
|
|
||||||
from aurweb import util
|
from aurweb import util
|
||||||
|
|
||||||
|
|
||||||
|
@ -25,12 +23,10 @@ Base = declarative_base()
|
||||||
|
|
||||||
# Setup __table_args__ applicable to every table.
|
# Setup __table_args__ applicable to every table.
|
||||||
Base.__table_args__ = {
|
Base.__table_args__ = {
|
||||||
"autoload": True,
|
"autoload": False,
|
||||||
"autoload_with": aurweb.db.get_engine(),
|
|
||||||
"extend_existing": True
|
"extend_existing": True
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# Setup Base.as_dict and Base.json.
|
# Setup Base.as_dict and Base.json.
|
||||||
#
|
#
|
||||||
# With this, declarative models can use .as_dict() or .json()
|
# With this, declarative models can use .as_dict() or .json()
|
||||||
|
|
|
@ -1,6 +1,4 @@
|
||||||
from sqlalchemy import Column, Integer
|
from aurweb import schema
|
||||||
|
|
||||||
from aurweb import db
|
|
||||||
from aurweb.models.declarative import Base
|
from aurweb.models.declarative import Base
|
||||||
|
|
||||||
DEPENDS = "depends"
|
DEPENDS = "depends"
|
||||||
|
@ -8,23 +6,16 @@ MAKEDEPENDS = "makedepends"
|
||||||
CHECKDEPENDS = "checkdepends"
|
CHECKDEPENDS = "checkdepends"
|
||||||
OPTDEPENDS = "optdepends"
|
OPTDEPENDS = "optdepends"
|
||||||
|
|
||||||
|
DEPENDS_ID = 1
|
||||||
|
MAKEDEPENDS_ID = 2
|
||||||
|
CHECKDEPENDS_ID = 3
|
||||||
|
OPTDEPENDS_ID = 4
|
||||||
|
|
||||||
|
|
||||||
class DependencyType(Base):
|
class DependencyType(Base):
|
||||||
__tablename__ = "DependencyTypes"
|
__table__ = schema.DependencyTypes
|
||||||
|
__tablename__ = __table__.name
|
||||||
ID = Column(Integer, primary_key=True)
|
__mapper_args__ = {"primary_key": [__table__.c.ID]}
|
||||||
|
|
||||||
__mapper_args__ = {"primary_key": [ID]}
|
|
||||||
|
|
||||||
def __init__(self, Name: str = None):
|
def __init__(self, Name: str = None):
|
||||||
self.Name = Name
|
self.Name = Name
|
||||||
|
|
||||||
|
|
||||||
DEPENDS_ID = db.query(DependencyType).filter(
|
|
||||||
DependencyType.Name == DEPENDS).first().ID
|
|
||||||
MAKEDEPENDS_ID = db.query(DependencyType).filter(
|
|
||||||
DependencyType.Name == MAKEDEPENDS).first().ID
|
|
||||||
CHECKDEPENDS_ID = db.query(DependencyType).filter(
|
|
||||||
DependencyType.Name == CHECKDEPENDS).first().ID
|
|
||||||
OPTDEPENDS_ID = db.query(DependencyType).filter(
|
|
||||||
DependencyType.Name == OPTDEPENDS).first().ID
|
|
||||||
|
|
|
@ -1,15 +1,13 @@
|
||||||
from sqlalchemy import Column, Integer
|
|
||||||
from sqlalchemy.exc import IntegrityError
|
from sqlalchemy.exc import IntegrityError
|
||||||
|
|
||||||
|
from aurweb import schema
|
||||||
from aurweb.models.declarative import Base
|
from aurweb.models.declarative import Base
|
||||||
|
|
||||||
|
|
||||||
class Group(Base):
|
class Group(Base):
|
||||||
__tablename__ = "Groups"
|
__table__ = schema.Groups
|
||||||
|
__tablename__ = __table__.name
|
||||||
ID = Column(Integer, primary_key=True)
|
__mapper_args__ = {"primary_key": [__table__.c.ID]}
|
||||||
|
|
||||||
__mapper_args__ = {"primary_key": [ID]}
|
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
super().__init__(**kwargs)
|
super().__init__(**kwargs)
|
||||||
|
|
|
@ -1,15 +1,13 @@
|
||||||
from sqlalchemy import Column, Integer
|
|
||||||
from sqlalchemy.exc import IntegrityError
|
from sqlalchemy.exc import IntegrityError
|
||||||
|
|
||||||
|
from aurweb import schema
|
||||||
from aurweb.models.declarative import Base
|
from aurweb.models.declarative import Base
|
||||||
|
|
||||||
|
|
||||||
class License(Base):
|
class License(Base):
|
||||||
__tablename__ = "Licenses"
|
__table__ = schema.Licenses
|
||||||
|
__tablename__ = __table__.name
|
||||||
ID = Column(Integer, primary_key=True)
|
__mapper_args__ = {"primary_key": [__table__.c.ID]}
|
||||||
|
|
||||||
__mapper_args__ = {"primary_key": [ID]}
|
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
super().__init__(**kwargs)
|
super().__init__(**kwargs)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
from sqlalchemy import Column, Integer
|
|
||||||
from sqlalchemy.exc import IntegrityError
|
from sqlalchemy.exc import IntegrityError
|
||||||
|
|
||||||
|
from aurweb import schema
|
||||||
from aurweb.models.declarative import Base
|
from aurweb.models.declarative import Base
|
||||||
|
|
||||||
# TODO: Fix this! Official packages aren't from aur.archlinux.org...
|
# TODO: Fix this! Official packages aren't from aur.archlinux.org...
|
||||||
|
@ -8,11 +8,9 @@ OFFICIAL_BASE = "https://aur.archlinux.org"
|
||||||
|
|
||||||
|
|
||||||
class OfficialProvider(Base):
|
class OfficialProvider(Base):
|
||||||
__tablename__ = "OfficialProviders"
|
__table__ = schema.OfficialProviders
|
||||||
|
__tablename__ = __table__.name
|
||||||
ID = Column(Integer, primary_key=True)
|
__mapper_args__ = {"primary_key": [__table__.c.ID]}
|
||||||
|
|
||||||
__mapper_args__ = {"primary_key": [ID]}
|
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
super().__init__(**kwargs)
|
super().__init__(**kwargs)
|
||||||
|
|
|
@ -1,24 +1,19 @@
|
||||||
from sqlalchemy import Column, ForeignKey, Integer
|
|
||||||
from sqlalchemy.exc import IntegrityError
|
from sqlalchemy.exc import IntegrityError
|
||||||
from sqlalchemy.orm import backref, relationship
|
from sqlalchemy.orm import backref, relationship
|
||||||
|
|
||||||
|
from aurweb import schema
|
||||||
from aurweb.models.declarative import Base
|
from aurweb.models.declarative import Base
|
||||||
from aurweb.models.package_base import PackageBase as _PackageBase
|
from aurweb.models.package_base import PackageBase as _PackageBase
|
||||||
|
|
||||||
|
|
||||||
class Package(Base):
|
class Package(Base):
|
||||||
__tablename__ = "Packages"
|
__table__ = schema.Packages
|
||||||
|
__tablename__ = __table__.name
|
||||||
|
__mapper_args__ = {"primary_key": [__table__.c.ID]}
|
||||||
|
|
||||||
ID = Column(Integer, primary_key=True)
|
|
||||||
|
|
||||||
PackageBaseID = Column(
|
|
||||||
Integer, ForeignKey("PackageBases.ID", ondelete="CASCADE"),
|
|
||||||
nullable=False)
|
|
||||||
PackageBase = relationship(
|
PackageBase = relationship(
|
||||||
_PackageBase, backref=backref("packages", lazy="dynamic"),
|
_PackageBase, backref=backref("packages", lazy="dynamic"),
|
||||||
foreign_keys=[PackageBaseID])
|
foreign_keys=[__table__.c.PackageBaseID])
|
||||||
|
|
||||||
__mapper_args__ = {"primary_key": [ID]}
|
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
super().__init__(**kwargs)
|
super().__init__(**kwargs)
|
||||||
|
|
|
@ -1,38 +1,33 @@
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
from sqlalchemy import Column, ForeignKey, Integer
|
|
||||||
from sqlalchemy.exc import IntegrityError
|
from sqlalchemy.exc import IntegrityError
|
||||||
from sqlalchemy.orm import backref, relationship
|
from sqlalchemy.orm import backref, relationship
|
||||||
|
|
||||||
|
from aurweb import schema
|
||||||
from aurweb.models.declarative import Base
|
from aurweb.models.declarative import Base
|
||||||
from aurweb.models.user import User as _User
|
from aurweb.models.user import User as _User
|
||||||
|
|
||||||
|
|
||||||
class PackageBase(Base):
|
class PackageBase(Base):
|
||||||
__tablename__ = "PackageBases"
|
__table__ = schema.PackageBases
|
||||||
|
__tablename__ = __table__.name
|
||||||
|
__mapper_args__ = {"primary_key": [__table__.c.ID]}
|
||||||
|
|
||||||
FlaggerUID = Column(Integer,
|
|
||||||
ForeignKey("Users.ID", ondelete="SET NULL"))
|
|
||||||
Flagger = relationship(
|
Flagger = relationship(
|
||||||
_User, backref=backref("flagged_bases", lazy="dynamic"),
|
_User, backref=backref("flagged_bases", lazy="dynamic"),
|
||||||
foreign_keys=[FlaggerUID])
|
foreign_keys=[__table__.c.FlaggerUID])
|
||||||
|
|
||||||
SubmitterUID = Column(Integer,
|
|
||||||
ForeignKey("Users.ID", ondelete="SET NULL"))
|
|
||||||
Submitter = relationship(
|
Submitter = relationship(
|
||||||
_User, backref=backref("submitted_bases", lazy="dynamic"),
|
_User, backref=backref("submitted_bases", lazy="dynamic"),
|
||||||
foreign_keys=[SubmitterUID])
|
foreign_keys=[__table__.c.SubmitterUID])
|
||||||
|
|
||||||
MaintainerUID = Column(Integer,
|
|
||||||
ForeignKey("Users.ID", ondelete="SET NULL"))
|
|
||||||
Maintainer = relationship(
|
Maintainer = relationship(
|
||||||
_User, backref=backref("maintained_bases", lazy="dynamic"),
|
_User, backref=backref("maintained_bases", lazy="dynamic"),
|
||||||
foreign_keys=[MaintainerUID])
|
foreign_keys=[__table__.c.MaintainerUID])
|
||||||
|
|
||||||
PackagerUID = Column(Integer, ForeignKey("Users.ID", ondelete="SET NULL"))
|
|
||||||
Packager = relationship(
|
Packager = relationship(
|
||||||
_User, backref=backref("package_bases", lazy="dynamic"),
|
_User, backref=backref("package_bases", lazy="dynamic"),
|
||||||
foreign_keys=[PackagerUID])
|
foreign_keys=[__table__.c.PackagerUID])
|
||||||
|
|
||||||
# A set used to check for floatable values.
|
# A set used to check for floatable values.
|
||||||
TO_FLOAT = {"Popularity"}
|
TO_FLOAT = {"Popularity"}
|
||||||
|
|
|
@ -1,15 +1,13 @@
|
||||||
from sqlalchemy import Column, Integer
|
|
||||||
from sqlalchemy.exc import IntegrityError
|
from sqlalchemy.exc import IntegrityError
|
||||||
|
|
||||||
|
from aurweb import schema
|
||||||
from aurweb.models.declarative import Base
|
from aurweb.models.declarative import Base
|
||||||
|
|
||||||
|
|
||||||
class PackageBlacklist(Base):
|
class PackageBlacklist(Base):
|
||||||
__tablename__ = "PackageBlacklist"
|
__table__ = schema.PackageBlacklist
|
||||||
|
__tablename__ = __table__.name
|
||||||
ID = Column(Integer, primary_key=True)
|
__mapper_args__ = {"primary_key": [__table__.c.ID]}
|
||||||
|
|
||||||
__mapper_args__ = {"primary_key": [ID]}
|
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
super().__init__(**kwargs)
|
super().__init__(**kwargs)
|
||||||
|
|
|
@ -1,30 +1,26 @@
|
||||||
from sqlalchemy import Column, ForeignKey, Integer
|
|
||||||
from sqlalchemy.exc import IntegrityError
|
from sqlalchemy.exc import IntegrityError
|
||||||
from sqlalchemy.orm import backref, relationship
|
from sqlalchemy.orm import backref, relationship
|
||||||
|
|
||||||
|
from aurweb import schema
|
||||||
from aurweb.models.declarative import Base
|
from aurweb.models.declarative import Base
|
||||||
from aurweb.models.package_base import PackageBase as _PackageBase
|
from aurweb.models.package_base import PackageBase as _PackageBase
|
||||||
from aurweb.models.user import User as _User
|
from aurweb.models.user import User as _User
|
||||||
|
|
||||||
|
|
||||||
class PackageComaintainer(Base):
|
class PackageComaintainer(Base):
|
||||||
__tablename__ = "PackageComaintainers"
|
__table__ = schema.PackageComaintainers
|
||||||
|
__tablename__ = __table__.name
|
||||||
|
__mapper_args__ = {
|
||||||
|
"primary_key": [__table__.c.UsersID, __table__.c.PackageBaseID]
|
||||||
|
}
|
||||||
|
|
||||||
UsersID = Column(
|
|
||||||
Integer, ForeignKey("Users.ID", ondelete="CASCADE"),
|
|
||||||
nullable=False)
|
|
||||||
User = relationship(
|
User = relationship(
|
||||||
_User, backref=backref("comaintained", lazy="dynamic"),
|
_User, backref=backref("comaintained", lazy="dynamic"),
|
||||||
foreign_keys=[UsersID])
|
foreign_keys=[__table__.c.UsersID])
|
||||||
|
|
||||||
PackageBaseID = Column(
|
|
||||||
Integer, ForeignKey("PackageBases.ID", ondelete="CASCADE"),
|
|
||||||
nullable=False)
|
|
||||||
PackageBase = relationship(
|
PackageBase = relationship(
|
||||||
_PackageBase, backref=backref("comaintainers", lazy="dynamic"),
|
_PackageBase, backref=backref("comaintainers", lazy="dynamic"),
|
||||||
foreign_keys=[PackageBaseID])
|
foreign_keys=[__table__.c.PackageBaseID])
|
||||||
|
|
||||||
__mapper_args__ = {"primary_key": [UsersID, PackageBaseID]}
|
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
super().__init__(**kwargs)
|
super().__init__(**kwargs)
|
||||||
|
|
|
@ -1,43 +1,33 @@
|
||||||
from sqlalchemy import Column, ForeignKey, Integer
|
|
||||||
from sqlalchemy.exc import IntegrityError
|
from sqlalchemy.exc import IntegrityError
|
||||||
from sqlalchemy.orm import backref, relationship
|
from sqlalchemy.orm import backref, relationship
|
||||||
|
|
||||||
|
from aurweb import schema
|
||||||
from aurweb.models.declarative import Base
|
from aurweb.models.declarative import Base
|
||||||
from aurweb.models.package_base import PackageBase as _PackageBase
|
from aurweb.models.package_base import PackageBase as _PackageBase
|
||||||
from aurweb.models.user import User as _User
|
from aurweb.models.user import User as _User
|
||||||
|
|
||||||
|
|
||||||
class PackageComment(Base):
|
class PackageComment(Base):
|
||||||
__tablename__ = "PackageComments"
|
__table__ = schema.PackageComments
|
||||||
|
__tablename__ = __table__.name
|
||||||
|
__mapper_args__ = {"primary_key": [__table__.c.ID]}
|
||||||
|
|
||||||
ID = Column(Integer, primary_key=True)
|
|
||||||
|
|
||||||
PackageBaseID = Column(
|
|
||||||
Integer, ForeignKey("PackageBases.ID", ondelete="CASCADE"),
|
|
||||||
nullable=False)
|
|
||||||
PackageBase = relationship(
|
PackageBase = relationship(
|
||||||
_PackageBase, backref=backref("comments", lazy="dynamic",
|
_PackageBase, backref=backref("comments", lazy="dynamic",
|
||||||
cascade="all, delete"),
|
cascade="all, delete"),
|
||||||
foreign_keys=[PackageBaseID])
|
foreign_keys=[__table__.c.PackageBaseID])
|
||||||
|
|
||||||
UsersID = Column(Integer, ForeignKey("Users.ID", ondelete="SET NULL"))
|
|
||||||
User = relationship(
|
User = relationship(
|
||||||
_User, backref=backref("package_comments", lazy="dynamic"),
|
_User, backref=backref("package_comments", lazy="dynamic"),
|
||||||
foreign_keys=[UsersID])
|
foreign_keys=[__table__.c.UsersID])
|
||||||
|
|
||||||
EditedUsersID = Column(
|
|
||||||
Integer, ForeignKey("Users.ID", ondelete="SET NULL"))
|
|
||||||
Editor = relationship(
|
Editor = relationship(
|
||||||
_User, backref=backref("edited_comments", lazy="dynamic"),
|
_User, backref=backref("edited_comments", lazy="dynamic"),
|
||||||
foreign_keys=[EditedUsersID])
|
foreign_keys=[__table__.c.EditedUsersID])
|
||||||
|
|
||||||
DelUsersID = Column(
|
|
||||||
Integer, ForeignKey("Users.ID", ondelete="SET NULL"))
|
|
||||||
Deleter = relationship(
|
Deleter = relationship(
|
||||||
_User, backref=backref("deleted_comments", lazy="dynamic"),
|
_User, backref=backref("deleted_comments", lazy="dynamic"),
|
||||||
foreign_keys=[DelUsersID])
|
foreign_keys=[__table__.c.DelUsersID])
|
||||||
|
|
||||||
__mapper_args__ = {"primary_key": [ID]}
|
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
super().__init__(**kwargs)
|
super().__init__(**kwargs)
|
||||||
|
|
|
@ -1,34 +1,28 @@
|
||||||
from sqlalchemy import Column, ForeignKey, Integer, String
|
|
||||||
from sqlalchemy.exc import IntegrityError
|
from sqlalchemy.exc import IntegrityError
|
||||||
from sqlalchemy.orm import backref, relationship
|
from sqlalchemy.orm import backref, relationship
|
||||||
|
|
||||||
|
from aurweb import schema
|
||||||
from aurweb.models.declarative import Base
|
from aurweb.models.declarative import Base
|
||||||
from aurweb.models.dependency_type import DependencyType as _DependencyType
|
from aurweb.models.dependency_type import DependencyType as _DependencyType
|
||||||
from aurweb.models.package import Package as _Package
|
from aurweb.models.package import Package as _Package
|
||||||
|
|
||||||
|
|
||||||
class PackageDependency(Base):
|
class PackageDependency(Base):
|
||||||
__tablename__ = "PackageDepends"
|
__table__ = schema.PackageDepends
|
||||||
|
__tablename__ = __table__.name
|
||||||
|
__mapper_args__ = {
|
||||||
|
"primary_key": [__table__.c.PackageID, __table__.c.DepName]
|
||||||
|
}
|
||||||
|
|
||||||
PackageID = Column(
|
|
||||||
Integer, ForeignKey("Packages.ID", ondelete="CASCADE"),
|
|
||||||
nullable=False)
|
|
||||||
Package = relationship(
|
Package = relationship(
|
||||||
_Package, backref=backref("package_dependencies", lazy="dynamic",
|
_Package, backref=backref("package_dependencies", lazy="dynamic",
|
||||||
cascade="all, delete"),
|
cascade="all, delete"),
|
||||||
foreign_keys=[PackageID])
|
foreign_keys=[__table__.c.PackageID])
|
||||||
|
|
||||||
DepTypeID = Column(
|
|
||||||
Integer, ForeignKey("DependencyTypes.ID", ondelete="NO ACTION"),
|
|
||||||
nullable=False)
|
|
||||||
DependencyType = relationship(
|
DependencyType = relationship(
|
||||||
_DependencyType,
|
_DependencyType,
|
||||||
backref=backref("package_dependencies", lazy="dynamic"),
|
backref=backref("package_dependencies", lazy="dynamic"),
|
||||||
foreign_keys=[DepTypeID])
|
foreign_keys=[__table__.c.DepTypeID])
|
||||||
|
|
||||||
DepName = Column(String(255), nullable=False)
|
|
||||||
|
|
||||||
__mapper_args__ = {"primary_key": [PackageID, DepName]}
|
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
super().__init__(**kwargs)
|
super().__init__(**kwargs)
|
||||||
|
|
|
@ -1,28 +1,26 @@
|
||||||
from sqlalchemy import Column, ForeignKey, Integer
|
|
||||||
from sqlalchemy.exc import IntegrityError
|
from sqlalchemy.exc import IntegrityError
|
||||||
from sqlalchemy.orm import backref, relationship
|
from sqlalchemy.orm import backref, relationship
|
||||||
|
|
||||||
|
from aurweb import schema
|
||||||
from aurweb.models.declarative import Base
|
from aurweb.models.declarative import Base
|
||||||
from aurweb.models.group import Group as _Group
|
from aurweb.models.group import Group as _Group
|
||||||
from aurweb.models.package import Package as _Package
|
from aurweb.models.package import Package as _Package
|
||||||
|
|
||||||
|
|
||||||
class PackageGroup(Base):
|
class PackageGroup(Base):
|
||||||
__tablename__ = "PackageGroups"
|
__table__ = schema.PackageGroups
|
||||||
|
__tablename__ = __table__.name
|
||||||
|
__mapper_args__ = {
|
||||||
|
"primary_key": [__table__.c.PackageID, __table__.c.GroupID]
|
||||||
|
}
|
||||||
|
|
||||||
PackageID = Column(Integer, ForeignKey("Packages.ID", ondelete="CASCADE"),
|
|
||||||
primary_key=True, nullable=True)
|
|
||||||
Package = relationship(
|
Package = relationship(
|
||||||
_Package, backref=backref("package_groups", lazy="dynamic"),
|
_Package, backref=backref("package_groups", lazy="dynamic"),
|
||||||
foreign_keys=[PackageID])
|
foreign_keys=[__table__.c.PackageID])
|
||||||
|
|
||||||
GroupID = Column(Integer, ForeignKey("Groups.ID", ondelete="CASCADE"),
|
|
||||||
primary_key=True, nullable=True)
|
|
||||||
Group = relationship(
|
Group = relationship(
|
||||||
_Group, backref=backref("package_groups", lazy="dynamic"),
|
_Group, backref=backref("package_groups", lazy="dynamic"),
|
||||||
foreign_keys=[GroupID])
|
foreign_keys=[__table__.c.GroupID])
|
||||||
|
|
||||||
__mapper_args__ = {"primary_key": [PackageID, GroupID]}
|
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
super().__init__(**kwargs)
|
super().__init__(**kwargs)
|
||||||
|
|
|
@ -1,27 +1,22 @@
|
||||||
from sqlalchemy import Column, ForeignKey, Integer, String, text
|
|
||||||
from sqlalchemy.exc import IntegrityError
|
from sqlalchemy.exc import IntegrityError
|
||||||
from sqlalchemy.orm import backref, relationship
|
from sqlalchemy.orm import backref, relationship
|
||||||
|
|
||||||
|
from aurweb import schema
|
||||||
from aurweb.models.declarative import Base
|
from aurweb.models.declarative import Base
|
||||||
from aurweb.models.package_base import PackageBase as _PackageBase
|
from aurweb.models.package_base import PackageBase as _PackageBase
|
||||||
|
|
||||||
|
|
||||||
class PackageKeyword(Base):
|
class PackageKeyword(Base):
|
||||||
__tablename__ = "PackageKeywords"
|
__table__ = schema.PackageKeywords
|
||||||
|
__tablename__ = __table__.name
|
||||||
|
__mapper_args__ = {
|
||||||
|
"primary_key": [__table__.c.PackageBaseID, __table__.c.Keyword]
|
||||||
|
}
|
||||||
|
|
||||||
PackageBaseID = Column(
|
|
||||||
Integer, ForeignKey("PackageBases.ID", ondelete="CASCADE"),
|
|
||||||
primary_key=True, nullable=True)
|
|
||||||
PackageBase = relationship(
|
PackageBase = relationship(
|
||||||
_PackageBase, backref=backref("keywords", lazy="dynamic",
|
_PackageBase, backref=backref("keywords", lazy="dynamic",
|
||||||
cascade="all, delete"),
|
cascade="all, delete"),
|
||||||
foreign_keys=[PackageBaseID])
|
foreign_keys=[__table__.c.PackageBaseID])
|
||||||
|
|
||||||
Keyword = Column(
|
|
||||||
String(255), primary_key=True, nullable=False,
|
|
||||||
server_default=text("''"))
|
|
||||||
|
|
||||||
__mapper_args__ = {"primary_key": [PackageBaseID, Keyword]}
|
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
super().__init__(**kwargs)
|
super().__init__(**kwargs)
|
||||||
|
|
|
@ -1,32 +1,28 @@
|
||||||
from sqlalchemy import Column, ForeignKey, Integer
|
|
||||||
from sqlalchemy.exc import IntegrityError
|
from sqlalchemy.exc import IntegrityError
|
||||||
from sqlalchemy.orm import backref, relationship
|
from sqlalchemy.orm import backref, relationship
|
||||||
|
|
||||||
|
from aurweb import schema
|
||||||
from aurweb.models.declarative import Base
|
from aurweb.models.declarative import Base
|
||||||
from aurweb.models.license import License as _License
|
from aurweb.models.license import License as _License
|
||||||
from aurweb.models.package import Package as _Package
|
from aurweb.models.package import Package as _Package
|
||||||
|
|
||||||
|
|
||||||
class PackageLicense(Base):
|
class PackageLicense(Base):
|
||||||
__tablename__ = "PackageLicenses"
|
__table__ = schema.PackageLicenses
|
||||||
|
__tablename__ = __table__.name
|
||||||
|
__mapper_args__ = {
|
||||||
|
"primary_key": [__table__.c.PackageID, __table__.c.LicenseID]
|
||||||
|
}
|
||||||
|
|
||||||
PackageID = Column(
|
|
||||||
Integer, ForeignKey("Packages.ID", ondelete="CASCADE"),
|
|
||||||
primary_key=True, nullable=True)
|
|
||||||
Package = relationship(
|
Package = relationship(
|
||||||
_Package, backref=backref("package_licenses", lazy="dynamic",
|
_Package, backref=backref("package_licenses", lazy="dynamic",
|
||||||
cascade="all, delete"),
|
cascade="all, delete"),
|
||||||
foreign_keys=[PackageID])
|
foreign_keys=[__table__.c.PackageID])
|
||||||
|
|
||||||
LicenseID = Column(
|
|
||||||
Integer, ForeignKey("Licenses.ID", ondelete="CASCADE"),
|
|
||||||
primary_key=True, nullable=True)
|
|
||||||
License = relationship(
|
License = relationship(
|
||||||
_License, backref=backref("package_licenses", lazy="dynamic",
|
_License, backref=backref("package_licenses", lazy="dynamic",
|
||||||
cascade="all, delete"),
|
cascade="all, delete"),
|
||||||
foreign_keys=[LicenseID])
|
foreign_keys=[__table__.c.LicenseID])
|
||||||
|
|
||||||
__mapper_args__ = {"primary_key": [PackageID, LicenseID]}
|
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
super().__init__(**kwargs)
|
super().__init__(**kwargs)
|
||||||
|
|
|
@ -1,31 +1,27 @@
|
||||||
from sqlalchemy import Column, ForeignKey, Integer
|
|
||||||
from sqlalchemy.exc import IntegrityError
|
from sqlalchemy.exc import IntegrityError
|
||||||
from sqlalchemy.orm import backref, relationship
|
from sqlalchemy.orm import backref, relationship
|
||||||
|
|
||||||
|
from aurweb import schema
|
||||||
from aurweb.models.declarative import Base
|
from aurweb.models.declarative import Base
|
||||||
from aurweb.models.package_base import PackageBase as _PackageBase
|
from aurweb.models.package_base import PackageBase as _PackageBase
|
||||||
from aurweb.models.user import User as _User
|
from aurweb.models.user import User as _User
|
||||||
|
|
||||||
|
|
||||||
class PackageNotification(Base):
|
class PackageNotification(Base):
|
||||||
__tablename__ = "PackageNotifications"
|
__table__ = schema.PackageNotifications
|
||||||
|
__tablename__ = __table__.name
|
||||||
|
__mapper_args__ = {
|
||||||
|
"primary_key": [__table__.c.UserID, __table__.c.PackageBaseID]
|
||||||
|
}
|
||||||
|
|
||||||
UserID = Column(
|
|
||||||
Integer, ForeignKey("Users.ID", ondelete="CASCADE"),
|
|
||||||
nullable=False)
|
|
||||||
User = relationship(
|
User = relationship(
|
||||||
_User, backref=backref("notifications", lazy="dynamic"),
|
_User, backref=backref("notifications", lazy="dynamic"),
|
||||||
foreign_keys=[UserID])
|
foreign_keys=[__table__.c.UserID])
|
||||||
|
|
||||||
PackageBaseID = Column(
|
|
||||||
Integer, ForeignKey("PackageBases.ID", ondelete="CASCADE"),
|
|
||||||
nullable=False)
|
|
||||||
PackageBase = relationship(
|
PackageBase = relationship(
|
||||||
_PackageBase,
|
_PackageBase,
|
||||||
backref=backref("notifications", lazy="dynamic"),
|
backref=backref("notifications", lazy="dynamic"),
|
||||||
foreign_keys=[PackageBaseID])
|
foreign_keys=[__table__.c.PackageBaseID])
|
||||||
|
|
||||||
__mapper_args__ = {"primary_key": [UserID, PackageBaseID]}
|
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
super().__init__(**kwargs)
|
super().__init__(**kwargs)
|
||||||
|
|
|
@ -1,33 +1,27 @@
|
||||||
from sqlalchemy import Column, ForeignKey, Integer, String
|
|
||||||
from sqlalchemy.exc import IntegrityError
|
from sqlalchemy.exc import IntegrityError
|
||||||
from sqlalchemy.orm import backref, relationship
|
from sqlalchemy.orm import backref, relationship
|
||||||
|
|
||||||
|
from aurweb import schema
|
||||||
from aurweb.models.declarative import Base
|
from aurweb.models.declarative import Base
|
||||||
from aurweb.models.package import Package as _Package
|
from aurweb.models.package import Package as _Package
|
||||||
from aurweb.models.relation_type import RelationType as _RelationType
|
from aurweb.models.relation_type import RelationType as _RelationType
|
||||||
|
|
||||||
|
|
||||||
class PackageRelation(Base):
|
class PackageRelation(Base):
|
||||||
__tablename__ = "PackageRelations"
|
__table__ = schema.PackageRelations
|
||||||
|
__tablename__ = __table__.name
|
||||||
|
__mapper_args__ = {
|
||||||
|
"primary_key": [__table__.c.PackageID, __table__.c.RelName]
|
||||||
|
}
|
||||||
|
|
||||||
PackageID = Column(
|
|
||||||
Integer, ForeignKey("Packages.ID", ondelete="CASCADE"),
|
|
||||||
nullable=False)
|
|
||||||
Package = relationship(
|
Package = relationship(
|
||||||
_Package, backref=backref("package_relations", lazy="dynamic",
|
_Package, backref=backref("package_relations", lazy="dynamic",
|
||||||
cascade="all, delete"),
|
cascade="all, delete"),
|
||||||
foreign_keys=[PackageID])
|
foreign_keys=[__table__.c.PackageID])
|
||||||
|
|
||||||
RelTypeID = Column(
|
|
||||||
Integer, ForeignKey("RelationTypes.ID", ondelete="CASCADE"),
|
|
||||||
nullable=False)
|
|
||||||
RelationType = relationship(
|
RelationType = relationship(
|
||||||
_RelationType, backref=backref("package_relations", lazy="dynamic"),
|
_RelationType, backref=backref("package_relations", lazy="dynamic"),
|
||||||
foreign_keys=[RelTypeID])
|
foreign_keys=[__table__.c.RelTypeID])
|
||||||
|
|
||||||
RelName = Column(String(255), unique=True)
|
|
||||||
|
|
||||||
__mapper_args__ = {"primary_key": [PackageID, RelName]}
|
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
super().__init__(**kwargs)
|
super().__init__(**kwargs)
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
from sqlalchemy import Column, ForeignKey, Integer
|
|
||||||
from sqlalchemy.exc import IntegrityError
|
from sqlalchemy.exc import IntegrityError
|
||||||
from sqlalchemy.orm import backref, relationship
|
from sqlalchemy.orm import backref, relationship
|
||||||
|
|
||||||
|
from aurweb import schema
|
||||||
from aurweb.models.declarative import Base
|
from aurweb.models.declarative import Base
|
||||||
from aurweb.models.package_base import PackageBase as _PackageBase
|
from aurweb.models.package_base import PackageBase as _PackageBase
|
||||||
from aurweb.models.request_type import RequestType as _RequestType
|
from aurweb.models.request_type import RequestType as _RequestType
|
||||||
|
@ -20,34 +20,25 @@ REJECTED_ID = 3
|
||||||
|
|
||||||
|
|
||||||
class PackageRequest(Base):
|
class PackageRequest(Base):
|
||||||
__tablename__ = "PackageRequests"
|
__table__ = schema.PackageRequests
|
||||||
|
__tablename__ = __table__.name
|
||||||
|
__mapper_args__ = {"primary_key": [__table__.c.ID]}
|
||||||
|
|
||||||
ID = Column(Integer, primary_key=True)
|
|
||||||
|
|
||||||
ReqTypeID = Column(
|
|
||||||
Integer, ForeignKey("RequestTypes.ID", ondelete="NO ACTION"),
|
|
||||||
nullable=False)
|
|
||||||
RequestType = relationship(
|
RequestType = relationship(
|
||||||
_RequestType, backref=backref("package_requests", lazy="dynamic"),
|
_RequestType, backref=backref("package_requests", lazy="dynamic"),
|
||||||
foreign_keys=[ReqTypeID])
|
foreign_keys=[__table__.c.ReqTypeID])
|
||||||
|
|
||||||
UsersID = Column(Integer, ForeignKey("Users.ID", ondelete="SET NULL"))
|
|
||||||
User = relationship(
|
User = relationship(
|
||||||
_User, backref=backref("package_requests", lazy="dynamic"),
|
_User, backref=backref("package_requests", lazy="dynamic"),
|
||||||
foreign_keys=[UsersID])
|
foreign_keys=[__table__.c.UsersID])
|
||||||
|
|
||||||
PackageBaseID = Column(
|
|
||||||
Integer, ForeignKey("PackageBases.ID", ondelete="SET NULL"))
|
|
||||||
PackageBase = relationship(
|
PackageBase = relationship(
|
||||||
_PackageBase, backref=backref("requests", lazy="dynamic"),
|
_PackageBase, backref=backref("requests", lazy="dynamic"),
|
||||||
foreign_keys=[PackageBaseID])
|
foreign_keys=[__table__.c.PackageBaseID])
|
||||||
|
|
||||||
ClosedUID = Column(Integer, ForeignKey("Users.ID", ondelete="SET NULL"))
|
|
||||||
Closer = relationship(
|
Closer = relationship(
|
||||||
_User, backref=backref("closed_requests", lazy="dynamic"),
|
_User, backref=backref("closed_requests", lazy="dynamic"),
|
||||||
foreign_keys=[ClosedUID])
|
foreign_keys=[__table__.c.ClosedUID])
|
||||||
|
|
||||||
__mapper_args__ = {"primary_key": [ID]}
|
|
||||||
|
|
||||||
STATUS_DISPLAY = {
|
STATUS_DISPLAY = {
|
||||||
PENDING_ID: PENDING,
|
PENDING_ID: PENDING,
|
||||||
|
|
|
@ -1,22 +1,22 @@
|
||||||
from sqlalchemy import Column, ForeignKey, Integer
|
|
||||||
from sqlalchemy.exc import IntegrityError
|
from sqlalchemy.exc import IntegrityError
|
||||||
from sqlalchemy.orm import backref, relationship
|
from sqlalchemy.orm import backref, relationship
|
||||||
|
|
||||||
|
from aurweb import schema
|
||||||
from aurweb.models.declarative import Base
|
from aurweb.models.declarative import Base
|
||||||
from aurweb.models.package import Package as _Package
|
from aurweb.models.package import Package as _Package
|
||||||
|
|
||||||
|
|
||||||
class PackageSource(Base):
|
class PackageSource(Base):
|
||||||
__tablename__ = "PackageSources"
|
__table__ = schema.PackageSources
|
||||||
|
__tablename__ = __table__.name
|
||||||
|
__mapper_args__ = {
|
||||||
|
"primary_key": [__table__.c.PackageID]
|
||||||
|
}
|
||||||
|
|
||||||
PackageID = Column(Integer, ForeignKey("Packages.ID", ondelete="CASCADE"),
|
|
||||||
nullable=False)
|
|
||||||
Package = relationship(
|
Package = relationship(
|
||||||
_Package, backref=backref("package_sources", lazy="dynamic",
|
_Package, backref=backref("package_sources", lazy="dynamic",
|
||||||
cascade="all, delete"),
|
cascade="all, delete"),
|
||||||
foreign_keys=[PackageID])
|
foreign_keys=[__table__.c.PackageID])
|
||||||
|
|
||||||
__mapper_args__ = {"primary_key": [PackageID]}
|
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
super().__init__(**kwargs)
|
super().__init__(**kwargs)
|
||||||
|
|
|
@ -1,30 +1,26 @@
|
||||||
from sqlalchemy import Column, ForeignKey, Integer
|
|
||||||
from sqlalchemy.exc import IntegrityError
|
from sqlalchemy.exc import IntegrityError
|
||||||
from sqlalchemy.orm import backref, relationship
|
from sqlalchemy.orm import backref, relationship
|
||||||
|
|
||||||
|
from aurweb import schema
|
||||||
from aurweb.models.declarative import Base
|
from aurweb.models.declarative import Base
|
||||||
from aurweb.models.package_base import PackageBase as _PackageBase
|
from aurweb.models.package_base import PackageBase as _PackageBase
|
||||||
from aurweb.models.user import User as _User
|
from aurweb.models.user import User as _User
|
||||||
|
|
||||||
|
|
||||||
class PackageVote(Base):
|
class PackageVote(Base):
|
||||||
__tablename__ = "PackageVotes"
|
__table__ = schema.PackageVotes
|
||||||
|
__tablename__ = __table__.name
|
||||||
|
__mapper_args__ = {
|
||||||
|
"primary_key": [__table__.c.UsersID, __table__.c.PackageBaseID]
|
||||||
|
}
|
||||||
|
|
||||||
UsersID = Column(
|
|
||||||
Integer, ForeignKey("Users.ID", ondelete="CASCADE"),
|
|
||||||
nullable=False)
|
|
||||||
User = relationship(
|
User = relationship(
|
||||||
_User, backref=backref("package_votes", lazy="dynamic"),
|
_User, backref=backref("package_votes", lazy="dynamic"),
|
||||||
foreign_keys=[UsersID])
|
foreign_keys=[__table__.c.UsersID])
|
||||||
|
|
||||||
PackageBaseID = Column(
|
|
||||||
Integer, ForeignKey("PackageBases.ID", ondelete="CASCADE"),
|
|
||||||
nullable=False)
|
|
||||||
PackageBase = relationship(
|
PackageBase = relationship(
|
||||||
_PackageBase, backref=backref("package_votes", lazy="dynamic"),
|
_PackageBase, backref=backref("package_votes", lazy="dynamic"),
|
||||||
foreign_keys=[PackageBaseID])
|
foreign_keys=[__table__.c.PackageBaseID])
|
||||||
|
|
||||||
__mapper_args__ = {"primary_key": [UsersID, PackageBaseID]}
|
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
super().__init__(**kwargs)
|
super().__init__(**kwargs)
|
||||||
|
|
|
@ -1,27 +1,19 @@
|
||||||
from sqlalchemy import Column, Integer
|
from aurweb import schema
|
||||||
|
|
||||||
from aurweb import db
|
|
||||||
from aurweb.models.declarative import Base
|
from aurweb.models.declarative import Base
|
||||||
|
|
||||||
CONFLICTS = "conflicts"
|
CONFLICTS = "conflicts"
|
||||||
PROVIDES = "provides"
|
PROVIDES = "provides"
|
||||||
REPLACES = "replaces"
|
REPLACES = "replaces"
|
||||||
|
|
||||||
|
CONFLICTS_ID = 1
|
||||||
|
PROVIDES_ID = 2
|
||||||
|
REPLACES_ID = 3
|
||||||
|
|
||||||
|
|
||||||
class RelationType(Base):
|
class RelationType(Base):
|
||||||
__tablename__ = "RelationTypes"
|
__table__ = schema.RelationTypes
|
||||||
|
__tablename__ = __table__.name
|
||||||
ID = Column(Integer, primary_key=True)
|
__mapper_args__ = {"primary_key": [__table__.c.ID]}
|
||||||
|
|
||||||
__mapper_args__ = {"primary_key": [ID]}
|
|
||||||
|
|
||||||
def __init__(self, Name: str = None):
|
def __init__(self, Name: str = None):
|
||||||
self.Name = Name
|
self.Name = Name
|
||||||
|
|
||||||
|
|
||||||
CONFLICTS_ID = db.query(RelationType).filter(
|
|
||||||
RelationType.Name == CONFLICTS).first().ID
|
|
||||||
PROVIDES_ID = db.query(RelationType).filter(
|
|
||||||
RelationType.Name == PROVIDES).first().ID
|
|
||||||
REPLACES_ID = db.query(RelationType).filter(
|
|
||||||
RelationType.Name == REPLACES).first().ID
|
|
||||||
|
|
|
@ -1,25 +1,20 @@
|
||||||
from sqlalchemy import Column, Integer
|
from aurweb import schema
|
||||||
|
|
||||||
from aurweb import db
|
|
||||||
from aurweb.models.declarative import Base
|
from aurweb.models.declarative import Base
|
||||||
|
|
||||||
DELETION = "deletion"
|
DELETION = "deletion"
|
||||||
ORPHAN = "orphan"
|
ORPHAN = "orphan"
|
||||||
MERGE = "merge"
|
MERGE = "merge"
|
||||||
|
|
||||||
|
DELETION_ID = 1
|
||||||
|
ORPHAN_ID = 2
|
||||||
|
MERGE_ID = 3
|
||||||
|
|
||||||
|
|
||||||
class RequestType(Base):
|
class RequestType(Base):
|
||||||
__tablename__ = "RequestTypes"
|
__table__ = schema.RequestTypes
|
||||||
|
__tablename__ = __table__.name
|
||||||
ID = Column(Integer, primary_key=True)
|
__mapper_args__ = {"primary_key": [__table__.c.ID]}
|
||||||
|
|
||||||
__mapper_args__ = {"primary_key": [ID]}
|
|
||||||
|
|
||||||
def name_display(self) -> str:
|
def name_display(self) -> str:
|
||||||
""" Return the Name column with its first char capitalized. """
|
""" Return the Name column with its first char capitalized. """
|
||||||
return self.Name.title()
|
return self.Name.title()
|
||||||
|
|
||||||
|
|
||||||
DELETION_ID = db.query(RequestType, RequestType.Name == DELETION).first().ID
|
|
||||||
ORPHAN_ID = db.query(RequestType, RequestType.Name == ORPHAN).first().ID
|
|
||||||
MERGE_ID = db.query(RequestType, RequestType.Name == MERGE).first().ID
|
|
||||||
|
|
|
@ -1,23 +1,20 @@
|
||||||
from sqlalchemy import Column, ForeignKey, Integer
|
|
||||||
from sqlalchemy.exc import IntegrityError
|
from sqlalchemy.exc import IntegrityError
|
||||||
from sqlalchemy.orm import backref, relationship
|
from sqlalchemy.orm import backref, relationship
|
||||||
|
|
||||||
|
from aurweb import schema
|
||||||
from aurweb.db import make_random_value, query
|
from aurweb.db import make_random_value, query
|
||||||
from aurweb.models.declarative import Base
|
from aurweb.models.declarative import Base
|
||||||
from aurweb.models.user import User as _User
|
from aurweb.models.user import User as _User
|
||||||
|
|
||||||
|
|
||||||
class Session(Base):
|
class Session(Base):
|
||||||
__tablename__ = "Sessions"
|
__table__ = schema.Sessions
|
||||||
|
__tablename__ = __table__.name
|
||||||
|
__mapper_args__ = {"primary_key": [__table__.c.UsersID]}
|
||||||
|
|
||||||
UsersID = Column(
|
|
||||||
Integer, ForeignKey("Users.ID", ondelete="CASCADE"),
|
|
||||||
nullable=False)
|
|
||||||
User = relationship(
|
User = relationship(
|
||||||
_User, backref=backref("session", uselist=False),
|
_User, backref=backref("session", uselist=False),
|
||||||
foreign_keys=[UsersID])
|
foreign_keys=[__table__.c.UsersID])
|
||||||
|
|
||||||
__mapper_args__ = {"primary_key": [UsersID]}
|
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
super().__init__(**kwargs)
|
super().__init__(**kwargs)
|
||||||
|
|
|
@ -3,30 +3,23 @@ import tempfile
|
||||||
|
|
||||||
from subprocess import PIPE, Popen
|
from subprocess import PIPE, Popen
|
||||||
|
|
||||||
from sqlalchemy import Column, ForeignKey, Integer, String
|
|
||||||
from sqlalchemy.orm import backref, relationship
|
from sqlalchemy.orm import backref, relationship
|
||||||
|
|
||||||
|
from aurweb import schema
|
||||||
from aurweb.models.declarative import Base
|
from aurweb.models.declarative import Base
|
||||||
|
|
||||||
|
|
||||||
class SSHPubKey(Base):
|
class SSHPubKey(Base):
|
||||||
__tablename__ = "SSHPubKeys"
|
__table__ = schema.SSHPubKeys
|
||||||
|
__tablename__ = __table__.name
|
||||||
|
__mapper_args__ = {"primary_key": [__table__.c.Fingerprint]}
|
||||||
|
|
||||||
UserID = Column(
|
|
||||||
Integer, ForeignKey("Users.ID", ondelete="CASCADE"),
|
|
||||||
nullable=False)
|
|
||||||
User = relationship(
|
User = relationship(
|
||||||
"User", backref=backref("ssh_pub_key", uselist=False),
|
"User", backref=backref("ssh_pub_key", uselist=False),
|
||||||
foreign_keys=[UserID])
|
foreign_keys=[__table__.c.UserID])
|
||||||
|
|
||||||
Fingerprint = Column(String(44), primary_key=True)
|
|
||||||
|
|
||||||
__mapper_args__ = {"primary_key": Fingerprint}
|
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
self.UserID = kwargs.get("UserID")
|
super().__init__(**kwargs)
|
||||||
self.Fingerprint = kwargs.get("Fingerprint")
|
|
||||||
self.PubKey = kwargs.get("PubKey")
|
|
||||||
|
|
||||||
|
|
||||||
def get_fingerprint(pubkey):
|
def get_fingerprint(pubkey):
|
||||||
|
|
|
@ -1,15 +1,13 @@
|
||||||
from sqlalchemy import Column, Integer
|
|
||||||
from sqlalchemy.exc import IntegrityError
|
from sqlalchemy.exc import IntegrityError
|
||||||
|
|
||||||
|
from aurweb import schema
|
||||||
from aurweb.models.declarative import Base
|
from aurweb.models.declarative import Base
|
||||||
|
|
||||||
|
|
||||||
class Term(Base):
|
class Term(Base):
|
||||||
__tablename__ = "Terms"
|
__table__ = schema.Terms
|
||||||
|
__tablename__ = __table__.name
|
||||||
ID = Column(Integer, primary_key=True)
|
__mapper_args__ = {"primary_key": [__table__.c.ID]}
|
||||||
|
|
||||||
__mapper_args__ = {"primary_key": [ID]}
|
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
super().__init__(**kwargs)
|
super().__init__(**kwargs)
|
||||||
|
|
|
@ -1,28 +1,26 @@
|
||||||
from sqlalchemy import Column, ForeignKey, Integer
|
|
||||||
from sqlalchemy.exc import IntegrityError
|
from sqlalchemy.exc import IntegrityError
|
||||||
from sqlalchemy.orm import backref, relationship
|
from sqlalchemy.orm import backref, relationship
|
||||||
|
|
||||||
|
from aurweb import schema
|
||||||
from aurweb.models.declarative import Base
|
from aurweb.models.declarative import Base
|
||||||
from aurweb.models.tu_voteinfo import TUVoteInfo as _TUVoteInfo
|
from aurweb.models.tu_voteinfo import TUVoteInfo as _TUVoteInfo
|
||||||
from aurweb.models.user import User as _User
|
from aurweb.models.user import User as _User
|
||||||
|
|
||||||
|
|
||||||
class TUVote(Base):
|
class TUVote(Base):
|
||||||
__tablename__ = "TU_Votes"
|
__table__ = schema.TU_Votes
|
||||||
|
__tablename__ = __table__.name
|
||||||
|
__mapper_args__ = {
|
||||||
|
"primary_key": [__table__.c.VoteID, __table__.c.UserID]
|
||||||
|
}
|
||||||
|
|
||||||
VoteID = Column(Integer, ForeignKey("TU_VoteInfo.ID", ondelete="CASCADE"),
|
|
||||||
nullable=False)
|
|
||||||
VoteInfo = relationship(
|
VoteInfo = relationship(
|
||||||
_TUVoteInfo, backref=backref("tu_votes", lazy="dynamic"),
|
_TUVoteInfo, backref=backref("tu_votes", lazy="dynamic"),
|
||||||
foreign_keys=[VoteID])
|
foreign_keys=[__table__.c.VoteID])
|
||||||
|
|
||||||
UserID = Column(Integer, ForeignKey("Users.ID", ondelete="CASCADE"),
|
|
||||||
nullable=False)
|
|
||||||
User = relationship(
|
User = relationship(
|
||||||
_User, backref=backref("tu_votes", lazy="dynamic"),
|
_User, backref=backref("tu_votes", lazy="dynamic"),
|
||||||
foreign_keys=[UserID])
|
foreign_keys=[__table__.c.UserID])
|
||||||
|
|
||||||
__mapper_args__ = {"primary_key": [VoteID, UserID]}
|
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
super().__init__(**kwargs)
|
super().__init__(**kwargs)
|
||||||
|
|
|
@ -2,27 +2,22 @@ import typing
|
||||||
|
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
from sqlalchemy import Column, ForeignKey, Integer
|
|
||||||
from sqlalchemy.exc import IntegrityError
|
from sqlalchemy.exc import IntegrityError
|
||||||
from sqlalchemy.orm import backref, relationship
|
from sqlalchemy.orm import backref, relationship
|
||||||
|
|
||||||
|
from aurweb import schema
|
||||||
from aurweb.models.declarative import Base
|
from aurweb.models.declarative import Base
|
||||||
from aurweb.models.user import User as _User
|
from aurweb.models.user import User as _User
|
||||||
|
|
||||||
|
|
||||||
class TUVoteInfo(Base):
|
class TUVoteInfo(Base):
|
||||||
__tablename__ = "TU_VoteInfo"
|
__table__ = schema.TU_VoteInfo
|
||||||
|
__tablename__ = __table__.name
|
||||||
|
__mapper_args__ = {"primary_key": [__table__.c.ID]}
|
||||||
|
|
||||||
ID = Column(Integer, primary_key=True)
|
|
||||||
|
|
||||||
SubmitterID = Column(
|
|
||||||
Integer, ForeignKey("Users.ID", ondelete="CASCADE"),
|
|
||||||
nullable=False)
|
|
||||||
Submitter = relationship(
|
Submitter = relationship(
|
||||||
_User, backref=backref("tu_voteinfo_set", lazy="dynamic"),
|
_User, backref=backref("tu_voteinfo_set", lazy="dynamic"),
|
||||||
foreign_keys=[SubmitterID])
|
foreign_keys=[__table__.c.SubmitterID])
|
||||||
|
|
||||||
__mapper_args__ = {"primary_key": [ID]}
|
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
super().__init__(**kwargs)
|
super().__init__(**kwargs)
|
||||||
|
|
|
@ -5,14 +5,14 @@ from datetime import datetime
|
||||||
import bcrypt
|
import bcrypt
|
||||||
|
|
||||||
from fastapi import Request
|
from fastapi import Request
|
||||||
from sqlalchemy import Column, ForeignKey, Integer, String, or_, text
|
from sqlalchemy import or_
|
||||||
from sqlalchemy.orm import backref, relationship
|
from sqlalchemy.orm import backref, relationship
|
||||||
|
|
||||||
import aurweb.config
|
import aurweb.config
|
||||||
import aurweb.models.account_type
|
import aurweb.models.account_type
|
||||||
import aurweb.schema
|
import aurweb.schema
|
||||||
|
|
||||||
from aurweb import db
|
from aurweb import db, schema
|
||||||
from aurweb.models.account_type import AccountType as _AccountType
|
from aurweb.models.account_type import AccountType as _AccountType
|
||||||
from aurweb.models.ban import is_banned
|
from aurweb.models.ban import is_banned
|
||||||
from aurweb.models.declarative import Base
|
from aurweb.models.declarative import Base
|
||||||
|
@ -22,23 +22,16 @@ SALT_ROUNDS_DEFAULT = 12
|
||||||
|
|
||||||
class User(Base):
|
class User(Base):
|
||||||
""" An ORM model of a single Users record. """
|
""" An ORM model of a single Users record. """
|
||||||
__tablename__ = "Users"
|
__table__ = schema.Users
|
||||||
|
__tablename__ = __table__.name
|
||||||
|
__mapper_args__ = {"primary_key": [__table__.c.ID]}
|
||||||
|
|
||||||
ID = Column(Integer, primary_key=True)
|
|
||||||
|
|
||||||
AccountTypeID = Column(
|
|
||||||
Integer, ForeignKey("AccountTypes.ID", ondelete="NO ACTION"),
|
|
||||||
nullable=False, server_default=text("1"))
|
|
||||||
AccountType = relationship(
|
AccountType = relationship(
|
||||||
_AccountType,
|
_AccountType,
|
||||||
backref=backref("users", lazy="dynamic"),
|
backref=backref("users", lazy="dynamic"),
|
||||||
foreign_keys=[AccountTypeID],
|
foreign_keys=[__table__.c.AccountTypeID],
|
||||||
uselist=False)
|
uselist=False)
|
||||||
|
|
||||||
Passwd = Column(String(255), default=str())
|
|
||||||
|
|
||||||
__mapper_args__ = {"primary_key": [ID]}
|
|
||||||
|
|
||||||
# High-level variables used to track authentication (not in DB).
|
# High-level variables used to track authentication (not in DB).
|
||||||
authenticated = False
|
authenticated = False
|
||||||
nonce = None
|
nonce = None
|
||||||
|
@ -49,7 +42,7 @@ class User(Base):
|
||||||
SALT_ROUNDS_DEFAULT)
|
SALT_ROUNDS_DEFAULT)
|
||||||
|
|
||||||
def __init__(self, Passwd: str = str(), **kwargs):
|
def __init__(self, Passwd: str = str(), **kwargs):
|
||||||
super().__init__(**kwargs)
|
super().__init__(**kwargs, Passwd=str())
|
||||||
|
|
||||||
# Run this again in the constructor in case we rehashed config.
|
# Run this again in the constructor in case we rehashed config.
|
||||||
self.salt_rounds = aurweb.config.getint("options", "salt_rounds",
|
self.salt_rounds = aurweb.config.getint("options", "salt_rounds",
|
||||||
|
|
Loading…
Add table
Reference in a new issue