From 37285e9285936ec913b6b2652f5d76e495ecf536 Mon Sep 17 00:00:00 2001 From: GitInno <86991526+gitnnolabs@users.noreply.github.com> Date: Mon, 1 Jun 2026 00:25:46 -0300 Subject: [PATCH] =?UTF-8?q?Reorganiza=C3=A7=C3=A3o=20do=20menu=20admin=20p?= =?UTF-8?q?ara=20Marca=C3=A7=C3=A3o=20e=20XML=20SPS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/menu.py | 4 +- core/wagtail_hooks.py | 71 ++++++++++++++++++ .../static/core_settings/css/admin_logo.css | 4 +- .../static/core_settings/img/favicon.ico | Bin 0 -> 9005 bytes core_settings/wagtail_hooks.py | 3 +- django_celery_beat/wagtail_hooks.py | 2 + markup_doc/wagtail_hooks.py | 39 ++++++++-- model_ai/wagtail_hooks.py | 3 +- reference/wagtail_hooks.py | 6 +- tracker/wagtail_hooks.py | 2 + xml_manager/wagtail_hooks.py | 33 ++------ 11 files changed, 124 insertions(+), 43 deletions(-) create mode 100644 core_settings/static/core_settings/img/favicon.ico diff --git a/config/menu.py b/config/menu.py index 80d992c..04b4fda 100644 --- a/config/menu.py +++ b/config/menu.py @@ -1,7 +1,7 @@ WAGTAIL_MENU_APPS_ORDER = [ + "sps_package_validation", "markup_doc", - "xml_manager", - "reference", + "scielo", "tracker", "model_ai", "django_celery_beat", diff --git a/core/wagtail_hooks.py b/core/wagtail_hooks.py index 385612f..df63ea1 100644 --- a/core/wagtail_hooks.py +++ b/core/wagtail_hooks.py @@ -1,6 +1,10 @@ import os from django.db.models.signals import pre_save +from django.urls import reverse +from django.utils.translation import gettext_lazy as _ +from wagtail import hooks +from wagtail.admin.menu import Menu, MenuItem, SubmenuMenuItem from wagtail.images import get_image_model @@ -14,3 +18,70 @@ def ensure_image_title(sender, instance, **kwargs): pre_save.connect(ensure_image_title, sender=get_image_model()) + + +@hooks.register("construct_main_menu") +def group_wagtail_cms_menu_items(request, menu_items): + cms_item_names = {"explorer", "images", "documents", "xml_sps"} + menu_items[:] = [item for item in menu_items if item.name not in cms_item_names] + cms_menu = Menu( + items=[ + MenuItem( + _("Páginas"), + reverse("wagtailadmin_explore_root"), + name="cms_pages", + icon_name="doc-empty-inverse", + order=100, + ), + MenuItem( + _("Imagens"), + reverse("wagtailimages:index"), + name="cms_images", + icon_name="image", + order=200, + ), + MenuItem( + _("Documentos"), + reverse("wagtaildocs:index"), + name="cms_documents", + icon_name="doc-full-inverse", + order=300, + ), + ] + ) + menu_items.append( + SubmenuMenuItem( + _("Wagtail CMS"), + cms_menu, + icon_name="folder-open-inverse", + name="wagtail_cms", + order=800, + ) + ) + settings_index = next( + (index for index, item in enumerate(menu_items) if item.name == "settings"), + None, + ) + report_index = next( + (index for index, item in enumerate(menu_items) if item.name == "reports"), + None, + ) + if settings_index is not None and report_index is not None: + reports_item = menu_items.pop(report_index) + if report_index < settings_index: + settings_index -= 1 + menu_items.insert(settings_index + 1, reports_item) + + +@hooks.register("construct_help_menu") +def replace_help_menu_items(request, help_menu_items): + help_menu_items[:] = [ + MenuItem( + _("Wiki do projeto"), + "https://github.com/scieloorg/markapi/wiki", + name="project_wiki", + icon_name="link-external", + attrs={"target": "_blank", "rel": "noopener noreferrer"}, + order=100, + ) + ] diff --git a/core_settings/static/core_settings/css/admin_logo.css b/core_settings/static/core_settings/css/admin_logo.css index ed825d5..3b39249 100644 --- a/core_settings/static/core_settings/css/admin_logo.css +++ b/core_settings/static/core_settings/css/admin_logo.css @@ -1,12 +1,12 @@ .custom-admin-logo { display: block; - max-height: 2.5rem; + max-height: 4rem; max-width: 100%; width: auto; height: auto; } .custom-admin-logo--login { - max-height: 4rem; + max-height: 5rem; margin: 0 auto; } diff --git a/core_settings/static/core_settings/img/favicon.ico b/core_settings/static/core_settings/img/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..409a1229e69d700b7914eb8d5e349081a726323c GIT binary patch literal 9005 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 literal 0 HcmV?d00001 diff --git a/core_settings/wagtail_hooks.py b/core_settings/wagtail_hooks.py index 04b82de..4afa96c 100644 --- a/core_settings/wagtail_hooks.py +++ b/core_settings/wagtail_hooks.py @@ -6,6 +6,7 @@ @hooks.register("insert_global_admin_css") def admin_logo_css(): return format_html( - '', + '', static("core_settings/css/admin_logo.css"), + static("core_settings/img/favicon.ico"), ) diff --git a/django_celery_beat/wagtail_hooks.py b/django_celery_beat/wagtail_hooks.py index 429a804..6fa0c62 100644 --- a/django_celery_beat/wagtail_hooks.py +++ b/django_celery_beat/wagtail_hooks.py @@ -190,6 +190,8 @@ class TasksModelsAdminGroup(ModelAdminGroup): menu_label = _("Tarefas agendadas") menu_icon = "time" menu_order = get_menu_order("django_celery_beat") + add_to_admin_menu = False + add_to_settings_menu = True items = ( PeriodicTaskAdmin, CrontabScheduleAdmin, diff --git a/markup_doc/wagtail_hooks.py b/markup_doc/wagtail_hooks.py index 6ecb304..4eb729b 100644 --- a/markup_doc/wagtail_hooks.py +++ b/markup_doc/wagtail_hooks.py @@ -7,7 +7,6 @@ from django.utils.translation import gettext_lazy as _ from wagtail import hooks from wagtail.admin import messages -from wagtail_modeladmin.options import ModelAdmin from wagtail.snippets.models import register_snippet from wagtail.snippets.views.snippets import ( CreateView, @@ -15,6 +14,7 @@ SnippetViewSet, SnippetViewSetGroup, ) +from wagtail_modeladmin.options import ModelAdmin from config.menu import get_menu_order from markup_doc import views @@ -25,10 +25,13 @@ ProcessStatus, UploadDocx, ) - -from markup_doc import views from markup_doc.sync_api import sync_collection_from_api from markup_doc.tasks import get_labels, task_sync_journals_from_api, update_xml +from reference.wagtail_hooks import ReferenceModelViewSet +from xml_manager.wagtail_hooks import ( + XMLDocumentHTMLSnippetViewSet, + XMLDocumentPDFSnippetViewSet, +) @hooks.register("register_admin_urls") @@ -181,17 +184,39 @@ def index_view(self, request): return response +class XMLSPSSnippetViewSetGroup(SnippetViewSetGroup): + menu_name = "xml_sps" + menu_label = _("XML SPS") + menu_icon = "code" + items = ( + MarkupXMLViewSet, + XMLDocumentPDFSnippetViewSet, + XMLDocumentHTMLSnippetViewSet, + ReferenceModelViewSet, + ) + + +class ScieloSnippetViewSetGroup(SnippetViewSetGroup): + menu_name = "scielo" + menu_label = _("SciELO") + menu_icon = "folder-open-inverse" + menu_order = get_menu_order("scielo") + items = ( + CollectionModelViewSet, + JournalModelViewSet, + ) + + class MarkupSnippetViewSetGroup(SnippetViewSetGroup): menu_name = "markup_doc" - menu_label = _("Marcação editorial") + menu_label = _("Marcação") menu_icon = "edit" menu_order = get_menu_order("markup_doc") items = ( - CollectionModelViewSet, - JournalModelViewSet, UploadDocxViewSet, - MarkupXMLViewSet, + XMLSPSSnippetViewSetGroup, ) +register_snippet(ScieloSnippetViewSetGroup) register_snippet(MarkupSnippetViewSetGroup) diff --git a/model_ai/wagtail_hooks.py b/model_ai/wagtail_hooks.py index f0476c3..0200ccf 100644 --- a/model_ai/wagtail_hooks.py +++ b/model_ai/wagtail_hooks.py @@ -92,7 +92,8 @@ class LlamaModelViewSet(SnippetViewSet): menu_icon = "cog" menu_order = get_menu_order("model_ai") exclude_from_explorer = False - add_to_admin_menu = True + add_to_admin_menu = False + add_to_settings_menu = True list_per_page = 20 list_display = ("display_name_model", "get_download_status_display") diff --git a/reference/wagtail_hooks.py b/reference/wagtail_hooks.py index 1f770fb..872c34f 100644 --- a/reference/wagtail_hooks.py +++ b/reference/wagtail_hooks.py @@ -1,7 +1,6 @@ # Third-party imports from django.http import HttpResponseRedirect from django.utils.translation import gettext_lazy as _ -from wagtail.snippets.models import register_snippet from wagtail.snippets.views.snippets import CreateView, SnippetViewSet # Local application imports @@ -41,7 +40,4 @@ class ReferenceModelViewSet(SnippetViewSet): menu_order = get_menu_order("reference") exclude_from_explorer = False list_per_page = 20 - add_to_admin_menu = True - - -register_snippet(ReferenceModelViewSet) + add_to_admin_menu = False diff --git a/tracker/wagtail_hooks.py b/tracker/wagtail_hooks.py index fbca31e..0e366e8 100644 --- a/tracker/wagtail_hooks.py +++ b/tracker/wagtail_hooks.py @@ -78,6 +78,8 @@ class EventModelAdminGroup(ModelAdminGroup): menu_icon = "history" menu_label = _("Rastreio de eventos") menu_order = get_menu_order("tracker") + add_to_admin_menu = False + add_to_settings_menu = True items = (GeneralEventModelAdmin, XMLDocumentEventModelAdmin) diff --git a/xml_manager/wagtail_hooks.py b/xml_manager/wagtail_hooks.py index 9406bca..cc484f0 100644 --- a/xml_manager/wagtail_hooks.py +++ b/xml_manager/wagtail_hooks.py @@ -10,12 +10,7 @@ from wagtail.admin.ui.tables import Column from wagtail.admin.widgets.button import Button from wagtail.snippets.models import register_snippet -from wagtail.snippets.views.snippets import ( - CreateView, - EditView, - SnippetViewSet, - SnippetViewSetGroup, -) +from wagtail.snippets.views.snippets import CreateView, EditView, SnippetViewSet from config.menu import get_menu_order @@ -161,7 +156,7 @@ class XMLDocumentPDFSnippetViewSet(SnippetViewSet): verbose_name_plural = _("XML Document PDFs") icon = "doc-full" menu_name = "xml_manager" - menu_label = _("PDF derivados") + menu_label = _("PDFs derivados") menu_icon = "doc-full" add_to_admin_menu = False @@ -182,7 +177,7 @@ class XMLDocumentHTMLSnippetViewSet(SnippetViewSet): verbose_name_plural = _("XML Document HTMLs") icon = "doc-full" menu_name = "xml_manager" - menu_label = _("HTML derivados") + menu_label = _("HTMLs derivados") menu_icon = "doc-full-inverse" add_to_admin_menu = False @@ -202,12 +197,13 @@ class SPSPackageValidationSnippetViewSet(SnippetViewSet): edit_view_class = SPSPackageValidationEditView copy_view_enabled = False verbose_name = _("SPS package validation") - verbose_name_plural = _("Validar pacote SPS") + verbose_name_plural = _("Validar SPS") icon = "sps-package-validation" menu_name = "sps_package_validation" - menu_label = _("Validar pacote SPS") + menu_label = _("Validar SPS") menu_icon = "sps-package-validation" - add_to_admin_menu = False + add_to_admin_menu = True + menu_order = get_menu_order("sps_package_validation") list_display = ( "__str__", @@ -224,20 +220,7 @@ class SPSPackageValidationSnippetViewSet(SnippetViewSet): search_fields = ("package_document__title",) -class XMLDocumentSnippetViewSetGroup(SnippetViewSetGroup): - menu_name = "xml_manager" - menu_label = _("Gestão de XML") - menu_icon = "code" - menu_order = get_menu_order("xml_manager") - items = ( - XMLDocumentSnippetViewSet, - XMLDocumentPDFSnippetViewSet, - XMLDocumentHTMLSnippetViewSet, - SPSPackageValidationSnippetViewSet, - ) - - -register_snippet(XMLDocumentSnippetViewSetGroup) +register_snippet(SPSPackageValidationSnippetViewSet) @hooks.register("register_icons")