wcs: card cell, by default configured for 'all cards' (#69019)
gitea-wip/combo/pipeline/head Build started... Details
gitea/combo/pipeline/head Something is wrong with the build of this commit Details

This commit is contained in:
Lauréline Guérin 2022-09-13 14:27:25 +02:00
parent 267cc62262
commit 77fa421ef4
No known key found for this signature in database
GPG Key ID: 1FAB9B9B4F93D473
4 changed files with 38 additions and 9 deletions

View File

@ -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() + [

View File

@ -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',

View File

@ -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)

View File

@ -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" }}',
)