0001-workflows-store-structured-values-in-backoffice-fiel.patch
tests/test_workflows.py | ||
---|---|---|
3170 | 3170 |
assert formdata.data['bo1'] == 'a' |
3171 | 3171 |
assert formdata.data['bo1_display'] == 'aa' |
3172 | 3172 | |
3173 |
datasource = {'type': 'formula', |
|
3174 |
'value': repr([{'id': 'a', 'text': 'aa', 'more': 'aaa'}, |
|
3175 |
{'id': 'b', 'text': 'bb', 'more': 'bbb'}])} |
|
3176 | ||
3177 |
wf.backoffice_fields_formdef.fields = [ |
|
3178 |
ItemField(id='bo1', label='1st backoffice field', |
|
3179 |
type='item', varname='backoffice_item', |
|
3180 |
data_source=datasource), |
|
3181 |
] |
|
3182 |
wf.store() |
|
3183 | ||
3184 |
item = SetBackofficeFieldsWorkflowStatusItem() |
|
3185 |
item.parent = st1 |
|
3186 |
item.fields = [{'field_id': 'bo1', 'value': 'a'}] |
|
3187 |
item.perform(formdata) |
|
3188 | ||
3189 |
formdata = formdef.data_class().get(formdata.id) |
|
3190 |
assert formdata.data['bo1'] == 'a' |
|
3191 |
assert formdata.data['bo1_display'] == 'aa' |
|
3192 |
assert formdata.data['bo1_structured'] == {'id': 'a', 'more': 'aaa', 'text': 'aa'} |
|
3193 | ||
3173 | 3194 |
def test_set_backoffice_field_items(two_pubs): |
3174 | 3195 |
Workflow.wipe() |
3175 | 3196 |
FormDef.wipe() |
wcs/wf/backoffice_fields.py | ||
---|---|---|
117 | 117 |
formdata.data['%s_display' % formdef_field.id] = display_value |
118 | 118 |
elif formdata.data.has_key('%s_display' % formdef_field.id): |
119 | 119 |
del formdata.data['%s_display' % formdef_field.id] |
120 |
if formdef_field.store_structured_value and formdata.data.get(formdef_field.id): |
|
121 |
structured_value = formdef_field.store_structured_value(formdata.data, |
|
122 |
formdef_field.id) |
|
123 |
if structured_value: |
|
124 |
formdata.data['%s_structured' % formdef_field.id] = structured_value |
|
125 |
elif '%s_structured' % formdef_field.id in formdata.data: |
|
126 |
del formdata.data['%s_structured' % formdef_field.id] |
|
120 | 127 | |
121 | 128 |
# store formdata everytime so substitution cache is invalidated, |
122 | 129 |
# and backoffice field values can be used in subsequent fields. |
123 |
- |