From d44fafb8442a6f6595fb681fe6129951e263725d Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Tue, 18 May 2021 19:50:11 +0200 Subject: [PATCH] misc: handle invisible statuses using real_status (#40643) The formdata API returns the visible status in data.workflow.status, if we want to index the current status we must use data.workflow.real_status. --- wcs_olap/feeder.py | 4 +++- wcs_olap/wcs_api.py | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/wcs_olap/feeder.py b/wcs_olap/feeder.py index cdbe193..1805b61 100644 --- a/wcs_olap/feeder.py +++ b/wcs_olap/feeder.py @@ -828,7 +828,9 @@ class WcsFormdefFeeder(object): json_data = {} # ignore formdata without status - if data.workflow.status: + if data.workflow.real_status: + status_id = data.workflow.real_status.id + elif data.workflow.status: status_id = data.workflow.status.id elif data.evolution: for evolution in reversed(data.evolution): diff --git a/wcs_olap/wcs_api.py b/wcs_olap/wcs_api.py index 615a026..cd53827 100644 --- a/wcs_olap/wcs_api.py +++ b/wcs_olap/wcs_api.py @@ -78,11 +78,13 @@ class BaseObject(object): class FormDataWorkflow(BaseObject): status = None + real_status = None fields = None def __init__(self, wcs_api, **kwargs): super(FormDataWorkflow, self).__init__(wcs_api, **kwargs) self.status = BaseObject(wcs_api, **self.status) if self.status else None + self.real_status = BaseObject(wcs_api, **self.real_status) if self.real_status else None self.fields = self.fields or {}