wcs: card cell, by default configured for 'all cards' (#69019)
This commit is contained in:
parent
267cc62262
commit
77fa421ef4
|
@ -52,7 +52,7 @@ class WcsCardCellForm(forms.ModelForm):
|
|||
with_user = forms.BooleanField(
|
||||
label=_('Restrict to cards accessible to the user'), required=False, initial=True
|
||||
)
|
||||
related_card_path = forms.ChoiceField(label=_('Card(s) to display'), required=False)
|
||||
related_card_path = forms.ChoiceField(label=_('Card(s) to display'), required=False, initial='__all__')
|
||||
|
||||
class Meta:
|
||||
model = WcsCardCell
|
||||
|
@ -82,7 +82,6 @@ class WcsCardCellForm(forms.ModelForm):
|
|||
self.fields['related_card_path'].choices += [
|
||||
('--', _('Card whose identifier is in the URL')),
|
||||
]
|
||||
self.fields['related_card_path'].initial = '--'
|
||||
if not self.instance.card_ids and not self.instance.related_card_path:
|
||||
self.initial['related_card_path'] = '--'
|
||||
self.fields['related_card_path'].choices += self.instance.get_related_card_paths() + [
|
||||
|
|
|
@ -49,7 +49,9 @@ class Migration(migrations.Migration):
|
|||
('carddef_reference', models.CharField(max_length=150, verbose_name='Card Model')),
|
||||
(
|
||||
'related_card_path',
|
||||
models.CharField(blank=True, max_length=1000, verbose_name='Card(s) to display'),
|
||||
models.CharField(
|
||||
blank=True, max_length=1000, verbose_name='Card(s) to display', default='__all__'
|
||||
),
|
||||
),
|
||||
(
|
||||
'card_ids',
|
||||
|
|
|
@ -825,7 +825,9 @@ class CardMixin:
|
|||
@register_cell_class
|
||||
class WcsCardCell(CardMixin, CellBase):
|
||||
carddef_reference = models.CharField(_('Card Model'), max_length=150)
|
||||
related_card_path = models.CharField(_('Card(s) to display'), max_length=1000, blank=True)
|
||||
related_card_path = models.CharField(
|
||||
_('Card(s) to display'), max_length=1000, blank=True, default='__all__'
|
||||
)
|
||||
card_ids = models.CharField(_('Other Card Identifiers'), max_length=1000, blank=True)
|
||||
only_for_user = models.BooleanField(_('Limit to cards linked to the logged-in user'), default=False)
|
||||
without_user = models.BooleanField(_('Ignore the logged-in user'), default=False)
|
||||
|
|
|
@ -144,10 +144,11 @@ def test_card_cell_setup(mock_send, app, admin_user):
|
|||
],
|
||||
}
|
||||
|
||||
assert cell.related_card_path == ''
|
||||
assert cell.related_card_path == '__all__'
|
||||
assert cell.card_ids == ''
|
||||
resp = app.get('/manage/pages/%s/' % page.pk)
|
||||
assert resp.forms[0]['c%s-related_card_path' % cell.get_reference()].value == '--'
|
||||
assert resp.forms[0]['c%s-related_card_path' % cell.get_reference()].value == '__all__'
|
||||
resp.forms[0]['c%s-related_card_path' % cell.get_reference()].value = '--'
|
||||
resp.forms[0]['c%s-card_ids' % cell.get_reference()].value = '42'
|
||||
manager_submit_cell(resp.forms[0])
|
||||
cell.refresh_from_db()
|
||||
|
@ -389,6 +390,7 @@ def test_card_cell_check_validity(mock_send):
|
|||
placeholder='content',
|
||||
order=0,
|
||||
carddef_reference='default:card_a',
|
||||
related_card_path='',
|
||||
card_ids='1',
|
||||
)
|
||||
cell2 = WcsCardCell.objects.create(
|
||||
|
@ -425,7 +427,12 @@ def test_card_cell_check_validity(mock_send):
|
|||
@mock.patch('requests.Session.send', side_effect=mocked_requests_send)
|
||||
def test_manager_card_cell(mock_send, app, admin_user):
|
||||
page = Page.objects.create(title='xxx', slug='test_cards', template_name='standard', sub_slug='foobar')
|
||||
cell = WcsCardCell.objects.create(page=page, placeholder='content', order=0)
|
||||
cell = WcsCardCell.objects.create(
|
||||
page=page,
|
||||
placeholder='content',
|
||||
order=0,
|
||||
related_card_path='',
|
||||
)
|
||||
|
||||
app = login(app)
|
||||
resp = app.get('/manage/pages/%s/' % page.pk)
|
||||
|
@ -470,7 +477,11 @@ def test_manager_card_cell(mock_send, app, admin_user):
|
|||
cell.related_card_path = ''
|
||||
cell.save()
|
||||
cell2 = WcsCardCell.objects.create(
|
||||
page=page, placeholder='content', order=1, carddef_reference='default:card_b'
|
||||
page=page,
|
||||
placeholder='content',
|
||||
order=1,
|
||||
carddef_reference='default:card_b',
|
||||
related_card_path='',
|
||||
)
|
||||
resp = app.get('/manage/pages/%s/' % page.pk)
|
||||
# still no relation to follow
|
||||
|
@ -669,6 +680,7 @@ def test_manager_card_cell(mock_send, app, admin_user):
|
|||
carddef_reference='default:card_e',
|
||||
slug="sluge-again",
|
||||
card_ids="42",
|
||||
related_card_path='',
|
||||
)
|
||||
resp = app.get('/manage/pages/%s/' % page.pk)
|
||||
assert resp.forms[0]['c%s-related_card_path' % cell.get_reference()].options == [
|
||||
|
@ -744,6 +756,7 @@ def test_card_cell_table_mode_render(mock_send, context, app):
|
|||
order=0,
|
||||
display_mode='table',
|
||||
carddef_reference='default:card_model_1',
|
||||
related_card_path='',
|
||||
)
|
||||
|
||||
context['card_model_1_id'] = 11
|
||||
|
@ -1172,6 +1185,7 @@ def test_card_cell_table_mode_render_identifier(mock_send, nocache, app):
|
|||
order=0,
|
||||
display_mode='table',
|
||||
carddef_reference='default:card_model_1',
|
||||
related_card_path='',
|
||||
)
|
||||
|
||||
cell_url = reverse(
|
||||
|
@ -1248,6 +1262,7 @@ def test_card_cell_table_mode_render_identifier_from_related(mock_send, nocache,
|
|||
slug='sluga',
|
||||
carddef_reference='default:card_a',
|
||||
card_ids='1',
|
||||
related_card_path='',
|
||||
)
|
||||
cell2 = WcsCardCell.objects.create(
|
||||
page=page, placeholder='content', order=1, slug='slugb', carddef_reference='default:card_b'
|
||||
|
@ -1341,6 +1356,7 @@ def test_card_cell_card_mode_render(mock_send, context, app):
|
|||
display_mode='card',
|
||||
title_type='manual',
|
||||
custom_title='Foo bar {{ card.fields.title }}',
|
||||
related_card_path='',
|
||||
)
|
||||
|
||||
# carddef_reference is not defined
|
||||
|
@ -1889,6 +1905,7 @@ def test_card_cell_card_mode_render_custom_schema_custom_entry(mock_send, contex
|
|||
},
|
||||
]
|
||||
},
|
||||
related_card_path='',
|
||||
)
|
||||
|
||||
context['card_model_1_id'] = 11
|
||||
|
@ -2007,6 +2024,7 @@ def test_card_cell_card_mode_render_custom_schema_link_entry(mock_send, context,
|
|||
},
|
||||
]
|
||||
},
|
||||
related_card_path='',
|
||||
)
|
||||
|
||||
context['card_model_1_id'] = 11
|
||||
|
@ -2117,7 +2135,11 @@ def test_card_cell_card_mode_render_identifier(mock_send, nocache, app):
|
|||
title='xxx', slug='foo', template_name='standard', sub_slug='(?P<card_model_1_id>[a-z0-9]+)'
|
||||
)
|
||||
cell = WcsCardCell.objects.create(
|
||||
page=page, placeholder='content', order=0, carddef_reference='default:card_model_1'
|
||||
page=page,
|
||||
placeholder='content',
|
||||
order=0,
|
||||
carddef_reference='default:card_model_1',
|
||||
related_card_path='',
|
||||
)
|
||||
|
||||
cell_url = reverse(
|
||||
|
@ -2258,6 +2280,7 @@ def test_card_cell_card_mode_render_identifier_from_related(mock_send, nocache,
|
|||
display_mode='card',
|
||||
slug='sluga',
|
||||
carddef_reference='default:card_a',
|
||||
related_card_path='',
|
||||
card_ids='1',
|
||||
)
|
||||
cell2 = WcsCardCell.objects.create(
|
||||
|
@ -2796,6 +2819,7 @@ def test_card_cell_only_for_user(mock_send, context, carddef_reference):
|
|||
order=0,
|
||||
carddef_reference=carddef_reference,
|
||||
only_for_user=False,
|
||||
related_card_path='',
|
||||
)
|
||||
|
||||
context['card_model_1_id'] = 11
|
||||
|
@ -2842,6 +2866,7 @@ def test_card_cell_render_user(mock_send, context, nocache, carddef_reference):
|
|||
placeholder='content',
|
||||
order=0,
|
||||
carddef_reference=carddef_reference,
|
||||
related_card_path='',
|
||||
)
|
||||
|
||||
context['card_model_1_id'] = 11
|
||||
|
@ -2902,6 +2927,7 @@ def test_cell_condition(mock_send, nocache, app):
|
|||
placeholder='content',
|
||||
order=0,
|
||||
carddef_reference='default:card_model_1',
|
||||
related_card_path='',
|
||||
card_ids='{{ cards|objects:"card_model_1"|last|get:"id" }}',
|
||||
)
|
||||
|
||||
|
|
Loading…
Reference in New Issue