Merge pull request #870 from dod-ccpo/primaryjoins
Use python rather than string for primaryjoin
This commit is contained in:
commit
fd171754cd
@ -1,9 +1,11 @@
|
|||||||
from sqlalchemy import Column, ForeignKey, String
|
from sqlalchemy import and_, Column, ForeignKey, String
|
||||||
from sqlalchemy.orm import relationship, synonym
|
from sqlalchemy.orm import relationship, synonym
|
||||||
|
|
||||||
from atst.models import Base
|
from atst.models import Base
|
||||||
from atst.models.types import Id
|
from atst.models.application_role import ApplicationRole
|
||||||
|
from atst.models.environment import Environment
|
||||||
from atst.models import mixins
|
from atst.models import mixins
|
||||||
|
from atst.models.types import Id
|
||||||
|
|
||||||
|
|
||||||
class Application(
|
class Application(
|
||||||
@ -20,11 +22,15 @@ class Application(
|
|||||||
environments = relationship(
|
environments = relationship(
|
||||||
"Environment",
|
"Environment",
|
||||||
back_populates="application",
|
back_populates="application",
|
||||||
primaryjoin="and_(Environment.application_id==Application.id, Environment.deleted==False)",
|
primaryjoin=and_(
|
||||||
|
Environment.application_id == id, Environment.deleted == False
|
||||||
|
),
|
||||||
)
|
)
|
||||||
roles = relationship(
|
roles = relationship(
|
||||||
"ApplicationRole",
|
"ApplicationRole",
|
||||||
primaryjoin="and_(ApplicationRole.application_id==Application.id, ApplicationRole.deleted==False)",
|
primaryjoin=and_(
|
||||||
|
ApplicationRole.application_id == id, ApplicationRole.deleted == False
|
||||||
|
),
|
||||||
)
|
)
|
||||||
members = synonym("roles")
|
members = synonym("roles")
|
||||||
|
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
from enum import Enum
|
from enum import Enum
|
||||||
from sqlalchemy import Index, ForeignKey, Column, Enum as SQLAEnum, Table
|
from sqlalchemy import and_, Index, ForeignKey, Column, Enum as SQLAEnum, Table
|
||||||
from sqlalchemy.dialects.postgresql import UUID
|
from sqlalchemy.dialects.postgresql import UUID
|
||||||
from sqlalchemy.orm import relationship
|
from sqlalchemy.orm import relationship
|
||||||
from sqlalchemy.event import listen
|
from sqlalchemy.event import listen
|
||||||
|
|
||||||
from atst.utils import first_or_none
|
from atst.utils import first_or_none
|
||||||
from atst.models import Base, mixins
|
from atst.models import Base, mixins
|
||||||
|
from atst.models.environment_role import EnvironmentRole
|
||||||
from atst.models.mixins.auditable import record_permission_sets_updates
|
from atst.models.mixins.auditable import record_permission_sets_updates
|
||||||
from .types import Id
|
from .types import Id
|
||||||
|
|
||||||
@ -53,7 +54,9 @@ class ApplicationRole(
|
|||||||
|
|
||||||
environment_roles = relationship(
|
environment_roles = relationship(
|
||||||
"EnvironmentRole",
|
"EnvironmentRole",
|
||||||
primaryjoin="and_(EnvironmentRole.application_role_id==ApplicationRole.id, EnvironmentRole.deleted==False)",
|
primaryjoin=and_(
|
||||||
|
EnvironmentRole.application_role_id == id, EnvironmentRole.deleted == False
|
||||||
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
from sqlalchemy import Column, String
|
from sqlalchemy import and_, Column, String
|
||||||
from sqlalchemy.orm import relationship
|
from sqlalchemy.orm import relationship
|
||||||
from sqlalchemy.types import ARRAY
|
from sqlalchemy.types import ARRAY
|
||||||
from itertools import chain
|
from itertools import chain
|
||||||
|
|
||||||
from atst.models import Base, mixins, types
|
from atst.models import Base, Application, mixins, types
|
||||||
from atst.models.portfolio_role import PortfolioRole, Status as PortfolioRoleStatus
|
from atst.models.portfolio_role import PortfolioRole, Status as PortfolioRoleStatus
|
||||||
from atst.domain.permission_sets import PermissionSets
|
from atst.domain.permission_sets import PermissionSets
|
||||||
from atst.utils import first_or_none
|
from atst.utils import first_or_none
|
||||||
@ -29,7 +29,7 @@ class Portfolio(Base, mixins.TimestampsMixin, mixins.AuditableMixin):
|
|||||||
applications = relationship(
|
applications = relationship(
|
||||||
"Application",
|
"Application",
|
||||||
back_populates="portfolio",
|
back_populates="portfolio",
|
||||||
primaryjoin="and_(Application.portfolio_id==Portfolio.id, Application.deleted==False)",
|
primaryjoin=and_(Application.portfolio_id == id, Application.deleted == False),
|
||||||
)
|
)
|
||||||
roles = relationship("PortfolioRole")
|
roles = relationship("PortfolioRole")
|
||||||
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
from sqlalchemy import String, ForeignKey, Column, Date, Boolean, Table, TIMESTAMP
|
from sqlalchemy import and_, String, ForeignKey, Column, Date, Boolean, Table, TIMESTAMP
|
||||||
from sqlalchemy.orm import relationship
|
from sqlalchemy.orm import relationship
|
||||||
from sqlalchemy.dialects.postgresql import UUID
|
from sqlalchemy.dialects.postgresql import UUID
|
||||||
|
|
||||||
from atst.models import Base, types, mixins
|
from atst.models import Base, ApplicationRole, types, mixins
|
||||||
from atst.models.permissions import Permissions
|
from atst.models.permissions import Permissions
|
||||||
from atst.models.portfolio_invitation import PortfolioInvitation
|
from atst.models.portfolio_invitation import PortfolioInvitation
|
||||||
from atst.models.application_invitation import ApplicationInvitation
|
from atst.models.application_invitation import ApplicationInvitation
|
||||||
@ -30,7 +30,9 @@ class User(
|
|||||||
application_roles = relationship(
|
application_roles = relationship(
|
||||||
"ApplicationRole",
|
"ApplicationRole",
|
||||||
backref="user",
|
backref="user",
|
||||||
primaryjoin="and_(ApplicationRole.user_id==User.id, ApplicationRole.deleted==False)",
|
primaryjoin=and_(
|
||||||
|
ApplicationRole.user_id == id, ApplicationRole.deleted == False
|
||||||
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
portfolio_invitations = relationship(
|
portfolio_invitations = relationship(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user