rewire post search config to actual function
This commit is contained in:
parent
eabf637736
commit
fa14bea4ac
2 changed files with 19 additions and 16 deletions
|
@ -978,6 +978,8 @@ def search_by_image(image_content: bytes) -> List[Tuple[float, model.Post]]:
|
||||||
PoolPostsAround = namedtuple('PoolPostsAround', 'pool first_post prev_post next_post last_post')
|
PoolPostsAround = namedtuple('PoolPostsAround', 'pool first_post prev_post next_post last_post')
|
||||||
|
|
||||||
def get_pool_posts_around(post: model.Post) -> List[PoolPostsAround]:
|
def get_pool_posts_around(post: model.Post) -> List[PoolPostsAround]:
|
||||||
|
return []
|
||||||
|
|
||||||
around = dict()
|
around = dict()
|
||||||
pool_ids = set()
|
pool_ids = set()
|
||||||
post_ids = set()
|
post_ids = set()
|
||||||
|
|
|
@ -220,25 +220,26 @@ class PostSearchConfig(BaseSearchConfig):
|
||||||
if token.name == "pool" and isinstance(token.criterion, criteria.PlainCriterion):
|
if token.name == "pool" and isinstance(token.criterion, criteria.PlainCriterion):
|
||||||
self.pool_id = token.criterion.value
|
self.pool_id = token.criterion.value
|
||||||
|
|
||||||
def create_around_query(self, filter_query: SaQuery, entity_id: int) -> SaQuery:
|
def create_around_query(self) -> SaQuery:
|
||||||
prev_filter_query = (
|
return db.session.query(model.Post).options(sa.orm.lazyload("*"))
|
||||||
filter_query.filter(self.config.id_column > entity_id)
|
|
||||||
.order_by(None)
|
|
||||||
.order_by(sa.func.abs(self.config.id_column - entity_id).asc())
|
|
||||||
.limit(1)
|
|
||||||
)
|
|
||||||
next_filter_query = (
|
|
||||||
filter_query.filter(self.config.id_column < entity_id)
|
|
||||||
.order_by(None)
|
|
||||||
.order_by(sa.func.abs(self.config.id_column - entity_id).asc())
|
|
||||||
.limit(1)
|
|
||||||
)
|
|
||||||
return prev_filter_query, next_filter_query
|
|
||||||
|
|
||||||
def create_around_filter_queries(self, filter_query: SaQuery, entity_id: int) -> Tuple[SaQuery, SaQuery]:
|
def create_around_filter_queries(self, filter_query: SaQuery, entity_id: int) -> Tuple[SaQuery, SaQuery]:
|
||||||
if self.pool_id is not None:
|
if self.pool_id is not None:
|
||||||
return _posts_around_pool(filter_query, entity_id, self.pool_id)
|
return _posts_around_pool(filter_query, entity_id, self.pool_id)
|
||||||
return super(PostSearchConfig, self).create_around_filter_queries(filter_query, entity_id)
|
|
||||||
|
prev_filter_query = (
|
||||||
|
filter_query.filter(self.id_column > entity_id)
|
||||||
|
.order_by(None)
|
||||||
|
.order_by(sa.func.abs(self.id_column - entity_id).asc())
|
||||||
|
.limit(1)
|
||||||
|
)
|
||||||
|
next_filter_query = (
|
||||||
|
filter_query.filter(self.id_column < entity_id)
|
||||||
|
.order_by(None)
|
||||||
|
.order_by(sa.func.abs(self.id_column - entity_id).asc())
|
||||||
|
.limit(1)
|
||||||
|
)
|
||||||
|
return prev_filter_query, next_filter_query
|
||||||
|
|
||||||
def create_filter_query(self, disable_eager_loads: bool) -> SaQuery:
|
def create_filter_query(self, disable_eager_loads: bool) -> SaQuery:
|
||||||
strategy = (
|
strategy = (
|
||||||
|
|
Reference in a new issue