TableBlock with custom TabbedInterface
See original GitHub issueWhen new TableBlock is used with default TabbedInterface - all works fine:
from wagtail.contrib.table_block.blocks import TableBlock
from wagtail.wagtailadmin.edit_handlers import StreamFieldPanel
from wagtail.wagtailcore.fields import StreamField
from wagtail.wagtailcore.models import Page
class TestPage(Page):
content = StreamField([
('table', TableBlock()),
])
search_fields = Page.search_fields
content_panels = Page.content_panels + [
StreamFieldPanel('content')
]
I see editor as expected:
But when I try to create custom TabbedInterface:
from wagtail.contrib.table_block.blocks import TableBlock
from wagtail.wagtailadmin.edit_handlers import StreamFieldPanel, TabbedInterface, ObjectList
from wagtail.wagtailcore.fields import StreamField
from wagtail.wagtailcore.models import Page
class TestPage(Page):
content = StreamField([
('table', TableBlock()),
])
search_fields = Page.search_fields
editor_content_panels = [
StreamFieldPanel('content')
]
edit_handler = TabbedInterface([
ObjectList(Page.content_panels, heading="Default Editor"),
ObjectList(Page.promote_panels, heading="Promote"),
ObjectList(Page.settings_panels, heading="Settings", classname='settings'),
ObjectList(editor_content_panels, heading="Editor"),
])
After creating new page with TableBlock and re-opening it for edition - table editor don’t appears:
But… After opening “Developer Tools” (F12) magic happens:
I’ve checked this bug with latest Chrome and Firefox. Looks like some JavaScript window refresh is needed on Tab click event.
Issue Analytics
- State:
- Created 7 years ago
- Reactions:1
- Comments:15 (4 by maintainers)
Top Results From Across the Web
Customising the editing interface - Wagtail's documentation
Customising the editing interface¶. Customising the tabbed interface¶. As standard, Wagtail organises panels for pages into three tabs: 'Content', ...
Read more >Custom Admin Tabs - Learn Wagtail
Learn how to create Wagtail websites with over 50 free tutorial videos and a professional beginners course.
Read more >Site settings — Wagtail 2.8.1 documentation
You can also customize the editor handlers like you would do for Page model with a custom ... from wagtail.admin.edit_handlers import TabbedInterface, ...
Read more >Using forms in admin views - Wagtail's documentation
A single panel object (usually ObjectList or TabbedInterface ) exists at the top level and is the only one directly accessed by the...
Read more >Customising CreateView, EditView and DeleteView — Wagtail ...
... edit_handler = TabbedInterface([ ObjectList(custom_panels, heading='First Tab'), ... Expected value: The path to a custom template to use for CreateView.
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
Oh, 2 hours spent and I finally found the solution:
It works for TableBlock and my MarkdownBlock.
@BertrandBordage 's fix helped, but didn’t work for me when the second tab is the active one when the page loads (on Chrome - Firefox was fine). I got this to work, but it’s very ugly:
There has to be a better way.