From d6605b71eccf2e95c65aebe7078117189c4132d6 Mon Sep 17 00:00:00 2001 From: knst-kotov Date: Mon, 15 Nov 2021 11:43:38 +0300 Subject: [PATCH] return only published shouts --- resolvers/zine.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/resolvers/zine.py b/resolvers/zine.py index 01167733..f30ca203 100644 --- a/resolvers/zine.py +++ b/resolvers/zine.py @@ -79,6 +79,7 @@ class ShoutsCache: with local_session() as session: stmt = select(Shout).\ options(selectinload(Shout.authors), selectinload(Shout.topics)).\ + where(Shout.publishedAt != None).\ order_by(desc("createdAt")).\ limit(ShoutsCache.limit) shouts = [] @@ -97,6 +98,7 @@ class ShoutsCache: stmt = select(Shout, func.sum(ShoutRating.value).label("rating")).\ options(selectinload(Shout.authors), selectinload(Shout.topics)).\ join(ShoutRating).\ + where(Shout.publishedAt != None).\ group_by(Shout.id).\ order_by(desc("rating")).\ limit(ShoutsCache.limit) @@ -116,7 +118,7 @@ class ShoutsCache: stmt = select(Shout, func.sum(ShoutRating.value).label("rating")).\ options(selectinload(Shout.authors), selectinload(Shout.topics)).\ join(ShoutRating).\ - where(Shout.createdAt > month_ago).\ + where(and_(Shout.createdAt > month_ago, Shout.publishedAt != None)).\ group_by(Shout.id).\ order_by(desc("rating")).\ limit(ShoutsCache.limit) @@ -136,7 +138,7 @@ class ShoutsCache: stmt = select(Shout, func.sum(ShoutViewByDay.value).label("views")).\ options(selectinload(Shout.authors), selectinload(Shout.topics)).\ join(ShoutViewByDay).\ - where(ShoutViewByDay.day > month_ago).\ + where(and_(ShoutViewByDay.day > month_ago, Shout.publishedAt != None)).\ group_by(Shout.id).\ order_by(desc("views")).\ limit(ShoutsCache.limit) @@ -155,7 +157,7 @@ class ShoutsCache: with local_session() as session: shout_with_view = select(Shout.id, func.sum(ShoutViewByDay.value).label("view")).\ join(ShoutViewByDay).\ - where(ShoutViewByDay.day > month_ago).\ + where(and_(ShoutViewByDay.day > month_ago, Shout.publishedAt != None)).\ group_by(Shout.id).\ order_by(desc("view")).cte() stmt = select(ShoutAuthor.user, func.sum(shout_with_view.c.view).label("view")).\