From 424abbcfd000dada88c36bc13e1b4e89fe4b96a7 Mon Sep 17 00:00:00 2001 From: Sergi Almacellas Abellana Date: Mon, 12 May 2025 15:17:26 +0200 Subject: [PATCH] Do not require result nor type for inactive documents Otherwise children documents can not be processed because the parent document raises a RequiredValidationError when saved Closes #14015 (grafted from e09cd53b9c701ef8da73163e9834d1f3db5a8e37) --HG-- branch : 7.0 --- modules/document_incoming/document.py | 4 ++-- .../tests/scenario_document_incoming_split.rst | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/modules/document_incoming/document.py b/modules/document_incoming/document.py index 5bf678a104..acfbc0edc4 100644 --- a/modules/document_incoming/document.py +++ b/modules/document_incoming/document.py @@ -54,7 +54,7 @@ class Incoming(DeactivableMixin, Workflow, ModelSQL, ModelView): ('document_incoming', "Unknown"), ], "Type", states={ - 'required': Eval('state') == 'done', + 'required': Eval('active', True) & (Eval('state') == 'done'), 'readonly': _states['readonly'], }) source = fields.Char("Source", states=_states) @@ -74,7 +74,7 @@ class Incoming(DeactivableMixin, Workflow, ModelSQL, ModelView): result = fields.Reference( "Result", selection='get_results', readonly=True, states={ - 'required': Eval('state') == 'done', + 'required': Eval('active', True) & (Eval('state') == 'done'), 'invisible': ~Eval('result'), }) state = fields.Selection([ diff --git a/modules/document_incoming/tests/scenario_document_incoming_split.rst b/modules/document_incoming/tests/scenario_document_incoming_split.rst index 2dfb96de1c..e7d84c6f3d 100644 --- a/modules/document_incoming/tests/scenario_document_incoming_split.rst +++ b/modules/document_incoming/tests/scenario_document_incoming_split.rst @@ -37,3 +37,11 @@ Split in 2:: >>> len(document.children) 2 + +Process parent document:: + + >>> document.click('process') + >>> document.state + 'done' + >>> bool(document.result) + False