mirror of
https://github.com/rr-/szurubooru.git
synced 2025-07-17 08:26:24 +00:00
server/search: allow negating sort:pool
This commit is contained in:
@ -126,12 +126,14 @@ def _pool_filter(
|
||||
|
||||
|
||||
def _pool_sort(
|
||||
query: SaQuery, pool_id: Optional[int]
|
||||
query: SaQuery, pool_id: Optional[int], order: str
|
||||
) -> SaQuery:
|
||||
if pool_id is None:
|
||||
return query
|
||||
return query.join(model.PoolPost, sa.and_(model.PoolPost.post_id == model.Post.post_id, model.PoolPost.pool_id == pool_id)) \
|
||||
.order_by(model.PoolPost.order.desc())
|
||||
db_query = query.join(model.PoolPost, sa.and_(model.PoolPost.post_id == model.Post.post_id, model.PoolPost.pool_id == pool_id))
|
||||
if order == tokens.SortToken.SORT_DESC:
|
||||
return db_query.order_by(model.PoolPost.order.desc())
|
||||
return db_query.order_by(model.PoolPost.order.asc())
|
||||
|
||||
|
||||
def _category_filter(
|
||||
@ -463,7 +465,7 @@ class PostSearchConfig(BaseSearchConfig):
|
||||
),
|
||||
(
|
||||
["pool"],
|
||||
lambda subquery: _pool_sort(subquery, self.pool_id)
|
||||
lambda subquery, order: _pool_sort(subquery, self.pool_id, order)
|
||||
)
|
||||
]
|
||||
)
|
||||
|
@ -185,7 +185,8 @@ class Executor:
|
||||
sort_token.name
|
||||
]
|
||||
if callable(entry):
|
||||
db_query = entry(db_query)
|
||||
order = _get_order(sort_token.order, sort_token.SORT_DESC)
|
||||
db_query = entry(db_query, order)
|
||||
else:
|
||||
column, default_order = entry
|
||||
order = _get_order(sort_token.order, default_order)
|
||||
|
Reference in New Issue
Block a user