在 Wagtail 管理员中如何禁用图像和文档的摘要项目?

In the Wagtail admin how to disable summary items of Images and Documents?

我知道我可以使用钩子删除页面摘要,实际上下面的代码示例应该已经删除了所有项目,但是图像和文档仍然存在。

@hooks.register("construct_homepage_summary_items")
def hide_images_and_documents_from_partners(request, summary_items):
    if request.user.groups.filter(name="Partners").exists():
        summary_items.clear()

Wagtail 也在内部使用 construct_homepage_summary_items 钩子,因此要使它正常工作,必须将 order 参数传递给 hooks.register() 以使这个钩子 运行 在鹡鸰核心中的每个钩子之后。

要隐藏图像和文档摘要项,可以使用以下代码:

from wagtail.admin.site_summary import PagesSummaryItem

@hooks.register("construct_homepage_summary_items", order=1)
def hide_everything_except_pages_summary_for_partners(request, summary_items):
    if request.user.groups.filter(name="Partners").exists():
        summary_items[:] = [i for i in summary_items if isinstance(i, PagesSummaryItem)]