From 70476c60794de33b2d636bb4370167bf96fccdfc Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Fri, 17 May 2019 20:08:42 +0200 Subject: [PATCH 4/5] formdata: ease iteration of evolutions parts (#33186) --- wcs/formdata.py | 6 ++++++ wcs/workflows.py | 6 ++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/wcs/formdata.py b/wcs/formdata.py index 769aa08d..dc03ebdf 100644 --- a/wcs/formdata.py +++ b/wcs/formdata.py @@ -1042,6 +1042,12 @@ class FormData(StorableObject): field.feed_session(self.data.get(field.id), self.data.get('%s_display' % field.id)) + def iter_evolution_parts(self, klass=None): + for evo in self.evolution or []: + for part in evo.parts or []: + if klass is None or isinstance(part, klass): + yield part + def __getattr__(self, attr): try: return self.__dict__[attr] diff --git a/wcs/workflows.py b/wcs/workflows.py index 58b6c24d..b33926f0 100644 --- a/wcs/workflows.py +++ b/wcs/workflows.py @@ -127,10 +127,7 @@ class NamedAttachmentsSubstitutionProxy(object): def get_attachments(self): attachments = [] - for evo in self.formdata.evolution or []: - for part in evo.parts or []: - if not isinstance(part, AttachmentEvolutionPart): - continue + for part in self.formdata.iter_evolution_parts(AttachmentEvolutionPart): if part.varname != self.varname: continue attachments.append(part) @@ -2812,5 +2809,6 @@ def load_extra(): import wf.profile import wf.backoffice_fields import wf.redirect_to_url + import wf.formdata from wf.export_to_model import ExportToModel -- 2.20.1