backoffice: add link to datasources in form inspect page (#68841)
gitea-wip/wcs/pipeline/head Build started...
Details
gitea-wip/wcs/pipeline/head Build started...
Details
This commit is contained in:
parent
106c98192c
commit
7a9702e2d4
|
@ -6,6 +6,7 @@ import xml.etree.ElementTree as ET
|
|||
|
||||
import pytest
|
||||
import responses
|
||||
from pyquery import PyQuery
|
||||
from webtest import Upload
|
||||
|
||||
from wcs import fields
|
||||
|
@ -3475,6 +3476,12 @@ def test_admin_form_inspect(pub):
|
|||
carddef.name = 'Baz'
|
||||
carddef.digest_templates = {'default': 'plop'}
|
||||
carddef.store()
|
||||
pub.custom_view_class.wipe()
|
||||
custom_view = pub.custom_view_class()
|
||||
custom_view.title = 'custom'
|
||||
custom_view.formdef = carddef
|
||||
custom_view.visibility = 'datasource'
|
||||
custom_view.store()
|
||||
|
||||
Workflow.wipe()
|
||||
workflow = Workflow(name='Workflow One')
|
||||
|
@ -3524,6 +3531,12 @@ def test_admin_form_inspect(pub):
|
|||
fields.ItemField(
|
||||
id='7', label='Item field carddef data source', type='item', data_source={'type': 'carddef:baz'}
|
||||
),
|
||||
fields.ItemField(
|
||||
id='70',
|
||||
label='Item field carddef data source',
|
||||
type='item',
|
||||
data_source={'type': 'carddef:baz:custom'},
|
||||
),
|
||||
fields.ItemField(
|
||||
id='8',
|
||||
label='Item field json data source',
|
||||
|
@ -3562,8 +3575,35 @@ def test_admin_form_inspect(pub):
|
|||
)
|
||||
assert resp.pyquery('[data-field-id="5"] .parameter-items').text() == 'Choices: One, Two, Three'
|
||||
assert resp.pyquery('[data-field-id="6"] .parameter-data_source').text() == 'Data source: Foobar'
|
||||
assert resp.pyquery('[data-field-id="6"] .parameter-data_source a').text() == 'Foobar'
|
||||
assert (
|
||||
resp.pyquery('[data-field-id="7"] .parameter-data_source').text() == 'Data source: card model - Baz'
|
||||
resp.pyquery('[data-field-id="6"] .parameter-data_source a').attr['href']
|
||||
== 'http://example.net/backoffice/settings/data-sources/1/'
|
||||
)
|
||||
assert resp.pyquery('[data-field-id="7"] .parameter-data_source').text() == 'Data source: card model: Baz'
|
||||
assert resp.pyquery('[data-field-id="7"] .parameter-data_source a').text() == 'card model: Baz'
|
||||
assert (
|
||||
resp.pyquery('[data-field-id="7"] .parameter-data_source a').attr['href']
|
||||
== 'http://example.net/backoffice/cards/1/'
|
||||
)
|
||||
assert (
|
||||
resp.pyquery('[data-field-id="70"] .parameter-data_source').text()
|
||||
== 'Data source: card model: Baz, custom view: custom'
|
||||
)
|
||||
assert (
|
||||
PyQuery(resp.pyquery('[data-field-id="70"] .parameter-data_source a')[0]).text() == 'card model: Baz'
|
||||
)
|
||||
assert (
|
||||
PyQuery(resp.pyquery('[data-field-id="70"] .parameter-data_source a')[0]).attr['href']
|
||||
== 'http://example.net/backoffice/cards/1/'
|
||||
)
|
||||
assert (
|
||||
PyQuery(resp.pyquery('[data-field-id="70"] .parameter-data_source a')[1]).text()
|
||||
== 'custom view: custom'
|
||||
)
|
||||
assert (
|
||||
PyQuery(resp.pyquery('[data-field-id="70"] .parameter-data_source a')[1]).attr['href']
|
||||
== 'http://example.net/backoffice/data/baz/custom'
|
||||
)
|
||||
assert (
|
||||
resp.pyquery('[data-field-id="8"] .parameter-data_source').text()
|
||||
|
|
|
@ -798,9 +798,17 @@ class Field:
|
|||
except KeyError:
|
||||
return _('deleted card model')
|
||||
custom_view = CardDef.get_data_source_custom_view(value['type'], carddef=carddef)
|
||||
r = htmltext('<a href="%(url)s">%(label)s</a>') % {
|
||||
'label': _('card model: %s') % carddef.name,
|
||||
'url': carddef.get_admin_url(),
|
||||
}
|
||||
if custom_view:
|
||||
return _('card model: %s, custom view: %s') % (carddef.name, custom_view.title)
|
||||
return '%s - %s' % (_('card model'), carddef.name)
|
||||
r += ', '
|
||||
r += htmltext('<a href="%(url)s">%(label)s</a>') % {
|
||||
'label': _('custom view: %s') % custom_view.title,
|
||||
'url': '%s%s' % (carddef.get_url(), custom_view.get_url_slug()),
|
||||
}
|
||||
return r
|
||||
|
||||
data_source_types = {
|
||||
'json': _('JSON URL'),
|
||||
|
@ -814,7 +822,10 @@ class Field:
|
|||
from wcs.data_sources import NamedDataSource
|
||||
|
||||
data_source = NamedDataSource.get_by_slug(value['type'])
|
||||
return data_source.name
|
||||
return htmltext('<a href="%(url)s">%(label)s</a>') % {
|
||||
'label': data_source.name,
|
||||
'url': data_source.get_admin_url(),
|
||||
}
|
||||
|
||||
def get_condition_parameter_view_value(self, widget):
|
||||
if not self.condition or self.condition.get('type') == 'none':
|
||||
|
|
Loading…
Reference in New Issue