misc: use lazy mode for global action expression date template (#42672)

This commit is contained in:
Frédéric Péters 2020-05-09 10:41:52 +02:00
parent 7e07d08a67
commit 1a0642d45d
2 changed files with 18 additions and 1 deletions

View File

@ -40,6 +40,7 @@ from wcs.workflows import (Workflow, WorkflowStatusItem,
DisplayMessageWorkflowStatusItem,
AbortActionException, WorkflowCriticalityLevel,
AttachmentEvolutionPart, WorkflowBackofficeFieldsFormDef,
WorkflowVariablesFieldsFormDef,
perform_items)
from wcs.wf.aggregation_email import (AggregationEmailWorkflowStatusItem,
AggregationEmail, send_aggregation_emails)
@ -3475,6 +3476,22 @@ def test_global_timeouts(two_pubs):
assert formdef.data_class().get(formdata1.id).get_criticality_level_object().name == 'yellow'
formdata1.store()
# django template (from form_option_)
workflow.variables_formdef = WorkflowVariablesFieldsFormDef(workflow=workflow)
workflow.variables_formdef.fields = [
DateField(id='4', label='Date', type='date', varname='date'),
]
trigger.anchor = 'template'
trigger.anchor_template = '{{ form_option_date }}'
workflow.store()
formdef.workflow_options = {
'date': time.strptime('2015-05-12', '%Y-%m-%d'),
}
formdef.store()
pub.apply_global_action_timeouts()
assert formdef.data_class().get(formdata1.id).get_criticality_level_object().name == 'yellow'
formdata1.store()
def test_global_timeouts_latest_arrival(two_pubs):
pub = two_pubs

View File

@ -1194,7 +1194,7 @@ class WorkflowGlobalActionTimeoutTrigger(WorkflowGlobalActionTrigger):
else:
break
elif self.anchor == 'template':
variables = get_publisher().substitutions.get_context_variables()
variables = get_publisher().substitutions.get_context_variables(mode='lazy')
anchor_date = Template(self.anchor_template, autoescape=False).render(variables)
elif self.anchor == 'python':
variables = get_publisher().substitutions.get_context_variables()