58 lines
1.6 KiB
Python
58 lines
1.6 KiB
Python
from django.urls import path, reverse_lazy
|
|
from django.utils.translation import gettext_lazy as _
|
|
from wagtail import hooks
|
|
from wagtail.admin.auth import user_passes_test
|
|
from wagtail.admin.menu import MenuItem
|
|
|
|
from .admin import event_sidebar_viewset, event_explorer_viewset
|
|
from .merge_organizers import MergeOrganizersConfirmView, MergeOrganizersSelectView
|
|
from .views import event_organizer_chooser_viewset
|
|
|
|
superuser_only = user_passes_test(lambda user: user.is_superuser)
|
|
|
|
|
|
class SuperuserMenuItem(MenuItem):
|
|
def is_shown(self, request):
|
|
return request.user.is_superuser
|
|
|
|
|
|
@hooks.register("register_admin_urls")
|
|
def register_merge_organizers_urls():
|
|
return [
|
|
path(
|
|
"merge-organizers/",
|
|
superuser_only(MergeOrganizersSelectView.as_view()),
|
|
name="events_merge_organizers",
|
|
),
|
|
path(
|
|
"merge-organizers/confirm/",
|
|
superuser_only(MergeOrganizersConfirmView.as_view()),
|
|
name="events_merge_organizers_confirm",
|
|
),
|
|
]
|
|
|
|
|
|
@hooks.register("register_settings_menu_item")
|
|
def register_merge_organizers_menu_item():
|
|
return SuperuserMenuItem(
|
|
_("Merge organizers"),
|
|
reverse_lazy("events_merge_organizers"),
|
|
icon_name="group",
|
|
order=1100,
|
|
)
|
|
|
|
|
|
@hooks.register("register_admin_viewset")
|
|
def register_viewset():
|
|
return event_organizer_chooser_viewset
|
|
|
|
|
|
@hooks.register("register_admin_viewset")
|
|
def register_event_sidebar_viewset():
|
|
return event_sidebar_viewset
|
|
|
|
|
|
@hooks.register("register_admin_viewset")
|
|
def register_event_explorer_viewset():
|
|
return event_explorer_viewset
|