Make one query
This commit is contained in:
parent
9098bc7c0b
commit
b61f304bad
@ -14,15 +14,6 @@ class PortfoliosQuery(Query):
|
|||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_for_user(cls, user):
|
def get_for_user(cls, user):
|
||||||
granted_applications = (
|
|
||||||
db.session.query(Application)
|
|
||||||
.join(ApplicationRole)
|
|
||||||
.filter(ApplicationRole.application_id == Application.id)
|
|
||||||
.filter(ApplicationRole.user_id == user.id)
|
|
||||||
.filter(ApplicationRole.status == ApplicationRoleStatus.ACTIVE)
|
|
||||||
.subquery()
|
|
||||||
)
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
db.session.query(Portfolio)
|
db.session.query(Portfolio)
|
||||||
.filter(
|
.filter(
|
||||||
@ -30,9 +21,19 @@ class PortfoliosQuery(Query):
|
|||||||
db.session.query(Portfolio.id)
|
db.session.query(Portfolio.id)
|
||||||
.join(Application)
|
.join(Application)
|
||||||
.filter(Portfolio.id == Application.portfolio_id)
|
.filter(Portfolio.id == Application.portfolio_id)
|
||||||
.filter(Application.id == granted_applications.c.id)
|
.filter(
|
||||||
|
Application.id.in_(
|
||||||
|
db.session.query(Application.id)
|
||||||
|
.join(ApplicationRole)
|
||||||
|
.filter(ApplicationRole.application_id == Application.id)
|
||||||
|
.filter(ApplicationRole.user_id == user.id)
|
||||||
|
.filter(
|
||||||
|
ApplicationRole.status == ApplicationRoleStatus.ACTIVE
|
||||||
|
)
|
||||||
.subquery()
|
.subquery()
|
||||||
)
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
| Portfolio.id.in_(
|
| Portfolio.id.in_(
|
||||||
db.session.query(Portfolio.id)
|
db.session.query(Portfolio.id)
|
||||||
.join(PortfolioRole)
|
.join(PortfolioRole)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user