28 |
28 |
from quixote import cleanup, get_publisher, get_response
|
29 |
29 |
from wcs.qommon import ods
|
30 |
30 |
from wcs.api_utils import sign_url
|
|
31 |
from wcs.blocks import BlockDef
|
31 |
32 |
from wcs.qommon import errors, sessions
|
32 |
33 |
from wcs.qommon.form import PicklableUpload
|
33 |
34 |
from wcs.qommon.ident.password_accounts import PasswordAccount
|
... | ... | |
6918 |
6919 |
|
6919 |
6920 |
resp = resp.forms['listing-settings'].submit()
|
6920 |
6921 |
assert resp.text.count('<tr') == 6
|
|
6922 |
|
|
6923 |
|
|
6924 |
def test_block_card_item_link(pub, studio, blocks_feature):
|
|
6925 |
user = create_user(pub)
|
|
6926 |
CardDef.wipe()
|
|
6927 |
carddef = CardDef()
|
|
6928 |
carddef.name = 'foo'
|
|
6929 |
carddef.fields = [
|
|
6930 |
fields.StringField(id='1', label='Test', type='string', varname='foo'),
|
|
6931 |
]
|
|
6932 |
carddef.backoffice_submission_roles = user.roles
|
|
6933 |
carddef.workflow_roles = {'_editor': user.roles[0]}
|
|
6934 |
carddef.digest_template = 'card {{form_var_foo}}'
|
|
6935 |
carddef.store()
|
|
6936 |
carddef.data_class().wipe()
|
|
6937 |
|
|
6938 |
card = carddef.data_class()()
|
|
6939 |
card.data = {'1': 'plop'}
|
|
6940 |
card.store()
|
|
6941 |
|
|
6942 |
card2 = carddef.data_class()()
|
|
6943 |
card2.data = {'1': 'plop2'}
|
|
6944 |
card2.store()
|
|
6945 |
|
|
6946 |
block = BlockDef()
|
|
6947 |
block.name = 'foobar'
|
|
6948 |
block.fields = [
|
|
6949 |
fields.ItemField(id='1', label='Test', type='item',
|
|
6950 |
data_source={'type': 'carddef:foo', 'value': ''}),
|
|
6951 |
]
|
|
6952 |
block.store()
|
|
6953 |
|
|
6954 |
formdef = FormDef()
|
|
6955 |
formdef.name = 'bar'
|
|
6956 |
formdef.fields = [
|
|
6957 |
fields.BlockField(id='1', label='test', type='block:foobar', max_items=3),
|
|
6958 |
]
|
|
6959 |
formdef.store()
|
|
6960 |
formdef.data_class().wipe()
|
|
6961 |
|
|
6962 |
app = login(get_app(pub))
|
|
6963 |
resp = app.get('/bar/')
|
|
6964 |
resp.form['f1$element0$f1'].value = card.id
|
|
6965 |
resp = resp.form.submit('f1$add_element')
|
|
6966 |
resp.form['f1$element1$f1'].value = card2.id
|
|
6967 |
resp = resp.form.submit('submit') # -> validation page
|
|
6968 |
assert resp.form['f1$element0$f1'].value == str(card.id)
|
|
6969 |
assert resp.form['f1$element0$f1_label'].value == 'card plop'
|
|
6970 |
assert resp.form['f1$element1$f1'].value == str(card2.id)
|
|
6971 |
assert resp.form['f1$element1$f1_label'].value == 'card plop2'
|
|
6972 |
resp = resp.form.submit('submit') # -> final submit
|
|
6973 |
resp = resp.follow()
|
|
6974 |
assert '<div class="value">card plop</div>' in resp
|
|
6975 |
assert '<div class="value">card plop2</div>' in resp
|
|
6976 |
|
|
6977 |
# check cards are links in backoffice
|
|
6978 |
resp = app.get('/backoffice/management' + resp.request.path)
|
|
6979 |
assert '<div class="value"><a href="http://example.net/backoffice/data/foo/%s/">card plop</a></div></div>' % card.id in resp
|
|
6980 |
assert '<div class="value"><a href="http://example.net/backoffice/data/foo/%s/">card plop2</a></div></div>' % card2.id in resp
|
6921 |
|
-
|