11import os
22
33from django .db .models .signals import pre_save
4+ from django .urls import reverse
5+ from django .utils .translation import gettext_lazy as _
6+ from wagtail import hooks
7+ from wagtail .admin .menu import Menu , MenuItem , SubmenuMenuItem
48from wagtail .images import get_image_model
59
610
@@ -14,3 +18,70 @@ def ensure_image_title(sender, instance, **kwargs):
1418
1519
1620pre_save .connect (ensure_image_title , sender = get_image_model ())
21+
22+
23+ @hooks .register ("construct_main_menu" )
24+ def group_wagtail_cms_menu_items (request , menu_items ):
25+ cms_item_names = {"explorer" , "images" , "documents" , "xml_sps" }
26+ menu_items [:] = [item for item in menu_items if item .name not in cms_item_names ]
27+ cms_menu = Menu (
28+ items = [
29+ MenuItem (
30+ _ ("Páginas" ),
31+ reverse ("wagtailadmin_explore_root" ),
32+ name = "cms_pages" ,
33+ icon_name = "doc-empty-inverse" ,
34+ order = 100 ,
35+ ),
36+ MenuItem (
37+ _ ("Imagens" ),
38+ reverse ("wagtailimages:index" ),
39+ name = "cms_images" ,
40+ icon_name = "image" ,
41+ order = 200 ,
42+ ),
43+ MenuItem (
44+ _ ("Documentos" ),
45+ reverse ("wagtaildocs:index" ),
46+ name = "cms_documents" ,
47+ icon_name = "doc-full-inverse" ,
48+ order = 300 ,
49+ ),
50+ ]
51+ )
52+ menu_items .append (
53+ SubmenuMenuItem (
54+ _ ("Wagtail CMS" ),
55+ cms_menu ,
56+ icon_name = "folder-open-inverse" ,
57+ name = "wagtail_cms" ,
58+ order = 800 ,
59+ )
60+ )
61+ settings_index = next (
62+ (index for index , item in enumerate (menu_items ) if item .name == "settings" ),
63+ None ,
64+ )
65+ report_index = next (
66+ (index for index , item in enumerate (menu_items ) if item .name == "reports" ),
67+ None ,
68+ )
69+ if settings_index is not None and report_index is not None :
70+ reports_item = menu_items .pop (report_index )
71+ if report_index < settings_index :
72+ settings_index -= 1
73+ menu_items .insert (settings_index + 1 , reports_item )
74+
75+
76+ @hooks .register ("construct_help_menu" )
77+ def replace_help_menu_items (request , help_menu_items ):
78+ help_menu_items [:] = [
79+ MenuItem (
80+ _ ("Wiki do projeto" ),
81+ "https://github.com/scieloorg/markapi/wiki" ,
82+ name = "project_wiki" ,
83+ icon_name = "link-external" ,
84+ attrs = {"target" : "_blank" , "rel" : "noopener noreferrer" },
85+ order = 100 ,
86+ )
87+ ]
0 commit comments