4631 |
4631 |
item.fields = [{'field_id': 'bo1', 'value': "{{form_var_items_raw}}"}]
|
4632 |
4632 |
item.perform(formdata)
|
4633 |
4633 |
|
|
4634 |
# using a single int
|
|
4635 |
datasource = {'type': 'formula',
|
|
4636 |
'value': repr([{'id': 1, 'text': 'aa', 'more': 'aaa'},
|
|
4637 |
{'id': 2, 'text': 'bb', 'more': 'bbb'},
|
|
4638 |
{'id': 3, 'text': 'cc', 'more': 'ccc'}])}
|
|
4639 |
|
|
4640 |
wf.backoffice_fields_formdef.fields = [
|
|
4641 |
ItemsField(id='bo1', label='1st backoffice field',
|
|
4642 |
type='items', varname='backoffice_item',
|
|
4643 |
data_source=datasource),
|
|
4644 |
]
|
|
4645 |
wf.store()
|
|
4646 |
|
|
4647 |
item = SetBackofficeFieldsWorkflowStatusItem()
|
|
4648 |
item.parent = st1
|
|
4649 |
item.fields = [{'field_id': 'bo1', 'value': "=2"}]
|
|
4650 |
item.perform(formdata)
|
|
4651 |
|
|
4652 |
formdata = formdef.data_class().get(formdata.id)
|
|
4653 |
if two_pubs.is_using_postgresql():
|
|
4654 |
assert formdata.data['bo1'] == ['2']
|
|
4655 |
else:
|
|
4656 |
assert formdata.data['bo1'] == [2]
|
|
4657 |
assert formdata.data['bo1_display'] == 'bb'
|
|
4658 |
assert len(formdata.data['bo1_structured']) == 1
|
|
4659 |
|
|
4660 |
# using an invalid value
|
|
4661 |
if two_pubs.is_using_postgresql():
|
|
4662 |
formdata.data = {}
|
|
4663 |
formdata.store()
|
|
4664 |
two_pubs.loggederror_class.wipe()
|
|
4665 |
item = SetBackofficeFieldsWorkflowStatusItem()
|
|
4666 |
item.parent = st1
|
|
4667 |
item.fields = [{'field_id': 'bo1', 'value': "=Ellipsis"}]
|
|
4668 |
item.perform(formdata)
|
|
4669 |
assert two_pubs.loggederror_class.count() == 1
|
|
4670 |
logged_error = two_pubs.loggederror_class.select()[0]
|
|
4671 |
assert 'Failed to convert' in logged_error.summary
|
|
4672 |
|
|
4673 |
# using a string with multiple values
|
|
4674 |
item = SetBackofficeFieldsWorkflowStatusItem()
|
|
4675 |
item.parent = st1
|
|
4676 |
item.fields = [{'field_id': 'bo1', 'value': "1|3"}]
|
|
4677 |
item.perform(formdata)
|
|
4678 |
|
|
4679 |
formdata = formdef.data_class().get(formdata.id)
|
|
4680 |
assert formdata.data['bo1'] == ['1', '3']
|
|
4681 |
assert formdata.data['bo1_display'] == 'aa, cc'
|
|
4682 |
assert len(formdata.data['bo1_structured']) == 2
|
|
4683 |
assert {'id': 1, 'more': 'aaa', 'text': 'aa'} in formdata.data['bo1_structured']
|
|
4684 |
assert {'id': 3, 'more': 'ccc', 'text': 'cc'} in formdata.data['bo1_structured']
|
|
4685 |
|
4634 |
4686 |
|
4635 |
4687 |
def test_set_backoffice_field_date(two_pubs):
|
4636 |
4688 |
Workflow.wipe()
|