filter out top-level comments via sql so pagination is not borked

This commit is contained in:
Aaron 2019-02-19 15:30:32 -06:00
parent 6749626249
commit abcfc64dcc
No known key found for this signature in database
GPG Key ID: 3B5B7597106F0A0E
2 changed files with 1 additions and 9 deletions

View File

@ -3,7 +3,6 @@ import datetime
from functools import reduce
from grant.extensions import ma, db
from grant.utils.ma_fields import UnixDate
from marshmallow import pre_dump
from sqlalchemy.orm import raiseload
HIDDEN_CONTENT = '~~comment removed by admin~~'
@ -88,13 +87,6 @@ class CommentSchema(ma.Schema):
def get_replies(self, obj):
return comments_schema.dump(filter_dead(obj.replies))
# filter out top-level "dead" comments
@pre_dump(pass_many=True)
def clear_hidden(self, data, many):
if many:
return filter_dead(data)
return data
comment_schema = CommentSchema()
comments_schema = CommentSchema(many=True)

View File

@ -70,7 +70,7 @@ def get_proposal_comments(proposal_id, page, filters, search, sort):
filters_workaround = request.args.getlist('filters[]')
page = pagination.comment(
schema=comments_schema,
query=Comment.query.filter_by(proposal_id=proposal_id, parent_comment_id=None),
query=Comment.query.filter_by(proposal_id=proposal_id, parent_comment_id=None, hidden=False),
page=page,
filters=filters_workaround,
search=search,