filter out top-level comments via sql so pagination is not borked
This commit is contained in:
parent
6749626249
commit
abcfc64dcc
|
@ -3,7 +3,6 @@ import datetime
|
||||||
from functools import reduce
|
from functools import reduce
|
||||||
from grant.extensions import ma, db
|
from grant.extensions import ma, db
|
||||||
from grant.utils.ma_fields import UnixDate
|
from grant.utils.ma_fields import UnixDate
|
||||||
from marshmallow import pre_dump
|
|
||||||
from sqlalchemy.orm import raiseload
|
from sqlalchemy.orm import raiseload
|
||||||
|
|
||||||
HIDDEN_CONTENT = '~~comment removed by admin~~'
|
HIDDEN_CONTENT = '~~comment removed by admin~~'
|
||||||
|
@ -88,13 +87,6 @@ class CommentSchema(ma.Schema):
|
||||||
def get_replies(self, obj):
|
def get_replies(self, obj):
|
||||||
return comments_schema.dump(filter_dead(obj.replies))
|
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()
|
comment_schema = CommentSchema()
|
||||||
comments_schema = CommentSchema(many=True)
|
comments_schema = CommentSchema(many=True)
|
||||||
|
|
|
@ -70,7 +70,7 @@ def get_proposal_comments(proposal_id, page, filters, search, sort):
|
||||||
filters_workaround = request.args.getlist('filters[]')
|
filters_workaround = request.args.getlist('filters[]')
|
||||||
page = pagination.comment(
|
page = pagination.comment(
|
||||||
schema=comments_schema,
|
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,
|
page=page,
|
||||||
filters=filters_workaround,
|
filters=filters_workaround,
|
||||||
search=search,
|
search=search,
|
||||||
|
|
Loading…
Reference in New Issue