當前位置: 首頁>>代碼示例>>Python>>正文


Python edit_handlers.TabbedInterface類代碼示例

本文整理匯總了Python中wagtail.wagtailadmin.edit_handlers.TabbedInterface的典型用法代碼示例。如果您正苦於以下問題:Python TabbedInterface類的具體用法?Python TabbedInterface怎麽用?Python TabbedInterface使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


在下文中一共展示了TabbedInterface類的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: get_edit_handler

    def get_edit_handler(self):
        """
        Get the EditHandler to use in the Wagtail admin when editing this page type.
        """
        if hasattr(self, 'edit_handler'):
            return self.edit_handler.bind_to_model(self)

        # construct a TabbedInterface made up of content_panels, promote_panels
        # and settings_panels, skipping any which are empty
        tabs = []

        for tab in self.tabs:
            title, content, *args = tab
            kwargs = args[0] if args else {}
            tabs.append(ObjectList(content, heading=title, **kwargs))

        model = self._meta.model
        EditHandler = TabbedInterface(tabs,
                                      base_form_class=model.base_form_class)
        return EditHandler.bind_to_model(model)
開發者ID:fabiommendes,項目名稱:codeschool,代碼行數:20,代碼來源:wagtailadmin.py

示例2: setUp

 def setUp(self):
     # a custom tabbed interface for EventPage
     self.EventPageTabbedInterface = TabbedInterface([
         ObjectList([
             FieldPanel('title', widget=forms.Textarea),
             FieldPanel('date_from'),
             FieldPanel('date_to'),
         ], heading='Event details', classname="shiny"),
         ObjectList([
             InlinePanel('speakers', label="Speakers"),
         ], heading='Speakers'),
     ]).bind_to_model(EventPage)
開發者ID:Fluxflashor,項目名稱:wagtail,代碼行數:12,代碼來源:test_edit_handlers.py

示例3: get_page_edit_handler

def get_page_edit_handler(page_class):
    if page_class not in PAGE_EDIT_HANDLERS:
        if hasattr(page_class, 'edit_handler'):
            # use the edit handler specified on the page class
            edit_handler = page_class.edit_handler
        else:
            # construct a TabbedInterface made up of content_panels, promote_panels
            # and settings_panels, skipping any which are empty
            tabs = []

            if page_class.content_panels:
                tabs.append(ObjectList(page_class.content_panels, heading=_('Content')))
            if page_class.promote_panels:
                tabs.append(ObjectList(page_class.promote_panels, heading=_('Promote')))
            if page_class.settings_panels:
                tabs.append(ObjectList(page_class.settings_panels, heading=_('Settings'), classname="settings"))

            edit_handler = TabbedInterface(tabs)

        PAGE_EDIT_HANDLERS[page_class] = edit_handler.bind_to_model(page_class)

    return PAGE_EDIT_HANDLERS[page_class]
開發者ID:pjdelport,項目名稱:wagtail,代碼行數:22,代碼來源:pages.py

示例4: TestTabbedInterface

class TestTabbedInterface(TestCase):
    def setUp(self):
        # a custom tabbed interface for EventPage
        self.EventPageTabbedInterface = TabbedInterface([
            ObjectList([
                FieldPanel('title', widget=forms.Textarea),
                FieldPanel('date_from'),
                FieldPanel('date_to'),
            ], heading='Event details', classname="shiny"),
            ObjectList([
                InlinePanel('speakers', label="Speakers"),
            ], heading='Speakers'),
        ]).bind_to_model(EventPage)

    def test_get_form_class(self):
        EventPageForm = self.EventPageTabbedInterface.get_form_class(EventPage)
        form = EventPageForm()

        # form must include the 'speakers' formset required by the speakers InlinePanel
        self.assertIn('speakers', form.formsets)

        # form must respect any overridden widgets
        self.assertEqual(type(form.fields['title'].widget), forms.Textarea)

    def test_render(self):
        EventPageForm = self.EventPageTabbedInterface.get_form_class(EventPage)
        event = EventPage(title='Abergavenny sheepdog trials')
        form = EventPageForm(instance=event)

        tabbed_interface = self.EventPageTabbedInterface(
            instance=event,
            form=form
        )

        result = tabbed_interface.render()

        # result should contain tab buttons
        self.assertIn('<a href="#event-details" class="active">Event details</a>', result)
        self.assertIn('<a href="#speakers" class="">Speakers</a>', result)

        # result should contain tab panels
        self.assertIn('<div class="tab-content">', result)
        self.assertIn('<section id="event-details" class="shiny active">', result)
        self.assertIn('<section id="speakers" class=" ">', result)

        # result should contain rendered content from descendants
        self.assertIn('Abergavenny sheepdog trials</textarea>', result)

        # this result should not include fields that are not covered by the panel definition
        self.assertNotIn('signup_link', result)

    def test_required_fields(self):
        # required_fields should report the set of form fields to be rendered recursively by children of TabbedInterface
        result = set(self.EventPageTabbedInterface.required_fields())
        self.assertEqual(result, set(['title', 'date_from', 'date_to']))

    def test_render_form_content(self):
        EventPageForm = self.EventPageTabbedInterface.get_form_class(EventPage)
        event = EventPage(title='Abergavenny sheepdog trials')
        form = EventPageForm(instance=event)

        tabbed_interface = self.EventPageTabbedInterface(
            instance=event,
            form=form
        )

        result = tabbed_interface.render_form_content()
        # rendered output should contain field content as above
        self.assertIn('Abergavenny sheepdog trials</textarea>', result)
        # rendered output should NOT include fields that are in the model but not represented
        # in the panel definition
        self.assertNotIn('signup_link', result)
開發者ID:Fluxflashor,項目名稱:wagtail,代碼行數:72,代碼來源:test_edit_handlers.py


注:本文中的wagtail.wagtailadmin.edit_handlers.TabbedInterface類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。