skillbox/server/books/managers.py

28 lines
887 B
Python

from wagtail.core.models import PageManager
from typing import TYPE_CHECKING
from core.logger import get_logger
if TYPE_CHECKING:
from books.models import ContentBlock
logger = get_logger(__name__)
class ContentBlockManager(PageManager):
def duplicate(self, content_block: "ContentBlock", user):
try:
new_content_block = self.model(
user_created=True,
owner=user,
contents=content_block.contents,
title=f'{content_block.title} (Kopie)',
type=content_block.type,
)
content_block.add_sibling(instance=new_content_block, pos='right')
revision = new_content_block.save_revision()
revision.publish()
new_content_block.save()
return new_content_block
except Exception as e:
logger.warn(e)