150 |
150 |
assert carddef.data_class().count() == 0
|
151 |
151 |
|
152 |
152 |
|
|
153 |
def test_create_carddata_with_links(pub):
|
|
154 |
CardDef.wipe()
|
|
155 |
FormDef.wipe()
|
|
156 |
|
|
157 |
carddef1 = CardDef()
|
|
158 |
carddef1.name = 'Card 1'
|
|
159 |
carddef1.fields = [
|
|
160 |
StringField(id='1', label='string', varname='foo'),
|
|
161 |
]
|
|
162 |
carddef1.store()
|
|
163 |
carddef1.data_class().wipe()
|
|
164 |
carddef2 = CardDef()
|
|
165 |
carddef2.name = 'Card 2'
|
|
166 |
carddef2.fields = [
|
|
167 |
StringField(id='1', label='string', varname='bar'),
|
|
168 |
ItemField(
|
|
169 |
id='2', label='card', varname='card1', data_source={'type': 'carddef:%s' % carddef1.url_name}
|
|
170 |
),
|
|
171 |
]
|
|
172 |
carddef2.store()
|
|
173 |
carddef2.data_class().wipe()
|
|
174 |
|
|
175 |
wf = Workflow(name='create-carddata')
|
|
176 |
st1 = wf.add_status('Create cards', 'st1')
|
|
177 |
create1 = CreateCarddataWorkflowStatusItem()
|
|
178 |
create1.label = 'Create CardDef1'
|
|
179 |
create1.varname = 'mycard1'
|
|
180 |
create1.id = '_create1'
|
|
181 |
create1.formdef_slug = carddef1.url_name
|
|
182 |
create1.mappings = [
|
|
183 |
Mapping(field_id='1', expression='{{ form_var_card1_foo }}'),
|
|
184 |
]
|
|
185 |
create1.parent = st1
|
|
186 |
st1.items.append(create1)
|
|
187 |
create2 = CreateCarddataWorkflowStatusItem()
|
|
188 |
create2.label = 'Create CardDef2'
|
|
189 |
create2.varname = 'mycard2'
|
|
190 |
create2.id = '_create2'
|
|
191 |
create2.formdef_slug = carddef2.url_name
|
|
192 |
create2.mappings = [
|
|
193 |
Mapping(field_id='1', expression='{{ form_var_card2_bar }}'),
|
|
194 |
Mapping(field_id='2', expression='{{ form_links_mycard1 }}'),
|
|
195 |
]
|
|
196 |
create2.parent = st1
|
|
197 |
st1.items.append(create2)
|
|
198 |
wf.store()
|
|
199 |
|
|
200 |
formdef = FormDef()
|
|
201 |
formdef.name = 'form'
|
|
202 |
formdef.fields = [
|
|
203 |
StringField(id='1', label='foo', varname='card1_foo'),
|
|
204 |
StringField(id='2', label='bar', varname='card2_bar'),
|
|
205 |
]
|
|
206 |
formdef.workflow_id = wf.id
|
|
207 |
formdef.store()
|
|
208 |
|
|
209 |
formdata = formdef.data_class()()
|
|
210 |
formdata.data = {
|
|
211 |
'1': 'card1 foo',
|
|
212 |
'2': 'card2 bar',
|
|
213 |
}
|
|
214 |
formdata.just_created()
|
|
215 |
formdata.perform_workflow()
|
|
216 |
|
|
217 |
assert carddef1.data_class().count() == 1
|
|
218 |
assert carddef2.data_class().count() == 1
|
|
219 |
carddata1 = carddef1.data_class().get(id=1)
|
|
220 |
carddata2 = carddef2.data_class().get(id=1)
|
|
221 |
assert carddata1.data['1'] == 'card1 foo'
|
|
222 |
assert carddata2.data['1'] == 'card2 bar'
|
|
223 |
assert carddata2.data['2'] == str(carddata1.id)
|
|
224 |
|
|
225 |
create2.mappings[1] = Mapping(field_id='2', expression='{{ form_links_mycard1_form_number_raw }}')
|
|
226 |
wf.store()
|
|
227 |
formdef = FormDef.get(formdef.id)
|
|
228 |
|
|
229 |
carddef1.data_class().wipe()
|
|
230 |
carddef2.data_class().wipe()
|
|
231 |
formdef.data_class().wipe()
|
|
232 |
formdata = formdef.data_class()()
|
|
233 |
formdata.data = {
|
|
234 |
'1': 'card1 fooo',
|
|
235 |
'2': 'card2 barr',
|
|
236 |
}
|
|
237 |
formdata.just_created()
|
|
238 |
formdata.perform_workflow()
|
|
239 |
|
|
240 |
assert carddef1.data_class().count() == 1
|
|
241 |
assert carddef2.data_class().count() == 1
|
|
242 |
carddata1 = carddef1.data_class().get(id=1)
|
|
243 |
carddata2 = carddef2.data_class().get(id=1)
|
|
244 |
assert carddata1.data['1'] == 'card1 fooo'
|
|
245 |
assert carddata2.data['1'] == 'card2 barr'
|
|
246 |
assert carddata2.data['2'] == str(carddata1.id)
|
|
247 |
|
|
248 |
|
153 |
249 |
def test_create_carddata_with_map_field(two_pubs):
|
154 |
250 |
CardDef.wipe()
|
155 |
251 |
FormDef.wipe()
|