Set show_comments_toggle based on required fields (#7092)

* Set show_comments_toggle based on required fields

* Update test to use correct TabbedInterface arguments
pull/7100/head
Jacob Topp-Mugglestone 2021-04-26 08:56:00 +01:00 zatwierdzone przez GitHub
rodzic c97bc56c68
commit 82897ee573
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
2 zmienionych plików z 16 dodań i 5 usunięć

Wyświetl plik

@ -363,10 +363,13 @@ class BaseFormEditHandler(BaseCompositeEditHandler):
class TabbedInterface(BaseFormEditHandler):
template = "wagtailadmin/edit_handlers/tabbed_interface.html"
def __init__(self, *args, **kwargs):
def __init__(self, *args, show_comments_toggle=None, **kwargs):
self.base_form_class = kwargs.pop('base_form_class', None)
self.show_comments_toggle = kwargs.pop('show_comments_toggle', False)
super().__init__(*args, **kwargs)
if show_comments_toggle is not None:
self.show_comments_toggle = show_comments_toggle
else:
self.show_comments_toggle = 'comment_notifications' in self.required_fields()
def clone_kwargs(self):
kwargs = super().clone_kwargs()
@ -936,7 +939,7 @@ def get_edit_handler(cls):
heading=gettext_lazy('Settings'),
classname='settings'))
edit_handler = TabbedInterface(tabs, base_form_class=cls.base_form_class, show_comments_toggle=True)
edit_handler = TabbedInterface(tabs, base_form_class=cls.base_form_class)
return edit_handler.bind_to(model=cls)

Wyświetl plik

@ -1031,9 +1031,9 @@ There are no tabs on non-Page model editing within InlinePanels.""",
"""Checks should NOT warn if InlinePanel models use tabbed panels AND edit_handler"""
EventPageSpeaker.content_panels = [FieldPanel('first_name')]
EventPageSpeaker.edit_handler = TabbedInterface(
EventPageSpeaker.edit_handler = TabbedInterface([
ObjectList([FieldPanel('last_name')], heading='test')
)
])
# should not be any errors
self.assertEqual(self.get_checks_result(), [])
@ -1054,12 +1054,20 @@ class TestCommentPanel(TestCase, WagtailTestUtils):
self.object_list = ObjectList([
CommentPanel()
]).bind_to(model=EventPage, request=self.request)
self.tabbed_interface = TabbedInterface([self.object_list])
self.EventPageForm = self.object_list.get_form_class()
self.event_page = EventPage.objects.get(slug='christmas')
self.comment = Comment.objects.create(page=self.event_page, text='test', user=self.other_user, contentpath='test_contentpath')
self.reply_1 = CommentReply.objects.create(comment=self.comment, text='reply_1', user=self.other_user)
self.reply_2 = CommentReply.objects.create(comment=self.comment, text='reply_2', user=self.commenting_user)
def test_comments_toggle_enabled(self):
"""
Test that the comments toggle is enabled for a TabbedInterface containing CommentPanel, and disabled otherwise
"""
self.assertTrue(self.tabbed_interface.show_comments_toggle)
self.assertFalse(TabbedInterface([ObjectList(self.event_page.content_panels)]).show_comments_toggle)
def test_context(self):
"""
Test that the context contains the data about existing comments necessary to initialize the commenting app