website/website/blog/wagtail_hooks.py
Jake Howard d995b412a0
Remove django-stubs
It's just not quite there yet for a lot of things, and makes certain things a right pain!
2022-07-28 20:15:20 +01:00

32 lines
903 B
Python

from django.http.request import HttpRequest
from django.urls import reverse
from wagtail import hooks
from wagtail.admin.menu import MenuItem
from .models import BlogPostTagListPage
class BlogPostTagsMenuItem(MenuItem):
url: str
def __init__(self) -> None:
super().__init__("Blog post tags", url="", icon_name="tag")
def is_shown(self, request: HttpRequest) -> bool:
if not self.url:
blog_post_tag_list_id = (
BlogPostTagListPage.objects.live().values_list("id", flat=True).first()
)
self.url = (
reverse("wagtailadmin_explore", args=[blog_post_tag_list_id])
if blog_post_tag_list_id
else ""
)
return bool(self.url)
@hooks.register("register_admin_menu_item")
def register_blog_post_tags_menu_item() -> MenuItem:
return BlogPostTagsMenuItem()