Initial commit
This commit is contained in:
50
env/lib/python3.10/site-packages/wagtail/snippets/wagtail_hooks.py
vendored
Normal file
50
env/lib/python3.10/site-packages/wagtail/snippets/wagtail_hooks.py
vendored
Normal file
@@ -0,0 +1,50 @@
|
||||
from django.urls import include, path, reverse
|
||||
from django.utils.functional import cached_property
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from wagtail import hooks
|
||||
from wagtail.admin.menu import MenuItem
|
||||
from wagtail.snippets.bulk_actions.delete import DeleteBulkAction
|
||||
from wagtail.snippets.models import get_snippet_models
|
||||
from wagtail.snippets.permissions import user_can_access_snippets
|
||||
from wagtail.snippets.views import snippets as snippet_views
|
||||
|
||||
|
||||
@hooks.register("register_admin_urls")
|
||||
def register_admin_urls():
|
||||
snippet_index_patterns = (
|
||||
[
|
||||
path("", snippet_views.ModelIndexView.as_view(), name="index"),
|
||||
],
|
||||
"wagtailsnippets",
|
||||
)
|
||||
|
||||
return [
|
||||
path("snippets/", include(snippet_index_patterns)),
|
||||
]
|
||||
|
||||
|
||||
class SnippetsMenuItem(MenuItem):
|
||||
@cached_property
|
||||
def _all_have_menu_items(self):
|
||||
return all(
|
||||
model.snippet_viewset.get_menu_item_is_registered()
|
||||
for model in get_snippet_models()
|
||||
)
|
||||
|
||||
def is_shown(self, request):
|
||||
return not self._all_have_menu_items and user_can_access_snippets(request.user)
|
||||
|
||||
|
||||
@hooks.register("register_admin_menu_item")
|
||||
def register_snippets_menu_item():
|
||||
return SnippetsMenuItem(
|
||||
_("Snippets"),
|
||||
reverse("wagtailsnippets:index"),
|
||||
name="snippets",
|
||||
icon_name="snippet",
|
||||
order=500,
|
||||
)
|
||||
|
||||
|
||||
hooks.register("register_bulk_action", DeleteBulkAction)
|
||||
Reference in New Issue
Block a user