draft-topics-fix
All checks were successful
Deploy on push / deploy (push) Successful in 47s

This commit is contained in:
Untone 2025-05-07 10:22:30 +03:00
parent 2b7d5a25b5
commit 51de649686

View File

@ -46,22 +46,27 @@ def create_shout_from_draft(session, draft, author_id):
""" """
# Создаем новую публикацию # Создаем новую публикацию
shout = Shout( shout = Shout(
body=draft.body, body=draft.body or "",
slug=draft.slug, slug=draft.slug,
cover=draft.cover, cover=draft.cover,
cover_caption=draft.cover_caption, cover_caption=draft.cover_caption,
lead=draft.lead, lead=draft.lead,
title=draft.title, title=draft.title or "",
subtitle=draft.subtitle, subtitle=draft.subtitle,
layout=draft.layout, layout=draft.layout or "article",
media=draft.media, media=draft.media or [],
lang=draft.lang, lang=draft.lang or "ru",
seo=draft.seo, seo=draft.seo,
created_by=author_id, created_by=author_id,
community=draft.community, community=draft.community,
draft=draft.id, draft=draft.id,
deleted_at=None, deleted_at=None,
) )
# Инициализируем пустые массивы для связей
shout.topics = []
shout.authors = []
return shout return shout
@ -457,6 +462,15 @@ async def publish_draft(_, info, draft_id: int):
) )
session.add(st) session.add(st)
# Загружаем темы для шаута после создания связей
shout.topics = [
session.query(Topic).filter(Topic.id == topic.id).first()
for topic in draft.topics
]
else:
# Инициализируем пустой список тем если их нет
shout.topics = []
# Обновляем черновик # Обновляем черновик
draft.updated_at = now draft.updated_at = now
session.add(draft) session.add(draft)