Skip to content

Instantly share code, notes, and snippets.

@kiwiheretic
Created March 10, 2021 23:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kiwiheretic/9c970a21b7a0f603d258bef6a7d9f649 to your computer and use it in GitHub Desktop.
Save kiwiheretic/9c970a21b7a0f603d258bef6a7d9f649 to your computer and use it in GitHub Desktop.
Altered permissions.py code
from wagtail.contrib.modeladmin.options import (
ModelAdmin, modeladmin_register)
from .models import SiteSettings , GlobalSettings
from django.contrib.auth.models import Permission
from django.utils.translation import gettext_lazy as _
from django.urls import reverse, path, include
from wagtail.admin.menu import MenuItem
from wagtail.core import hooks
from .permissions import permission_policy
class GlobalSettingsAdmin(ModelAdmin):
model = GlobalSettings
add_to_settings_menu = True # or True to add your model to the Settings sub-menu
class SiteSettingsAdmin(ModelAdmin):
model = SiteSettings
menu_label = 'Other Content' # ditch this to use verbose_name_plural from model
menu_icon = 'cog' # change as required
menu_order = 200 # will put in 3rd place (000 being 1st, 100 2nd)
add_to_settings_menu = False # or True to add your model to the Settings sub-menu
class RedirectsMenuItem(MenuItem):
pass
# def is_shown(self, request):
# return permission_policy.user_has_any_permission(request.user, ['add', 'change', 'delete'])
#@hooks.register('register_settings_menu_item')
def register_redirects_menu_item():
return RedirectsMenuItem(
_('Global Settings'), reverse('sitesettings_globalsettings_modeladmin_edit', args=(1,)), classnames='icon icon-cog', order=800
)
#@hooks.register('register_permissions')
#def register_permissions():
# return Permission.objects.filter(
# content_type__app_label='redirects', codename__in=['add_redirect', 'change_redirect', 'delete_redirect']
# )
# Now you just need to register your customised ModelAdmin class with Wagtail
modeladmin_register(SiteSettingsAdmin)
modeladmin_register(GlobalSettingsAdmin)
@cnk
Copy link

cnk commented Mar 11, 2021

Try adding this:

class GlobalSettingsMenuItem(ModelAdminMenuItem):
def is_shown(self, request):
return False

class GlobalSettingsAdmin(ModelAdmin):
model = GlobalSettings
add_to_settings_menu = True # or True to add your model to the Settings sub-menu

def get_menu_item(self, order=None):
    return GlobalSettingsMenuItem(self, order)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment