wcs: display field labels an hide cell slug if possible (#68643)
This commit is contained in:
parent
f47971df8a
commit
c43d003e54
|
@ -1102,7 +1102,7 @@ class WcsCardCell(CardMixin, CellBase):
|
|||
if not self.carddef_reference:
|
||||
return []
|
||||
|
||||
def iter_relations(relations, path, label, carddefs_already_seen):
|
||||
def iter_relations(relations, path, labels, source_label, carddefs_already_seen):
|
||||
carddefs_already_seen = carddefs_already_seen[:]
|
||||
for relation in relations:
|
||||
new_path = '%s/%s%s' % (
|
||||
|
@ -1110,15 +1110,21 @@ class WcsCardCell(CardMixin, CellBase):
|
|||
'reverse:' if relation['reverse'] else '',
|
||||
relation['varname'],
|
||||
)
|
||||
_new_label = '%s/%s%s' % (
|
||||
label,
|
||||
relation['varname'],
|
||||
' (reverse)' if relation['reverse'] else '',
|
||||
)
|
||||
new_label = _('Linked card: %s') % _new_label
|
||||
new_labels = copy.deepcopy(labels)
|
||||
new_labels.append('"%s"' % (relation.get('label') or relation['varname']))
|
||||
if relation['reverse']:
|
||||
label = _('Linked cards%s: %s (reverse relation)') % (
|
||||
source_label,
|
||||
' -> '.join(reversed(new_labels)),
|
||||
)
|
||||
else:
|
||||
if relation['type'] == 'items':
|
||||
label = _('Linked cards%s: %s') % (source_label, ' -> '.join(new_labels))
|
||||
else:
|
||||
label = _('Linked card%s: %s') % (source_label, ' -> '.join(new_labels))
|
||||
if relation['obj'] == 'carddef:%s' % self.card_slug:
|
||||
# target carddef found
|
||||
yield (new_path, new_label)
|
||||
yield (new_path, label)
|
||||
if not relation['reverse'] and relation['type'] in ['item', 'computed']:
|
||||
# relation is not multiple, continue to search for matching relations
|
||||
new_card_slug = relation['obj'][8:] # remove 'carddef:'
|
||||
|
@ -1128,28 +1134,29 @@ class WcsCardCell(CardMixin, CellBase):
|
|||
yield from iter_relations(
|
||||
relations=new_card_schema.get('relations') or [],
|
||||
path=new_path,
|
||||
label=_new_label,
|
||||
labels=new_labels,
|
||||
source_label=source_label,
|
||||
carddefs_already_seen=carddefs_already_seen,
|
||||
)
|
||||
|
||||
# get cells with explicit ids
|
||||
results = []
|
||||
for cell in WcsCardCell.objects.filter(page=self.page_id).exclude(pk=self.pk):
|
||||
if not cell.slug:
|
||||
# no slug
|
||||
continue
|
||||
if cell.related_card_path:
|
||||
# no explicit ids
|
||||
continue
|
||||
if ',' in cell.card_ids:
|
||||
# multiple ids, can not follow relations
|
||||
continue
|
||||
cells = (
|
||||
WcsCardCell.objects.filter(page=self.page_id)
|
||||
.exclude(pk=self.pk)
|
||||
.exclude(slug='') # no slug
|
||||
.filter(related_card_path='') # no explicit ids
|
||||
.exclude(card_ids__contains=',') # multiple ids, can not follow relations
|
||||
)
|
||||
many_cells = len(cells) > 1
|
||||
for cell in cells:
|
||||
# follow relations
|
||||
results += list(
|
||||
iter_relations(
|
||||
relations=cell.cached_json.get('relations') or [],
|
||||
path=cell.slug,
|
||||
label=cell.slug,
|
||||
labels=[],
|
||||
source_label=' (%s)' % (_('From cell %s') % cell.slug) if many_cells else '',
|
||||
carddefs_already_seen=[self.card_slug],
|
||||
)
|
||||
)
|
||||
|
|
|
@ -500,12 +500,12 @@ def test_manager_card_cell(mock_send, app, admin_user):
|
|||
assert resp.forms[1]['c%s-related_card_path' % cell2.get_reference()].options == [
|
||||
('__all__', False, 'All cards'),
|
||||
('--', True, 'Card whose identifier is in the URL'),
|
||||
('sluga/cardb', False, 'Linked card: sluga/cardb'),
|
||||
('sluga/cardsb', False, 'Linked card: sluga/cardsb'),
|
||||
('sluga/blockb_cardb', False, 'Linked card: sluga/blockb_cardb'),
|
||||
('sluga/cardc/cardb', False, 'Linked card: sluga/cardc/cardb'),
|
||||
('sluga/cardc/cardsb', False, 'Linked card: sluga/cardc/cardsb'),
|
||||
('sluga/cardc/blockb_cardb', False, 'Linked card: sluga/cardc/blockb_cardb'),
|
||||
('sluga/cardb', False, 'Linked card: "Card B"'),
|
||||
('sluga/cardsb', False, 'Linked cards: "Cards B"'),
|
||||
('sluga/blockb_cardb', False, 'Linked card: "Block B - Card B"'),
|
||||
('sluga/cardc/cardb', False, 'Linked card: "Card C" -> "Card B"'),
|
||||
('sluga/cardc/cardsb', False, 'Linked cards: "Card C" -> "Cards B"'),
|
||||
('sluga/cardc/blockb_cardb', False, 'Linked card: "Card C" -> "Block B - Card B"'),
|
||||
('', False, 'Template'),
|
||||
]
|
||||
|
||||
|
@ -536,21 +536,21 @@ def test_manager_card_cell(mock_send, app, admin_user):
|
|||
assert resp.forms[0]['c%s-related_card_path' % cell.get_reference()].options == [
|
||||
('__all__', False, 'All cards'),
|
||||
('--', True, 'Card whose identifier is in the URL'),
|
||||
('slugb/reverse:cardb', False, 'Linked card: slugb/cardb (reverse)'),
|
||||
('slugb/reverse:cardsb', False, 'Linked card: slugb/cardsb (reverse)'),
|
||||
('slugb/reverse:blockb_cardb', False, 'Linked card: slugb/blockb_cardb (reverse)'),
|
||||
('slugb/reverse:cardb', False, 'Linked cards: "Card B" (reverse relation)'),
|
||||
('slugb/reverse:cardsb', False, 'Linked cards: "Cards B" (reverse relation)'),
|
||||
('slugb/reverse:blockb_cardb', False, 'Linked cards: "Block B - Card B" (reverse relation)'),
|
||||
('', False, 'Template'),
|
||||
]
|
||||
# still multiple relations to follow
|
||||
assert resp.forms[1]['c%s-related_card_path' % cell2.get_reference()].options == [
|
||||
('__all__', False, 'All cards'),
|
||||
('--', True, 'Card whose identifier is in the URL'),
|
||||
('sluga/cardb', False, 'Linked card: sluga/cardb'),
|
||||
('sluga/cardsb', False, 'Linked card: sluga/cardsb'),
|
||||
('sluga/blockb_cardb', False, 'Linked card: sluga/blockb_cardb'),
|
||||
('sluga/cardc/cardb', False, 'Linked card: sluga/cardc/cardb'),
|
||||
('sluga/cardc/cardsb', False, 'Linked card: sluga/cardc/cardsb'),
|
||||
('sluga/cardc/blockb_cardb', False, 'Linked card: sluga/cardc/blockb_cardb'),
|
||||
('sluga/cardb', False, 'Linked card: "Card B"'),
|
||||
('sluga/cardsb', False, 'Linked cards: "Cards B"'),
|
||||
('sluga/blockb_cardb', False, 'Linked card: "Block B - Card B"'),
|
||||
('sluga/cardc/cardb', False, 'Linked card: "Card C" -> "Card B"'),
|
||||
('sluga/cardc/cardsb', False, 'Linked cards: "Card C" -> "Cards B"'),
|
||||
('sluga/cardc/blockb_cardb', False, 'Linked card: "Card C" -> "Block B - Card B"'),
|
||||
('', False, 'Template'),
|
||||
]
|
||||
|
||||
|
@ -572,12 +572,12 @@ def test_manager_card_cell(mock_send, app, admin_user):
|
|||
assert resp.forms[1]['c%s-related_card_path' % cell2.get_reference()].options == [
|
||||
('__all__', False, 'All cards'),
|
||||
('--', False, 'Card whose identifier is in the URL'),
|
||||
('sluga/cardb', True, 'Linked card: sluga/cardb'),
|
||||
('sluga/cardsb', False, 'Linked card: sluga/cardsb'),
|
||||
('sluga/blockb_cardb', False, 'Linked card: sluga/blockb_cardb'),
|
||||
('sluga/cardc/cardb', False, 'Linked card: sluga/cardc/cardb'),
|
||||
('sluga/cardc/cardsb', False, 'Linked card: sluga/cardc/cardsb'),
|
||||
('sluga/cardc/blockb_cardb', False, 'Linked card: sluga/cardc/blockb_cardb'),
|
||||
('sluga/cardb', True, 'Linked card: "Card B"'),
|
||||
('sluga/cardsb', False, 'Linked cards: "Cards B"'),
|
||||
('sluga/blockb_cardb', False, 'Linked card: "Block B - Card B"'),
|
||||
('sluga/cardc/cardb', False, 'Linked card: "Card C" -> "Card B"'),
|
||||
('sluga/cardc/cardsb', False, 'Linked cards: "Card C" -> "Cards B"'),
|
||||
('sluga/cardc/blockb_cardb', False, 'Linked card: "Card C" -> "Block B - Card B"'),
|
||||
('', False, 'Template'),
|
||||
]
|
||||
resp.forms[1].submit()
|
||||
|
@ -597,15 +597,15 @@ def test_manager_card_cell(mock_send, app, admin_user):
|
|||
assert resp.forms[0]['c%s-related_card_path' % cell.get_reference()].options == [
|
||||
('__all__', False, 'All cards'),
|
||||
('--', True, 'Card whose identifier is in the URL'),
|
||||
('slugd/cardd-foo/carde-foo', False, 'Linked card: slugd/cardd-foo/carde-foo'),
|
||||
('slugd/carde-foo', False, 'Linked card: slugd/carde-foo'),
|
||||
('slugd/cardd-foo/carde-foo', False, 'Linked card: "Card D" -> "Card E"'),
|
||||
('slugd/carde-foo', False, 'Linked card: "Card E"'),
|
||||
('', False, 'Template'),
|
||||
]
|
||||
assert resp.forms[1]['c%s-related_card_path' % cell2.get_reference()].options == [
|
||||
('__all__', False, 'All cards'),
|
||||
('--', True, 'Card whose identifier is in the URL'),
|
||||
('sluge/cardd-bar', False, 'Linked card: sluge/cardd-bar'),
|
||||
('sluge/reverse:carde-foo', False, 'Linked card: sluge/carde-foo (reverse)'),
|
||||
('sluge/cardd-bar', False, 'Linked card: "Card D"'),
|
||||
('sluge/reverse:carde-foo', False, 'Linked cards: "Card E" (reverse relation)'),
|
||||
('', False, 'Template'),
|
||||
]
|
||||
|
||||
|
@ -620,23 +620,23 @@ def test_manager_card_cell(mock_send, app, admin_user):
|
|||
assert resp.forms[0]['c%s-related_card_path' % cell.get_reference()].options == [
|
||||
('__all__', False, 'All cards'),
|
||||
('--', True, 'Card whose identifier is in the URL'),
|
||||
('slugd-bis/cardd-foo', False, 'Linked card: slugd-bis/cardd-foo'),
|
||||
('slugd-bis/reverse:cardd-foo', False, 'Linked card: slugd-bis/cardd-foo (reverse)'),
|
||||
('slugd-bis/carde-foo/cardd-bar', False, 'Linked card: slugd-bis/carde-foo/cardd-bar'),
|
||||
('slugd-bis/cardd-foo', False, 'Linked card: "Card D"'),
|
||||
('slugd-bis/reverse:cardd-foo', False, 'Linked cards: "Card D" (reverse relation)'),
|
||||
('slugd-bis/carde-foo/cardd-bar', False, 'Linked card: "Card E" -> "Card D"'),
|
||||
(
|
||||
'slugd-bis/carde-foo/reverse:carde-foo',
|
||||
False,
|
||||
'Linked card: slugd-bis/carde-foo/carde-foo (reverse)',
|
||||
'Linked cards: "Card E" -> "Card E" (reverse relation)',
|
||||
),
|
||||
('', False, 'Template'),
|
||||
]
|
||||
assert resp.forms[1]['c%s-related_card_path' % cell2.get_reference()].options == [
|
||||
('__all__', False, 'All cards'),
|
||||
('--', True, 'Card whose identifier is in the URL'),
|
||||
('slugd/cardd-foo', False, 'Linked card: slugd/cardd-foo'),
|
||||
('slugd/reverse:cardd-foo', False, 'Linked card: slugd/cardd-foo (reverse)'),
|
||||
('slugd/carde-foo/cardd-bar', False, 'Linked card: slugd/carde-foo/cardd-bar'),
|
||||
('slugd/carde-foo/reverse:carde-foo', False, 'Linked card: slugd/carde-foo/carde-foo (reverse)'),
|
||||
('slugd/cardd-foo', False, 'Linked card: "Card D"'),
|
||||
('slugd/reverse:cardd-foo', False, 'Linked cards: "Card D" (reverse relation)'),
|
||||
('slugd/carde-foo/cardd-bar', False, 'Linked card: "Card E" -> "Card D"'),
|
||||
('slugd/carde-foo/reverse:carde-foo', False, 'Linked cards: "Card E" -> "Card E" (reverse relation)'),
|
||||
('', False, 'Template'),
|
||||
]
|
||||
|
||||
|
@ -651,13 +651,46 @@ def test_manager_card_cell(mock_send, app, admin_user):
|
|||
assert resp.forms[0]['c%s-related_card_path' % cell.get_reference()].options == [
|
||||
('__all__', False, 'All cards'),
|
||||
('--', True, 'Card whose identifier is in the URL'),
|
||||
('sluge-bis/cardd-bar/carde-foo', False, 'Linked card: sluge-bis/cardd-bar/carde-foo'),
|
||||
('sluge-bis/cardd-bar/carde-foo', False, 'Linked card: "Card D" -> "Card E"'),
|
||||
('', False, 'Template'),
|
||||
]
|
||||
assert resp.forms[1]['c%s-related_card_path' % cell2.get_reference()].options == [
|
||||
('__all__', False, 'All cards'),
|
||||
('--', True, 'Card whose identifier is in the URL'),
|
||||
('sluge/cardd-bar/carde-foo', False, 'Linked card: sluge/cardd-bar/carde-foo'),
|
||||
('sluge/cardd-bar/carde-foo', False, 'Linked card: "Card D" -> "Card E"'),
|
||||
('', False, 'Template'),
|
||||
]
|
||||
|
||||
# many cells with slug
|
||||
WcsCardCell.objects.create(
|
||||
page=page,
|
||||
placeholder='content',
|
||||
order=2,
|
||||
carddef_reference='default:card_e',
|
||||
slug="sluge-again",
|
||||
card_ids="42",
|
||||
)
|
||||
resp = app.get('/manage/pages/%s/' % page.pk)
|
||||
assert resp.forms[0]['c%s-related_card_path' % cell.get_reference()].options == [
|
||||
('__all__', False, 'All cards'),
|
||||
('--', True, 'Card whose identifier is in the URL'),
|
||||
(
|
||||
'sluge-again/cardd-bar/carde-foo',
|
||||
False,
|
||||
'Linked card (From cell sluge-again): "Card D" -> "Card E"',
|
||||
),
|
||||
('sluge-bis/cardd-bar/carde-foo', False, 'Linked card (From cell sluge-bis): "Card D" -> "Card E"'),
|
||||
('', False, 'Template'),
|
||||
]
|
||||
assert resp.forms[1]['c%s-related_card_path' % cell2.get_reference()].options == [
|
||||
('__all__', False, 'All cards'),
|
||||
('--', True, 'Card whose identifier is in the URL'),
|
||||
(
|
||||
'sluge-again/cardd-bar/carde-foo',
|
||||
False,
|
||||
'Linked card (From cell sluge-again): "Card D" -> "Card E"',
|
||||
),
|
||||
('sluge/cardd-bar/carde-foo', False, 'Linked card (From cell sluge): "Card D" -> "Card E"'),
|
||||
('', False, 'Template'),
|
||||
]
|
||||
|
||||
|
|
|
@ -256,10 +256,34 @@ WCS_CARDDEF_SCHEMAS = {
|
|||
{'label': 'Card C', 'varname': 'cardc', 'type': 'item'},
|
||||
],
|
||||
'relations': [
|
||||
{'obj': 'carddef:card_b', 'varname': 'cardb', 'type': 'item', 'reverse': False},
|
||||
{'obj': 'carddef:card_b', 'varname': 'cardsb', 'type': 'items', 'reverse': False},
|
||||
{'obj': 'carddef:card_b', 'varname': 'blockb_cardb', 'type': 'item', 'reverse': False},
|
||||
{'obj': 'carddef:card_c', 'varname': 'cardc', 'type': 'item', 'reverse': False},
|
||||
{
|
||||
'obj': 'carddef:card_b',
|
||||
'varname': 'cardb',
|
||||
'label': 'Card B',
|
||||
'type': 'item',
|
||||
'reverse': False,
|
||||
},
|
||||
{
|
||||
'obj': 'carddef:card_b',
|
||||
'varname': 'cardsb',
|
||||
'label': 'Cards B',
|
||||
'type': 'items',
|
||||
'reverse': False,
|
||||
},
|
||||
{
|
||||
'obj': 'carddef:card_b',
|
||||
'varname': 'blockb_cardb',
|
||||
'label': 'Block B - Card B',
|
||||
'type': 'item',
|
||||
'reverse': False,
|
||||
},
|
||||
{
|
||||
'obj': 'carddef:card_c',
|
||||
'varname': 'cardc',
|
||||
'label': 'Card C',
|
||||
'type': 'item',
|
||||
'reverse': False,
|
||||
},
|
||||
{
|
||||
'obj': 'carddef:card_z', # unknown card model
|
||||
'varname': 'cardz',
|
||||
|
@ -272,12 +296,36 @@ WCS_CARDDEF_SCHEMAS = {
|
|||
'name': 'Card B',
|
||||
'fields': [],
|
||||
'relations': [
|
||||
{'obj': 'carddef:card_a', 'varname': 'cardb', 'type': 'item', 'reverse': True},
|
||||
{'obj': 'carddef:card_a', 'varname': 'cardsb', 'type': 'items', 'reverse': True},
|
||||
{'obj': 'carddef:card_a', 'varname': 'blockb_cardb', 'type': 'item', 'reverse': True},
|
||||
{'obj': 'carddef:card_c', 'varname': 'cardb', 'type': 'item', 'reverse': True},
|
||||
{'obj': 'carddef:card_c', 'varname': 'cardsb', 'type': 'items', 'reverse': True},
|
||||
{'obj': 'carddef:card_c', 'varname': 'blockb_cardb', 'type': 'item', 'reverse': True},
|
||||
{'obj': 'carddef:card_a', 'varname': 'cardb', 'label': 'Card B', 'type': 'item', 'reverse': True},
|
||||
{
|
||||
'obj': 'carddef:card_a',
|
||||
'varname': 'cardsb',
|
||||
'label': 'Cards B',
|
||||
'type': 'items',
|
||||
'reverse': True,
|
||||
},
|
||||
{
|
||||
'obj': 'carddef:card_a',
|
||||
'varname': 'blockb_cardb',
|
||||
'label': 'Block B - Card B',
|
||||
'type': 'item',
|
||||
'reverse': True,
|
||||
},
|
||||
{'obj': 'carddef:card_c', 'varname': 'cardb', 'label': 'Card B', 'type': 'item', 'reverse': True},
|
||||
{
|
||||
'obj': 'carddef:card_c',
|
||||
'varname': 'cardsb',
|
||||
'label': 'Cards B',
|
||||
'type': 'items',
|
||||
'reverse': True,
|
||||
},
|
||||
{
|
||||
'obj': 'carddef:card_c',
|
||||
'varname': 'blockb_cardb',
|
||||
'label': 'Block B - Card B',
|
||||
'type': 'item',
|
||||
'reverse': True,
|
||||
},
|
||||
],
|
||||
},
|
||||
'card_c': {
|
||||
|
@ -288,10 +336,28 @@ WCS_CARDDEF_SCHEMAS = {
|
|||
{'label': 'Block B', 'varname': 'blockb', 'type': 'block:b'},
|
||||
],
|
||||
'relations': [
|
||||
{'obj': 'carddef:card_b', 'varname': 'cardb', 'type': 'item', 'reverse': False},
|
||||
{'obj': 'carddef:card_b', 'varname': 'cardsb', 'type': 'items', 'reverse': False},
|
||||
{'obj': 'carddef:card_b', 'varname': 'blockb_cardb', 'type': 'item', 'reverse': False},
|
||||
{'obj': 'carddef:card_a', 'varname': 'cardc', 'type': 'item', 'reverse': True},
|
||||
{
|
||||
'obj': 'carddef:card_b',
|
||||
'varname': 'cardb',
|
||||
'label': 'Card B',
|
||||
'type': 'item',
|
||||
'reverse': False,
|
||||
},
|
||||
{
|
||||
'obj': 'carddef:card_b',
|
||||
'varname': 'cardsb',
|
||||
'label': 'Cards B',
|
||||
'type': 'items',
|
||||
'reverse': False,
|
||||
},
|
||||
{
|
||||
'obj': 'carddef:card_b',
|
||||
'varname': 'blockb_cardb',
|
||||
'label': 'Block B - Card B',
|
||||
'type': 'item',
|
||||
'reverse': False,
|
||||
},
|
||||
{'obj': 'carddef:card_a', 'varname': 'cardc', 'label': 'Card C', 'type': 'item', 'reverse': True},
|
||||
],
|
||||
},
|
||||
'card_d': {
|
||||
|
@ -301,9 +367,27 @@ WCS_CARDDEF_SCHEMAS = {
|
|||
{'label': 'Card E', 'varname': 'carde-foo', 'type': 'item'},
|
||||
],
|
||||
'relations': [
|
||||
{'obj': 'carddef:card_d', 'varname': 'cardd-foo', 'type': 'item', 'reverse': False},
|
||||
{'obj': 'carddef:card_d', 'varname': 'cardd-foo', 'type': 'item', 'reverse': True},
|
||||
{'obj': 'carddef:card_e', 'varname': 'carde-foo', 'type': 'item', 'reverse': False},
|
||||
{
|
||||
'obj': 'carddef:card_d',
|
||||
'varname': 'cardd-foo',
|
||||
'label': 'Card D',
|
||||
'type': 'item',
|
||||
'reverse': False,
|
||||
},
|
||||
{
|
||||
'obj': 'carddef:card_d',
|
||||
'varname': 'cardd-foo',
|
||||
'label': 'Card D',
|
||||
'type': 'item',
|
||||
'reverse': True,
|
||||
},
|
||||
{
|
||||
'obj': 'carddef:card_e',
|
||||
'varname': 'carde-foo',
|
||||
'label': 'Card E',
|
||||
'type': 'item',
|
||||
'reverse': False,
|
||||
},
|
||||
],
|
||||
},
|
||||
'card_e': {
|
||||
|
@ -312,8 +396,20 @@ WCS_CARDDEF_SCHEMAS = {
|
|||
{'label': 'Card D', 'varname': 'cardd-bar', 'type': 'item'},
|
||||
],
|
||||
'relations': [
|
||||
{'obj': 'carddef:card_d', 'varname': 'cardd-bar', 'type': 'item', 'reverse': False},
|
||||
{'obj': 'carddef:card_d', 'varname': 'carde-foo', 'type': 'item', 'reverse': True},
|
||||
{
|
||||
'obj': 'carddef:card_d',
|
||||
'varname': 'cardd-bar',
|
||||
'label': 'Card D',
|
||||
'type': 'item',
|
||||
'reverse': False,
|
||||
},
|
||||
{
|
||||
'obj': 'carddef:card_d',
|
||||
'varname': 'carde-foo',
|
||||
'label': 'Card E',
|
||||
'type': 'item',
|
||||
'reverse': True,
|
||||
},
|
||||
],
|
||||
},
|
||||
'card_f': {
|
||||
|
@ -322,7 +418,13 @@ WCS_CARDDEF_SCHEMAS = {
|
|||
{'label': 'Card H', 'varname': 'cardh', 'type': 'item'},
|
||||
],
|
||||
'relations': [
|
||||
{'obj': 'carddef:card_h', 'varname': 'cardh', 'type': 'item', 'reverse': False},
|
||||
{
|
||||
'obj': 'carddef:card_h',
|
||||
'varname': 'cardh',
|
||||
'label': 'Card H',
|
||||
'type': 'item',
|
||||
'reverse': False,
|
||||
},
|
||||
],
|
||||
},
|
||||
'card_g': {
|
||||
|
@ -331,15 +433,21 @@ WCS_CARDDEF_SCHEMAS = {
|
|||
{'label': 'Card H', 'varname': 'cardh', 'type': 'item'},
|
||||
],
|
||||
'relations': [
|
||||
{'obj': 'carddef:card_h', 'varname': 'cardh', 'type': 'item', 'reverse': False},
|
||||
{
|
||||
'obj': 'carddef:card_h',
|
||||
'varname': 'cardh',
|
||||
'label': 'Card H',
|
||||
'type': 'item',
|
||||
'reverse': False,
|
||||
},
|
||||
],
|
||||
},
|
||||
'card_h': {
|
||||
'name': 'Card H',
|
||||
'fields': [],
|
||||
'relations': [
|
||||
{'obj': 'carddef:card_f', 'varname': 'cardh', 'type': 'item', 'reverse': True},
|
||||
{'obj': 'carddef:card_g', 'varname': 'cardh', 'type': 'item', 'reverse': True},
|
||||
{'obj': 'carddef:card_f', 'varname': 'cardh', 'label': 'Card H', 'type': 'item', 'reverse': True},
|
||||
{'obj': 'carddef:card_g', 'varname': 'cardh', 'label': 'Card H', 'type': 'item', 'reverse': True},
|
||||
],
|
||||
},
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue