14 |
14 |
|
15 |
15 |
from wcs.formdef import FormDef
|
16 |
16 |
from wcs import sessions
|
17 |
|
from wcs.fields import StringField, DateField, MapField, FileField
|
|
17 |
from wcs.fields import StringField, DateField, MapField, FileField, ItemField, ItemsField
|
18 |
18 |
from wcs.roles import Role
|
19 |
19 |
from wcs.workflows import (Workflow, WorkflowStatusItem,
|
20 |
20 |
SendmailWorkflowStatusItem, SendSMSWorkflowStatusItem,
|
... | ... | |
1781 |
1781 |
formdata = formdef.data_class().get(formdata.id)
|
1782 |
1782 |
assert not 'bo1' in formdata.data
|
1783 |
1783 |
assert not 'bo3' in formdata.data
|
|
1784 |
|
|
1785 |
def test_set_backoffice_field_item(pub):
|
|
1786 |
Workflow.wipe()
|
|
1787 |
wf = Workflow(name='xxx')
|
|
1788 |
wf.backoffice_fields_formdef = WorkflowBackofficeFieldsFormDef(wf)
|
|
1789 |
st1 = wf.add_status('Status1')
|
|
1790 |
wf.backoffice_fields_formdef.fields = [
|
|
1791 |
ItemField(id='bo1', label='1st backoffice field',
|
|
1792 |
type='item', varname='backoffice_item',
|
|
1793 |
items=['a', 'b', 'c']),
|
|
1794 |
]
|
|
1795 |
wf.store()
|
|
1796 |
|
|
1797 |
formdef = FormDef()
|
|
1798 |
formdef.name = 'baz'
|
|
1799 |
formdef.fields = []
|
|
1800 |
formdef.workflow_id = wf.id
|
|
1801 |
formdef.store()
|
|
1802 |
|
|
1803 |
formdata = formdef.data_class()()
|
|
1804 |
formdata.data = {}
|
|
1805 |
formdata.just_created()
|
|
1806 |
formdata.store()
|
|
1807 |
|
|
1808 |
item = SetBackofficeFieldsWorkflowStatusItem()
|
|
1809 |
item.parent = st1
|
|
1810 |
item.fields = [{'field_id': 'bo1', 'value': 'a'}]
|
|
1811 |
item.perform(formdata)
|
|
1812 |
|
|
1813 |
formdata = formdef.data_class().get(formdata.id)
|
|
1814 |
assert formdata.data['bo1'] == 'a'
|
|
1815 |
assert formdata.data['bo1_display'] == 'a'
|
|
1816 |
|
|
1817 |
datasource = {'type': 'formula',
|
|
1818 |
'value': repr([('a', 'aa'), ('b', 'bb'), ('c', 'cc')])}
|
|
1819 |
|
|
1820 |
wf.backoffice_fields_formdef.fields = [
|
|
1821 |
ItemField(id='bo1', label='1st backoffice field',
|
|
1822 |
type='item', varname='backoffice_item',
|
|
1823 |
data_source=datasource),
|
|
1824 |
]
|
|
1825 |
wf.store()
|
|
1826 |
|
|
1827 |
item = SetBackofficeFieldsWorkflowStatusItem()
|
|
1828 |
item.parent = st1
|
|
1829 |
item.fields = [{'field_id': 'bo1', 'value': 'a'}]
|
|
1830 |
item.perform(formdata)
|
|
1831 |
|
|
1832 |
formdata = formdef.data_class().get(formdata.id)
|
|
1833 |
assert formdata.data['bo1'] == 'a'
|
|
1834 |
assert formdata.data['bo1_display'] == 'aa'
|
|
1835 |
|
|
1836 |
def test_set_backoffice_field_items(pub):
|
|
1837 |
Workflow.wipe()
|
|
1838 |
wf = Workflow(name='xxx')
|
|
1839 |
wf.backoffice_fields_formdef = WorkflowBackofficeFieldsFormDef(wf)
|
|
1840 |
st1 = wf.add_status('Status1')
|
|
1841 |
wf.backoffice_fields_formdef.fields = [
|
|
1842 |
ItemsField(id='bo1', label='1st backoffice field',
|
|
1843 |
type='items', varname='backoffice_item',
|
|
1844 |
items=['a', 'b', 'c']),
|
|
1845 |
]
|
|
1846 |
wf.store()
|
|
1847 |
|
|
1848 |
formdef = FormDef()
|
|
1849 |
formdef.name = 'baz'
|
|
1850 |
formdef.fields = []
|
|
1851 |
formdef.workflow_id = wf.id
|
|
1852 |
formdef.store()
|
|
1853 |
|
|
1854 |
formdata = formdef.data_class()()
|
|
1855 |
formdata.data = {}
|
|
1856 |
formdata.just_created()
|
|
1857 |
formdata.store()
|
|
1858 |
|
|
1859 |
item = SetBackofficeFieldsWorkflowStatusItem()
|
|
1860 |
item.parent = st1
|
|
1861 |
item.fields = [{'field_id': 'bo1', 'value': "=['a', 'b']"}]
|
|
1862 |
item.perform(formdata)
|
|
1863 |
|
|
1864 |
formdata = formdef.data_class().get(formdata.id)
|
|
1865 |
assert formdata.data['bo1'] == ['a', 'b']
|
|
1866 |
assert formdata.data['bo1_display'] == 'a, b'
|
|
1867 |
|
|
1868 |
datasource = {'type': 'formula',
|
|
1869 |
'value': repr([('a', 'aa'), ('b', 'bb'), ('c', 'cc')])}
|
|
1870 |
|
|
1871 |
wf.backoffice_fields_formdef.fields = [
|
|
1872 |
ItemsField(id='bo1', label='1st backoffice field',
|
|
1873 |
type='items', varname='backoffice_item',
|
|
1874 |
data_source=datasource),
|
|
1875 |
]
|
|
1876 |
wf.store()
|
|
1877 |
|
|
1878 |
item = SetBackofficeFieldsWorkflowStatusItem()
|
|
1879 |
item.parent = st1
|
|
1880 |
item.fields = [{'field_id': 'bo1', 'value': "=['a', 'b']"}]
|
|
1881 |
item.perform(formdata)
|
|
1882 |
|
|
1883 |
formdata = formdef.data_class().get(formdata.id)
|
|
1884 |
assert formdata.data['bo1'] == ['a', 'b']
|
|
1885 |
assert formdata.data['bo1_display'] == 'aa, bb'
|