This commit is contained in:
parent
ffb75e53f7
commit
0347b6f5ff
|
@ -464,6 +464,11 @@ async def update_shout(_, info, shout_id: int, shout_input=None, publish=False):
|
||||||
# Используем уже обновленный объект shout_by_id вместо нового запроса
|
# Используем уже обновленный объект shout_by_id вместо нового запроса
|
||||||
shout_dict = shout_by_id.dict() # dict() теперь включает все связи
|
shout_dict = shout_by_id.dict() # dict() теперь включает все связи
|
||||||
logger.info(f"Final shout data with relations: {shout_dict}")
|
logger.info(f"Final shout data with relations: {shout_dict}")
|
||||||
|
# После успешного сохранения
|
||||||
|
logger.info(f"Checking saved shout: {shout_dict}")
|
||||||
|
logger.info(f"published_at: {shout_dict.get('published_at')}")
|
||||||
|
logger.info(f"deleted_at: {shout_dict.get('deleted_at')}")
|
||||||
|
logger.info(f"topics: {shout_dict.get('topics')}")
|
||||||
return {"shout": shout_dict, "error": None}
|
return {"shout": shout_dict, "error": None}
|
||||||
else:
|
else:
|
||||||
logger.warning(f"Access denied: author #{author_id} cannot edit shout#{shout_id}")
|
logger.warning(f"Access denied: author #{author_id} cannot edit shout#{shout_id}")
|
||||||
|
|
|
@ -173,3 +173,21 @@ async def load_shouts_with_topic(_, info, slug: str, options) -> List[Shout]:
|
||||||
except Exception as error:
|
except Exception as error:
|
||||||
logger.debug(error)
|
logger.debug(error)
|
||||||
return []
|
return []
|
||||||
|
|
||||||
|
|
||||||
|
def apply_filters(q, filters):
|
||||||
|
"""
|
||||||
|
Применяет фильтры к запросу
|
||||||
|
"""
|
||||||
|
logger.info(f"Applying filters: {filters}")
|
||||||
|
|
||||||
|
if filters.get("published"):
|
||||||
|
q = q.filter(Shout.published_at.is_not(None))
|
||||||
|
logger.info("Added published filter")
|
||||||
|
|
||||||
|
if filters.get("topic"):
|
||||||
|
topic_slug = filters["topic"]
|
||||||
|
q = q.join(ShoutTopic).join(Topic).filter(Topic.slug == topic_slug)
|
||||||
|
logger.info(f"Added topic filter: {topic_slug}")
|
||||||
|
|
||||||
|
return q
|
||||||
|
|
|
@ -63,11 +63,15 @@ def query_with_stat(info):
|
||||||
|
|
||||||
Добавляет подзапрос статистики
|
Добавляет подзапрос статистики
|
||||||
"""
|
"""
|
||||||
q = (
|
q = select(Shout).filter(
|
||||||
select(Shout)
|
and_(
|
||||||
.where(and_(Shout.published_at.is_not(None), Shout.deleted_at.is_(None)))
|
Shout.published_at.is_not(None), # Проверяем published_at
|
||||||
.join(Author, Author.id == Shout.created_by)
|
Shout.deleted_at.is_(None), # Проверяем deleted_at
|
||||||
)
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
# Добавим логирование
|
||||||
|
logger.info(f"Base query filters: published_at IS NOT NULL AND deleted_at IS NULL")
|
||||||
|
|
||||||
# Главный автор
|
# Главный автор
|
||||||
main_author = aliased(Author)
|
main_author = aliased(Author)
|
||||||
|
@ -143,6 +147,9 @@ def query_with_stat(info):
|
||||||
q = q.outerjoin(topics_subquery, topics_subquery.c.shout == Shout.id)
|
q = q.outerjoin(topics_subquery, topics_subquery.c.shout == Shout.id)
|
||||||
q = q.add_columns(topics_subquery.c.topics)
|
q = q.add_columns(topics_subquery.c.topics)
|
||||||
|
|
||||||
|
# Добавим логирование
|
||||||
|
logger.info("Added topics join to query")
|
||||||
|
|
||||||
if has_field(info, "stat"):
|
if has_field(info, "stat"):
|
||||||
stats_subquery = (
|
stats_subquery = (
|
||||||
select(
|
select(
|
||||||
|
|
Loading…
Reference in New Issue
Block a user