workflows: exclude some evolution parts from full text search (#54401)
This commit is contained in:
parent
c868c778cd
commit
d7214c5dab
|
@ -2131,12 +2131,7 @@ class SqlDataMixin(SqlMixin):
|
|||
if evo.comment:
|
||||
fts_strings.append(evo.comment)
|
||||
for part in evo.parts or []:
|
||||
if hasattr(part, 'view'):
|
||||
if hasattr(part, 'to') and not self.is_for_current_user(part.to):
|
||||
continue
|
||||
html_part = part.view()
|
||||
if html_part:
|
||||
fts_strings.append(qommon.misc.html2text(html_part))
|
||||
fts_strings.append(part.render_for_fts() if part.render_for_fts else '')
|
||||
user = self.get_user()
|
||||
if user:
|
||||
fts_strings.append(user.get_display_name())
|
||||
|
|
|
@ -34,7 +34,7 @@ from wcs.qommon.form import (
|
|||
VarnameWidget,
|
||||
WidgetListAsTable,
|
||||
)
|
||||
from wcs.workflows import WorkflowStatusItem, register_item_class
|
||||
from wcs.workflows import EvolutionPart, WorkflowStatusItem, register_item_class
|
||||
|
||||
|
||||
class Mapping:
|
||||
|
@ -129,9 +129,10 @@ class MappingsWidget(WidgetListAsTable):
|
|||
self.value.sort(key=lambda mapping: self.ranks.get(str(mapping.field_id), 9999))
|
||||
|
||||
|
||||
class LinkedFormdataEvolutionPart:
|
||||
class LinkedFormdataEvolutionPart(EvolutionPart):
|
||||
formdef_class = FormDef
|
||||
attach_to_history = False
|
||||
render_for_fts = None
|
||||
|
||||
def __init__(self, formdata, varname, attach_to_history):
|
||||
self._formdef = formdata.formdef
|
||||
|
|
|
@ -21,6 +21,7 @@ from quixote.html import htmltext
|
|||
|
||||
from wcs.workflows import (
|
||||
AttachmentEvolutionPart,
|
||||
EvolutionPart,
|
||||
WorkflowStatusItem,
|
||||
register_item_class,
|
||||
template_on_formdata,
|
||||
|
@ -31,7 +32,7 @@ from ..qommon.form import SingleSelectWidget, TextWidget, WidgetList
|
|||
from ..qommon.template import TemplateError
|
||||
|
||||
|
||||
class JournalEvolutionPart:
|
||||
class JournalEvolutionPart(EvolutionPart):
|
||||
content = None
|
||||
to = None
|
||||
|
||||
|
|
|
@ -29,6 +29,7 @@ from quixote.html import TemplateIO, htmltext
|
|||
from wcs.workflows import (
|
||||
AbortActionException,
|
||||
AttachmentEvolutionPart,
|
||||
EvolutionPart,
|
||||
WorkflowStatusItem,
|
||||
register_item_class,
|
||||
)
|
||||
|
@ -49,10 +50,11 @@ from ..qommon.form import (
|
|||
from ..qommon.misc import json_loads
|
||||
|
||||
|
||||
class JournalWsCallErrorPart:
|
||||
class JournalWsCallErrorPart(EvolutionPart):
|
||||
content = None
|
||||
data = None
|
||||
label = None
|
||||
render_for_fts = None
|
||||
|
||||
def __init__(self, summary, label=None, data=None):
|
||||
self.summary = summary
|
||||
|
|
|
@ -184,12 +184,24 @@ class AttachmentsSubstitutionProxy:
|
|||
raise AttributeError(name)
|
||||
|
||||
|
||||
class AttachmentEvolutionPart:
|
||||
class EvolutionPart:
|
||||
to = None
|
||||
view = None
|
||||
|
||||
def render_for_fts(self):
|
||||
if not self.view or self.to:
|
||||
# don't include parts with no content or restricted visibility
|
||||
return ''
|
||||
return misc.html2text(self.view() or '')
|
||||
|
||||
|
||||
class AttachmentEvolutionPart(EvolutionPart):
|
||||
orig_filename = None
|
||||
base_filename = None
|
||||
content_type = None
|
||||
charset = None
|
||||
varname = None
|
||||
render_for_fts = None
|
||||
storage = None
|
||||
storage_attrs = None
|
||||
|
||||
|
@ -1144,7 +1156,7 @@ class WorkflowGlobalActionManualTrigger(WorkflowGlobalActionTrigger):
|
|||
self._roles_init_with_xml('roles', elem, charset, include_id=include_id, snapshot=snapshot)
|
||||
|
||||
|
||||
class WorkflowGlobalActionTimeoutTriggerMarker:
|
||||
class WorkflowGlobalActionTimeoutTriggerMarker(EvolutionPart):
|
||||
def __init__(self, timeout_id):
|
||||
self.timeout_id = timeout_id
|
||||
|
||||
|
|
Loading…
Reference in New Issue