Merge pull request #870 from dod-ccpo/primaryjoins

Use python rather than string for primaryjoin
This commit is contained in:
George Drummond 2019-06-05 14:55:59 -04:00 committed by GitHub
commit fd171754cd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 23 additions and 12 deletions

View File

@ -1,9 +1,11 @@
from sqlalchemy import Column, ForeignKey, String
from sqlalchemy import and_, Column, ForeignKey, String
from sqlalchemy.orm import relationship, synonym
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.types import Id
class Application(
@ -20,11 +22,15 @@ class Application(
environments = relationship(
"Environment",
back_populates="application",
primaryjoin="and_(Environment.application_id==Application.id, Environment.deleted==False)",
primaryjoin=and_(
Environment.application_id == id, Environment.deleted == False
),
)
roles = relationship(
"ApplicationRole",
primaryjoin="and_(ApplicationRole.application_id==Application.id, ApplicationRole.deleted==False)",
primaryjoin=and_(
ApplicationRole.application_id == id, ApplicationRole.deleted == False
),
)
members = synonym("roles")

View File

@ -1,11 +1,12 @@
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.orm import relationship
from sqlalchemy.event import listen
from atst.utils import first_or_none
from atst.models import Base, mixins
from atst.models.environment_role import EnvironmentRole
from atst.models.mixins.auditable import record_permission_sets_updates
from .types import Id
@ -53,7 +54,9 @@ class ApplicationRole(
environment_roles = relationship(
"EnvironmentRole",
primaryjoin="and_(EnvironmentRole.application_role_id==ApplicationRole.id, EnvironmentRole.deleted==False)",
primaryjoin=and_(
EnvironmentRole.application_role_id == id, EnvironmentRole.deleted == False
),
)
@property

View File

@ -1,9 +1,9 @@
from sqlalchemy import Column, String
from sqlalchemy import and_, Column, String
from sqlalchemy.orm import relationship
from sqlalchemy.types import ARRAY
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.domain.permission_sets import PermissionSets
from atst.utils import first_or_none
@ -29,7 +29,7 @@ class Portfolio(Base, mixins.TimestampsMixin, mixins.AuditableMixin):
applications = relationship(
"Application",
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")

View File

@ -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.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.portfolio_invitation import PortfolioInvitation
from atst.models.application_invitation import ApplicationInvitation
@ -30,7 +30,9 @@ class User(
application_roles = relationship(
"ApplicationRole",
backref="user",
primaryjoin="and_(ApplicationRole.user_id==User.id, ApplicationRole.deleted==False)",
primaryjoin=and_(
ApplicationRole.user_id == id, ApplicationRole.deleted == False
),
)
portfolio_invitations = relationship(