Projet

Général

Profil

0002-general-expose-structured-data-in-substitution-varia.patch

Frédéric Péters, 05 juin 2015 11:50

Télécharger (2,6 ko)

Voir les différences:

Subject: [PATCH 2/2] general: expose structured data in substitution variables
 (#7472)

 wcs/formdata.py |  7 +++++++
 wcs/formdef.py  | 11 ++++++++++-
 2 files changed, 17 insertions(+), 1 deletion(-)
wcs/formdata.py
69 69
                                formdata.get_url(), field.id)
70 70
                elif raw_value:
71 71
                    new_data['var_%s_raw' % field.varname] = raw_value
72
            if field.store_structured_value:
73
                structured_value = data.get('%s_structured' % field.id)
74
                if structured_value:
75
                    for k, v in structured_value.items():
76
                        if k in ('id', 'text'):
77
                            continue
78
                        new_data['var_%s_%s' % (field.varname, k)] = v
72 79
    return new_data
73 80

  
74 81
def flatten_dict(d):
wcs/formdef.py
299 299
        for field in self.workflow.variables_formdef.fields:
300 300
            if not field.varname:
301 301
                continue
302
            variables['form_option_' + field.varname] = self.workflow_options.get(field.varname)
302
            option_name = 'form_option_' + field.varname
303
            variables[option_name] = self.workflow_options.get(field.varname)
304
            if field.store_structured_value:
305
                if '%s_structured' % field.varname in self.workflow_options:
306
                    variables[option_name + '_structured'] = self.workflow_options.get(
307
                            '%s_structured' % field.varname)
303 308
        return variables
304 309

  
305 310
    def get_variable_options_for_form(self):
......
321 326
            if not field.varname:
322 327
                continue
323 328
            variables[field.varname] = data.get(field.id)
329
            if field.store_display_value:
330
                variables[field.varname + '_display'] = data.get(field.id + '_display')
331
            if field.store_structured_value:
332
                variables[field.varname + '_structured'] = data.get(field.id + '_structured')
324 333
        if not self.workflow_options:
325 334
            self.workflow_options = {}
326 335
        self.workflow_options.update(variables)
327
-