22 lines
928 B
Python
22 lines
928 B
Python
from abc import ABC
|
|
from apps.project.models import Project
|
|
from django.shortcuts import get_object_or_404
|
|
from apps.dict.models import Fragment
|
|
from apps.createDocument.extensions.parse_rich_text import RichParser
|
|
|
|
class FragementToolsMixin(ABC):
|
|
"""该混合主要给文档片段进行功能封装"""
|
|
def _generate_frag(self, id: int, doc, doc_name: str):
|
|
"""传入项目id/"""
|
|
project_qs = get_object_or_404(Project, id=id)
|
|
replace = False # 是否替换标志
|
|
rich_text_list = []
|
|
# [deprecated]判断是否有当前项目的文档片段
|
|
fragments = project_qs.frag.all()
|
|
# 传入'片段名称'和判断is_main
|
|
frag: Fragment = fragments.filter(name=doc_name, is_main=True).first()
|
|
if frag:
|
|
replace = True
|
|
rich_text_list = RichParser(frag.content).get_final_format_list(doc)
|
|
return replace, frag, rich_text_list
|