If current status is invisible, search last one from evolutions (fixes #14257)

This commit is contained in:
Benjamin Dauvergne 2016-12-10 10:19:29 +01:00
parent 2bdd5ef6c2
commit 00f34ea1b1
1 changed files with 12 additions and 3 deletions

View File

@ -579,10 +579,19 @@ class WcsFormdefFeeder(object):
for data in self.formdef.datas:
# ignore formdata without status
if not data.workflow.status:
if data.workflow.status:
status_id = data.workflow.status.id
elif data.evolution:
for evolution in reversed(data.evolution):
if evolution.status:
status_id = evolution.status
break
else:
continue
else:
continue
status = data.formdef.schema.workflow.statuses_map[data.workflow.status.id]
status = data.formdef.schema.workflow.statuses_map[status_id]
channel = data.submission.channel.lower()
if channel == 'web' and data.submission.backoffice:
channel = 'backoffice'
@ -593,7 +602,7 @@ class WcsFormdefFeeder(object):
'channel_id': self.channel_to_id[channel],
'backoffice': data.submission.backoffice,
'generic_status_id': self.generic_status(status),
'status_id': self.status_mapping[data.workflow.status.id],
'status_id': self.status_mapping[status_id],
'endpoint_delay': data.endpoint_delay,
'first_agent_id': self.get_first_agent_in_evolution(data),
}